summaryrefslogtreecommitdiffstats
path: root/vendor/modernc.org/libc
diff options
context:
space:
mode:
authorWim <wim@42.be>2022-01-31 00:27:37 +0100
committerWim <wim@42.be>2022-03-20 14:57:48 +0100
commite3cafeaf9292f67459ff1d186f68283bfaedf2ae (patch)
treeb69c39620aa91dba695b3b935c6651c0fb37ce75 /vendor/modernc.org/libc
parente7b193788a56ee7cdb02a87a9db0ad6724ef66d5 (diff)
downloadmatterbridge-msglm-e3cafeaf9292f67459ff1d186f68283bfaedf2ae.tar.gz
matterbridge-msglm-e3cafeaf9292f67459ff1d186f68283bfaedf2ae.tar.bz2
matterbridge-msglm-e3cafeaf9292f67459ff1d186f68283bfaedf2ae.zip
Add dependencies/vendor (whatsapp)
Diffstat (limited to 'vendor/modernc.org/libc')
-rw-r--r--vendor/modernc.org/libc/AUTHORS16
-rw-r--r--vendor/modernc.org/libc/CONTRIBUTORS15
-rw-r--r--vendor/modernc.org/libc/HACKING3
-rw-r--r--vendor/modernc.org/libc/LICENSE27
-rw-r--r--vendor/modernc.org/libc/LICENSE-GO27
-rw-r--r--vendor/modernc.org/libc/Makefile193
-rw-r--r--vendor/modernc.org/libc/README.md20
-rw-r--r--vendor/modernc.org/libc/capi_darwin_amd64.go533
-rw-r--r--vendor/modernc.org/libc/capi_darwin_arm64.go532
-rw-r--r--vendor/modernc.org/libc/capi_freebsd_386.go486
-rw-r--r--vendor/modernc.org/libc/capi_freebsd_amd64.go482
-rw-r--r--vendor/modernc.org/libc/capi_linux_386.go501
-rw-r--r--vendor/modernc.org/libc/capi_linux_amd64.go503
-rw-r--r--vendor/modernc.org/libc/capi_linux_arm.go501
-rw-r--r--vendor/modernc.org/libc/capi_linux_arm64.go501
-rw-r--r--vendor/modernc.org/libc/capi_linux_s390x.go501
-rw-r--r--vendor/modernc.org/libc/capi_netbsd_amd64.go479
-rw-r--r--vendor/modernc.org/libc/capi_openbsd_amd64.go497
-rw-r--r--vendor/modernc.org/libc/capi_windows_386.go707
-rw-r--r--vendor/modernc.org/libc/capi_windows_amd64.go703
-rw-r--r--vendor/modernc.org/libc/ccgo.go1751
-rw-r--r--vendor/modernc.org/libc/dmesg.go45
-rw-r--r--vendor/modernc.org/libc/errno/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/errno/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/errno/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/errno/errno_darwin_amd64.go647
-rw-r--r--vendor/modernc.org/libc/errno/errno_darwin_arm64.go657
-rw-r--r--vendor/modernc.org/libc/errno/errno_freebsd_386.go158
-rw-r--r--vendor/modernc.org/libc/errno/errno_freebsd_amd64.go166
-rw-r--r--vendor/modernc.org/libc/errno/errno_linux_386.go179
-rw-r--r--vendor/modernc.org/libc/errno/errno_linux_amd64.go187
-rw-r--r--vendor/modernc.org/libc/errno/errno_linux_arm.go177
-rw-r--r--vendor/modernc.org/libc/errno/errno_linux_arm64.go187
-rw-r--r--vendor/modernc.org/libc/errno/errno_linux_s390x.go187
-rw-r--r--vendor/modernc.org/libc/errno/errno_netbsd_amd64.go144
-rw-r--r--vendor/modernc.org/libc/errno/errno_openbsd_amd64.go142
-rw-r--r--vendor/modernc.org/libc/errno/errno_windows_386.go361
-rw-r--r--vendor/modernc.org/libc/errno/errno_windows_amd64.go360
-rw-r--r--vendor/modernc.org/libc/etc.go914
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go2057
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go2055
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go766
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_freebsd_amd64.go770
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_linux_386.go1068
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_linux_amd64.go1083
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_linux_arm.go1130
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_linux_arm64.go1195
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_linux_s390x.go1088
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_netbsd_amd64.go1481
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go827
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_windows_386.go422
-rw-r--r--vendor/modernc.org/libc/fcntl/fcntl_windows_amd64.go421
-rw-r--r--vendor/modernc.org/libc/fsync.go10
-rw-r--r--vendor/modernc.org/libc/fts/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/fts/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fts/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/fts/fts_darwin_amd64.go5142
-rw-r--r--vendor/modernc.org/libc/fts/fts_darwin_arm64.go5920
-rw-r--r--vendor/modernc.org/libc/fts/fts_freebsd_386.go2359
-rw-r--r--vendor/modernc.org/libc/fts/fts_freebsd_amd64.go2309
-rw-r--r--vendor/modernc.org/libc/fts/fts_linux_386.go1880
-rw-r--r--vendor/modernc.org/libc/fts/fts_linux_amd64.go1895
-rw-r--r--vendor/modernc.org/libc/fts/fts_linux_arm.go1992
-rw-r--r--vendor/modernc.org/libc/fts/fts_linux_arm64.go2044
-rw-r--r--vendor/modernc.org/libc/fts/fts_linux_s390x.go1894
-rw-r--r--vendor/modernc.org/libc/fts/fts_netbsd_amd64.go2626
-rw-r--r--vendor/modernc.org/libc/fts/fts_openbsd_amd64.go1272
-rw-r--r--vendor/modernc.org/libc/grp/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/grp/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/grp/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/grp/grp_darwin_amd64.go994
-rw-r--r--vendor/modernc.org/libc/grp/grp_darwin_arm64.go980
-rw-r--r--vendor/modernc.org/libc/grp/grp_freebsd_386.go607
-rw-r--r--vendor/modernc.org/libc/grp/grp_freebsd_amd64.go613
-rw-r--r--vendor/modernc.org/libc/grp/grp_linux_386.go766
-rw-r--r--vendor/modernc.org/libc/grp/grp_linux_amd64.go781
-rw-r--r--vendor/modernc.org/libc/grp/grp_linux_arm.go825
-rw-r--r--vendor/modernc.org/libc/grp/grp_linux_arm64.go849
-rw-r--r--vendor/modernc.org/libc/grp/grp_linux_s390x.go780
-rw-r--r--vendor/modernc.org/libc/grp/grp_netbsd_amd64.go1596
-rw-r--r--vendor/modernc.org/libc/grp/grp_openbsd_amd64.go700
-rw-r--r--vendor/modernc.org/libc/honnef.co/go/netdb/LICENSE20
-rw-r--r--vendor/modernc.org/libc/honnef.co/go/netdb/README.md12
-rw-r--r--vendor/modernc.org/libc/honnef.co/go/netdb/netdb.go859
-rw-r--r--vendor/modernc.org/libc/int128.go331
-rw-r--r--vendor/modernc.org/libc/ioutil_darwin.go65
-rw-r--r--vendor/modernc.org/libc/ioutil_freebsd.go65
-rw-r--r--vendor/modernc.org/libc/ioutil_linux.go70
-rw-r--r--vendor/modernc.org/libc/ioutil_netbsd.go65
-rw-r--r--vendor/modernc.org/libc/ioutil_openbsd.go65
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go909
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go895
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go695
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_freebsd_amd64.go700
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_linux_386.go1049
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_linux_amd64.go1058
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_linux_arm.go1078
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_linux_arm64.go1093
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_linux_s390x.go1056
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_netbsd_amd64.go189
-rw-r--r--vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go511
-rw-r--r--vendor/modernc.org/libc/libc.go1413
-rw-r--r--vendor/modernc.org/libc/libc32.go30
-rw-r--r--vendor/modernc.org/libc/libc64.go28
-rw-r--r--vendor/modernc.org/libc/libc_darwin.go2030
-rw-r--r--vendor/modernc.org/libc/libc_darwin_amd64.go450
-rw-r--r--vendor/modernc.org/libc/libc_darwin_arm64.go450
-rw-r--r--vendor/modernc.org/libc/libc_freebsd.go1509
-rw-r--r--vendor/modernc.org/libc/libc_freebsd_386.go649
-rw-r--r--vendor/modernc.org/libc/libc_freebsd_amd64.go647
-rw-r--r--vendor/modernc.org/libc/libc_linux.go1423
-rw-r--r--vendor/modernc.org/libc/libc_linux_386.go457
-rw-r--r--vendor/modernc.org/libc/libc_linux_amd64.go467
-rw-r--r--vendor/modernc.org/libc/libc_linux_arm.go449
-rw-r--r--vendor/modernc.org/libc/libc_linux_arm64.go439
-rw-r--r--vendor/modernc.org/libc/libc_linux_s390x.go466
-rw-r--r--vendor/modernc.org/libc/libc_netbsd.go1594
-rw-r--r--vendor/modernc.org/libc/libc_netbsd_amd64.go576
-rw-r--r--vendor/modernc.org/libc/libc_openbsd.go1607
-rw-r--r--vendor/modernc.org/libc/libc_openbsd_amd64.go576
-rw-r--r--vendor/modernc.org/libc/libc_unix.go994
-rw-r--r--vendor/modernc.org/libc/libc_windows.go5876
-rw-r--r--vendor/modernc.org/libc/libc_windows_386.go542
-rw-r--r--vendor/modernc.org/libc/libc_windows_amd64.go513
-rw-r--r--vendor/modernc.org/libc/limits/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/limits/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/limits/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/limits/limits_darwin_amd64.go935
-rw-r--r--vendor/modernc.org/libc/limits/limits_darwin_arm64.go932
-rw-r--r--vendor/modernc.org/libc/limits/limits_freebsd_386.go567
-rw-r--r--vendor/modernc.org/libc/limits/limits_freebsd_amd64.go574
-rw-r--r--vendor/modernc.org/libc/limits/limits_linux_386.go932
-rw-r--r--vendor/modernc.org/libc/limits/limits_linux_amd64.go943
-rw-r--r--vendor/modernc.org/libc/limits/limits_linux_arm.go976
-rw-r--r--vendor/modernc.org/libc/limits/limits_linux_arm64.go995
-rw-r--r--vendor/modernc.org/libc/limits/limits_linux_s390x.go939
-rw-r--r--vendor/modernc.org/libc/limits/limits_netbsd_amd64.go460
-rw-r--r--vendor/modernc.org/libc/limits/limits_openbsd_amd64.go540
-rw-r--r--vendor/modernc.org/libc/limits/limits_windows_386.go410
-rw-r--r--vendor/modernc.org/libc/limits/limits_windows_amd64.go409
-rw-r--r--vendor/modernc.org/libc/mem.go118
-rw-r--r--vendor/modernc.org/libc/mem_brk.go105
-rw-r--r--vendor/modernc.org/libc/memgrind.go320
-rw-r--r--vendor/modernc.org/libc/musl_darwin_amd64.go4712
-rw-r--r--vendor/modernc.org/libc/musl_darwin_arm64.go4710
-rw-r--r--vendor/modernc.org/libc/musl_freebsd_386.go6726
-rw-r--r--vendor/modernc.org/libc/musl_freebsd_amd64.go6790
-rw-r--r--vendor/modernc.org/libc/musl_linux_386.go6865
-rw-r--r--vendor/modernc.org/libc/musl_linux_amd64.go6920
-rw-r--r--vendor/modernc.org/libc/musl_linux_arm.go6898
-rw-r--r--vendor/modernc.org/libc/musl_linux_arm64.go7008
-rw-r--r--vendor/modernc.org/libc/musl_linux_s390x.go6948
-rw-r--r--vendor/modernc.org/libc/musl_netbsd_amd64.go4324
-rw-r--r--vendor/modernc.org/libc/musl_openbsd_amd64.go6806
-rw-r--r--vendor/modernc.org/libc/musl_windows_386.go1078
-rw-r--r--vendor/modernc.org/libc/musl_windows_amd64.go1101
-rw-r--r--vendor/modernc.org/libc/netdb/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/netdb/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go6700
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go6643
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_freebsd_386.go713
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_freebsd_amd64.go721
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_linux_386.go3028
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_linux_amd64.go3065
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_linux_arm.go3144
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_linux_arm64.go3175
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_linux_s390x.go3061
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_netbsd_amd64.go1018
-rw-r--r--vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go1478
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go6392
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go6335
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_freebsd_386.go1517
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_freebsd_amd64.go1524
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_linux_386.go2742
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_linux_amd64.go2775
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_linux_arm.go2858
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_linux_arm64.go2885
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_linux_s390x.go2771
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_netbsd_amd64.go2950
-rw-r--r--vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go1252
-rw-r--r--vendor/modernc.org/libc/nodmesg.go12
-rw-r--r--vendor/modernc.org/libc/nofsync.go10
-rw-r--r--vendor/modernc.org/libc/poll/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/poll/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/poll/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/poll/poll_darwin_amd64.go157
-rw-r--r--vendor/modernc.org/libc/poll/poll_darwin_arm64.go157
-rw-r--r--vendor/modernc.org/libc/poll/poll_freebsd_386.go882
-rw-r--r--vendor/modernc.org/libc/poll/poll_freebsd_amd64.go887
-rw-r--r--vendor/modernc.org/libc/poll/poll_linux_386.go531
-rw-r--r--vendor/modernc.org/libc/poll/poll_linux_amd64.go540
-rw-r--r--vendor/modernc.org/libc/poll/poll_linux_arm.go560
-rw-r--r--vendor/modernc.org/libc/poll/poll_linux_arm64.go575
-rw-r--r--vendor/modernc.org/libc/poll/poll_linux_s390x.go538
-rw-r--r--vendor/modernc.org/libc/poll/poll_netbsd_amd64.go351
-rw-r--r--vendor/modernc.org/libc/poll/poll_openbsd_amd64.go480
-rw-r--r--vendor/modernc.org/libc/printf.go592
-rw-r--r--vendor/modernc.org/libc/pthread.go585
-rw-r--r--vendor/modernc.org/libc/pthread/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/pthread/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/pthread/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go3064
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go3055
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_freebsd_386.go1169
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_freebsd_amd64.go1123
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_linux_386.go1847
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_linux_amd64.go1865
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_linux_arm.go1974
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_linux_arm64.go1983
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_linux_s390x.go1885
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_netbsd_amd64.go2741
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go2020
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_windows_386.go1165
-rw-r--r--vendor/modernc.org/libc/pthread/pthread_windows_amd64.go1172
-rw-r--r--vendor/modernc.org/libc/pthread_all.go44
-rw-r--r--vendor/modernc.org/libc/pwd/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/pwd/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go1074
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go1060
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_freebsd_386.go670
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_freebsd_amd64.go676
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_linux_386.go772
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_linux_amd64.go786
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_linux_arm.go831
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_linux_arm64.go854
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_linux_s390x.go785
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_netbsd_amd64.go1622
-rw-r--r--vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go729
-rw-r--r--vendor/modernc.org/libc/scanf.go443
-rw-r--r--vendor/modernc.org/libc/signal/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/signal/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/signal/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/signal/more_darwin_amd64.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_darwin_arm64.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_freebsd_386.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_freebsd_amd64.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_linux_386.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_linux_amd64.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_linux_arm.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_linux_arm64.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_linux_s390x.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_netbsd_amd64.go12
-rw-r--r--vendor/modernc.org/libc/signal/more_openbsd_amd64.go12
-rw-r--r--vendor/modernc.org/libc/signal/signal_darwin_amd64.go4798
-rw-r--r--vendor/modernc.org/libc/signal/signal_darwin_arm64.go3118
-rw-r--r--vendor/modernc.org/libc/signal/signal_freebsd_386.go1658
-rw-r--r--vendor/modernc.org/libc/signal/signal_freebsd_amd64.go1621
-rw-r--r--vendor/modernc.org/libc/signal/signal_linux_386.go2170
-rw-r--r--vendor/modernc.org/libc/signal/signal_linux_amd64.go2188
-rw-r--r--vendor/modernc.org/libc/signal/signal_linux_arm.go2210
-rw-r--r--vendor/modernc.org/libc/signal/signal_linux_arm64.go3295
-rw-r--r--vendor/modernc.org/libc/signal/signal_linux_s390x.go2222
-rw-r--r--vendor/modernc.org/libc/signal/signal_netbsd_amd64.go2889
-rw-r--r--vendor/modernc.org/libc/signal/signal_openbsd_amd64.go1386
-rw-r--r--vendor/modernc.org/libc/signal/signal_windows_386.go311
-rw-r--r--vendor/modernc.org/libc/signal/signal_windows_amd64.go310
-rw-r--r--vendor/modernc.org/libc/stdio/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/stdio/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/stdio/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go1973
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go1970
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_freebsd_386.go746
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_freebsd_amd64.go759
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_linux_386.go515
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_linux_amd64.go534
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_linux_arm.go544
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_linux_arm64.go567
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_linux_s390x.go535
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go466
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go677
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_windows_386.go362
-rw-r--r--vendor/modernc.org/libc/stdio/stdio_windows_amd64.go365
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go6539
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go4927
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go663
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_freebsd_amd64.go668
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_linux_386.go1513
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_linux_amd64.go1531
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_linux_arm.go1573
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_linux_arm64.go1607
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_linux_s390x.go1532
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_netbsd_amd64.go1620
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go781
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_windows_386.go547
-rw-r--r--vendor/modernc.org/libc/stdlib/stdlib_windows_amd64.go548
-rw-r--r--vendor/modernc.org/libc/sync.go17
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go5033
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go5802
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go1146
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go1159
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_386.go1806
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go1835
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_arm.go1891
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go1910
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go1833
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_netbsd_amd64.go863
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_openbsd_amd64.go899
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go2354
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go2318
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go1986
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go1897
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_386.go932
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go944
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_arm.go992
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go1057
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go945
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_netbsd_amd64.go2354
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_openbsd_amd64.go1092
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_windows_386.go554
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go556
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/types_darwin_amd64.go4017
-rw-r--r--vendor/modernc.org/libc/sys/types/types_darwin_arm64.go4827
-rw-r--r--vendor/modernc.org/libc/sys/types/types_freebsd_386.go1407
-rw-r--r--vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go1448
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_386.go1484
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_amd64.go1502
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_arm.go1594
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_arm64.go1605
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_s390x.go1499
-rw-r--r--vendor/modernc.org/libc/sys/types/types_netbsd_amd64.go1364
-rw-r--r--vendor/modernc.org/libc/sys/types/types_openbsd_amd64.go652
-rw-r--r--vendor/modernc.org/libc/sys/types/types_windows_386.go324
-rw-r--r--vendor/modernc.org/libc/sys/types/types_windows_amd64.go326
-rw-r--r--vendor/modernc.org/libc/termios/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/termios/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/termios/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/termios/termios_darwin_amd64.go1560
-rw-r--r--vendor/modernc.org/libc/termios/termios_darwin_arm64.go1547
-rw-r--r--vendor/modernc.org/libc/termios/termios_freebsd_386.go1002
-rw-r--r--vendor/modernc.org/libc/termios/termios_freebsd_amd64.go999
-rw-r--r--vendor/modernc.org/libc/termios/termios_linux_386.go1004
-rw-r--r--vendor/modernc.org/libc/termios/termios_linux_amd64.go1022
-rw-r--r--vendor/modernc.org/libc/termios/termios_linux_arm.go1063
-rw-r--r--vendor/modernc.org/libc/termios/termios_linux_arm64.go1090
-rw-r--r--vendor/modernc.org/libc/termios/termios_linux_s390x.go1021
-rw-r--r--vendor/modernc.org/libc/termios/termios_netbsd_amd64.go733
-rw-r--r--vendor/modernc.org/libc/termios/termios_openbsd_amd64.go789
-rw-r--r--vendor/modernc.org/libc/time/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/time/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/time/capi_windows_386.go9
-rw-r--r--vendor/modernc.org/libc/time/capi_windows_amd64.go9
-rw-r--r--vendor/modernc.org/libc/time/time_darwin_amd64.go1771
-rw-r--r--vendor/modernc.org/libc/time/time_darwin_arm64.go1768
-rw-r--r--vendor/modernc.org/libc/time/time_freebsd_386.go927
-rw-r--r--vendor/modernc.org/libc/time/time_freebsd_amd64.go877
-rw-r--r--vendor/modernc.org/libc/time/time_linux_386.go658
-rw-r--r--vendor/modernc.org/libc/time/time_linux_amd64.go676
-rw-r--r--vendor/modernc.org/libc/time/time_linux_arm.go686
-rw-r--r--vendor/modernc.org/libc/time/time_linux_arm64.go709
-rw-r--r--vendor/modernc.org/libc/time/time_linux_s390x.go677
-rw-r--r--vendor/modernc.org/libc/time/time_netbsd_amd64.go2340
-rw-r--r--vendor/modernc.org/libc/time/time_openbsd_amd64.go527
-rw-r--r--vendor/modernc.org/libc/time/time_windows_386.go419
-rw-r--r--vendor/modernc.org/libc/time/time_windows_amd64.go422
-rw-r--r--vendor/modernc.org/libc/unistd/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/unistd/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/unistd/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go3467
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go3441
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_freebsd_386.go1770
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_freebsd_amd64.go1810
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_linux_386.go1572
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_linux_amd64.go1589
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_linux_arm.go1644
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_linux_arm64.go1669
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_linux_s390x.go1586
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_netbsd_amd64.go1804
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go1094
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_windows_386.go677
-rw-r--r--vendor/modernc.org/libc/unistd/unistd_windows_amd64.go692
-rw-r--r--vendor/modernc.org/libc/utime/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/utime/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/utime/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/utime/utime_darwin_amd64.go1352
-rw-r--r--vendor/modernc.org/libc/utime/utime_darwin_arm64.go1292
-rw-r--r--vendor/modernc.org/libc/utime/utime_freebsd_386.go598
-rw-r--r--vendor/modernc.org/libc/utime/utime_freebsd_amd64.go603
-rw-r--r--vendor/modernc.org/libc/utime/utime_linux_386.go761
-rw-r--r--vendor/modernc.org/libc/utime/utime_linux_amd64.go779
-rw-r--r--vendor/modernc.org/libc/utime/utime_linux_arm.go820
-rw-r--r--vendor/modernc.org/libc/utime/utime_linux_arm64.go847
-rw-r--r--vendor/modernc.org/libc/utime/utime_linux_s390x.go778
-rw-r--r--vendor/modernc.org/libc/utime/utime_netbsd_amd64.go144
-rw-r--r--vendor/modernc.org/libc/utime/utime_openbsd_amd64.go425
-rw-r--r--vendor/modernc.org/libc/utime/utime_windows_386.go302
-rw-r--r--vendor/modernc.org/libc/utime/utime_windows_amd64.go301
-rw-r--r--vendor/modernc.org/libc/uuid/capi_freebsd_386.go5
-rw-r--r--vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go811
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go797
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_linux_386.go1956
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_linux_amd64.go1975
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm.go2066
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm64.go2078
-rw-r--r--vendor/modernc.org/libc/uuid/uuid/uuid_linux_s390x.go1972
-rw-r--r--vendor/modernc.org/libc/uuid/uuid_freebsd_386.go1530
-rw-r--r--vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go1569
-rw-r--r--vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go1454
-rw-r--r--vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go741
-rw-r--r--vendor/modernc.org/libc/watch.go240
-rw-r--r--vendor/modernc.org/libc/wctype/capi_darwin_amd64.go7
-rw-r--r--vendor/modernc.org/libc/wctype/capi_darwin_arm64.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_freebsd_386.go29
-rw-r--r--vendor/modernc.org/libc/wctype/capi_freebsd_amd64.go29
-rw-r--r--vendor/modernc.org/libc/wctype/capi_linux_386.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_linux_amd64.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_linux_arm.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_linux_arm64.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_linux_s390x.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_windows_386.go5
-rw-r--r--vendor/modernc.org/libc/wctype/capi_windows_amd64.go5
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go1407
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go1393
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_freebsd_386.go787
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_freebsd_amd64.go796
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_linux_386.go931
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_linux_amd64.go949
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_linux_arm.go990
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_linux_arm64.go1017
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_linux_s390x.go948
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_netbsd_amd64.go326
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go356
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_windows_386.go288
-rw-r--r--vendor/modernc.org/libc/wctype/wctype_windows_amd64.go287
649 files changed, 502569 insertions, 0 deletions
diff --git a/vendor/modernc.org/libc/AUTHORS b/vendor/modernc.org/libc/AUTHORS
new file mode 100644
index 00000000..932a584e
--- /dev/null
+++ b/vendor/modernc.org/libc/AUTHORS
@@ -0,0 +1,16 @@
+# This file lists authors for copyright purposes. This file is distinct from
+# the CONTRIBUTORS files. See the latter for an explanation.
+#
+# Names should be added to this file as:
+# Name or Organization <email address>
+#
+# The email address is not required for organizations.
+#
+# Please keep the list sorted.
+
+Dan Kortschak <dan@kortschak.io>
+Dan Peterson <danp@danp.net>
+Jan Mercl <0xjnml@gmail.com>
+Jason DeBettencourt <jasond17@gmail.com>
+Koichi Shiraishi <zchee.io@gmail.com>
+Steffen Butzer <steffen(dot)butzer@outlook.com>
diff --git a/vendor/modernc.org/libc/CONTRIBUTORS b/vendor/modernc.org/libc/CONTRIBUTORS
new file mode 100644
index 00000000..9efa6ea6
--- /dev/null
+++ b/vendor/modernc.org/libc/CONTRIBUTORS
@@ -0,0 +1,15 @@
+# This file lists people who contributed code to this repository. The AUTHORS
+# file lists the copyright holders; this file lists people.
+#
+# Names should be added to this file like so:
+# Name <email address>
+#
+# Please keep the list sorted.
+
+Dan Kortschak <dan@kortschak.io>
+Dan Peterson <danp@danp.net>
+Jaap Aarts <jaap.aarts1@gmail.com>
+Jan Mercl <0xjnml@gmail.com>
+Jason DeBettencourt <jasond17@gmail.com>
+Koichi Shiraishi <zchee.io@gmail.com>
+Steffen Butzer <steffen(dot)butzer@outlook.com>
diff --git a/vendor/modernc.org/libc/HACKING b/vendor/modernc.org/libc/HACKING
new file mode 100644
index 00000000..c76a6ce4
--- /dev/null
+++ b/vendor/modernc.org/libc/HACKING
@@ -0,0 +1,3 @@
+Install:
+
+ $ go get modernc.org/libc
diff --git a/vendor/modernc.org/libc/LICENSE b/vendor/modernc.org/libc/LICENSE
new file mode 100644
index 00000000..0c6500bc
--- /dev/null
+++ b/vendor/modernc.org/libc/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2017 The Libc Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * 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.
+ * Neither the names of the authors nor the names of the
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
+OWNER 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.
diff --git a/vendor/modernc.org/libc/LICENSE-GO b/vendor/modernc.org/libc/LICENSE-GO
new file mode 100644
index 00000000..6a66aea5
--- /dev/null
+++ b/vendor/modernc.org/libc/LICENSE-GO
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * 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.
+ * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT
+OWNER 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.
diff --git a/vendor/modernc.org/libc/Makefile b/vendor/modernc.org/libc/Makefile
new file mode 100644
index 00000000..c4727abf
--- /dev/null
+++ b/vendor/modernc.org/libc/Makefile
@@ -0,0 +1,193 @@
+# Copyright 2019 The Libc Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+.PHONY: all bench clean cover cpu editor internalError later mem nuke todo edit devbench \
+ darwin_amd64 \
+ darwin_arm64 \
+ linux_386 \
+ linux_amd64 \
+ linux_arm \
+ linux_arm64 \
+
+
+grep=--include=*.go --include=*.l --include=*.y --include=*.yy --include=*.qbe --include=*.ssa
+ngrep='internalError\|TODOOK'
+log=log-$(shell go env GOOS)-$(shell go env GOARCH)
+
+all:
+ date
+ go version 2>&1 | tee $(log)
+ go generate
+ gofmt -l -s -w *.go
+ go install -v ./...
+ go test -i
+ go test 2>&1 -timeout 1h | tee -a $(log)
+ GOOS=darwin GOARCH=amd64 go build
+ GOOS=darwin GOARCH=arm64 go build
+ GOOS=freebsd GOARCH=386 go build
+ GOOS=freebsd GOARCH=amd64 go build
+ GOOS=linux GOARCH=386 go build
+ GOOS=linux GOARCH=amd64 go build
+ GOOS=linux GOARCH=arm go build
+ GOOS=linux GOARCH=arm64 go build
+ GOOS=linux GOARCH=s390x go build
+ GOOS=netbsd GOARCH=amd64 go build
+ GOOS=openbsd GOARCH=amd64 go build
+ GOOS=windows GOARCH=386 go build
+ GOOS=windows GOARCH=amd64 go build
+ go vet -unsafeptr=false 2>&1 | grep -v $(ngrep) || true
+ golint 2>&1 | grep -v $(ngrep) || true
+ make todo
+ misspell *.go
+ staticcheck || true
+ maligned || true
+ grep -n 'FAIL\|PASS' $(log)
+ go version
+ date 2>&1 | tee -a $(log)
+
+darwin_amd64:
+ @echo "Should be executed only on darwin/amd64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+darwin_arm64:
+ @echo "Should be executed only on darwin/arm64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+# only on freebsd/amd64
+freebsd_amd64:
+ @echo "Should be executed only on freebsd/amd64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+# only on freebsd/386
+freebsd_386:
+ @echo "Should be executed only on freebsd/386."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+# only on netbsd/amd64
+netbsd_amd64:
+ @echo "Should be executed only on netbsd/amd64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+linux_amd64:
+ @echo "Should be executed only on linux/amd64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+linux_386:
+ CCGO_CPP=i686-linux-gnu-cpp TARGET_GOOS=linux TARGET_GOARCH=386 go generate
+ GOOS=linux GOARCH=386 go build -v ./...
+
+linux_arm:
+ CCGO_CPP=arm-linux-gnueabi-cpp TARGET_GOOS=linux TARGET_GOARCH=arm go generate
+ GOOS=linux GOARCH=arm go build -v ./...
+
+linux_arm64:
+ CCGO_CPP=aarch64-linux-gnu-cpp TARGET_GOOS=linux TARGET_GOARCH=arm64 go generate
+ GOOS=linux GOARCH=arm64 go build -v ./...
+
+linux_s390x:
+ CCGO_CPP=s390x-linux-gnu-cpp TARGET_GOOS=linux TARGET_GOARCH=s390x go generate
+ GOOS=linux GOARCH=s390x go build -v ./...
+
+# only on openbsd/amd64
+openbsd_amd64:
+ @echo "Should be executed only on openbsd/amd64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+windows_amd64:
+ @echo "Should be executed only on windows/amd64."
+ go generate 2>&1 | tee log-generate
+ go build -v ./...
+
+windows_386:
+ @echo "Should be executed only on linux/amd64."
+ CCGO_CPP=i686-w64-mingw32-cpp TARGET_GOOS=windows TARGET_GOARCH=386 go generate
+ GOOS=windows GOARCH=386 go build -v ./...
+
+all_targets: linux_amd64 linux_386 linux_arm linux_arm64 linux_s390x # windows_amd64 windows_386
+ echo done
+
+build_all_targets:
+ GOOS=darwin GOARCH=amd64 go build -v ./...
+ GOOS=darwin GOARCH=amd64 go test -c -o /dev/null
+ GOOS=darwin GOARCH=arm64 go build -v ./...
+ GOOS=darwin GOARCH=arm64 go test -c -o /dev/null
+ GOOS=freebsd GOARCH=386 go build -v ./...
+ GOOS=freebsd GOARCH=386 go test -c -o /dev/null
+ GOOS=freebsd GOARCH=amd64 go build -v ./...
+ GOOS=freebsd GOARCH=amd64 go test -c -o /dev/null
+ GOOS=linux GOARCH=386 go build -v ./...
+ GOOS=linux GOARCH=386 go test -c -o /dev/null
+ GOOS=linux GOARCH=amd64 go build -v ./...
+ GOOS=linux GOARCH=amd64 go test -c -o /dev/null
+ GOOS=linux GOARCH=arm go build -v ./...
+ GOOS=linux GOARCH=arm go test -c -o /dev/null
+ GOOS=linux GOARCH=arm64 go build -v ./...
+ GOOS=linux GOARCH=arm64 go test -c -o /dev/null
+ GOOS=linux GOARCH=s390x go build -v ./...
+ GOOS=linux GOARCH=s390x go test -c -o /dev/null
+ GOOS=netbsd GOARCH=amd64 go build -v ./...
+ GOOS=netbsd GOARCH=amd64 go test -c -o /dev/null
+ GOOS=openbsd GOARCH=amd64 go build -v ./...
+ GOOS=openbsd GOARCH=amd64 go test -c -o /dev/null
+ GOOS=windows GOARCH=386 go build -v ./...
+ GOOS=windows GOARCH=386 go test -c -o /dev/null
+ GOOS=windows GOARCH=amd64 go build -v ./...
+ GOOS=windows GOARCH=amd64 go test -c -o /dev/null
+ echo done
+
+devbench:
+ date 2>&1 | tee log-devbench
+ go test -timeout 24h -dev -run @ -bench . 2>&1 | tee -a log-devbench
+ grep -n 'FAIL\|SKIP' log-devbench || true
+
+bench:
+ date 2>&1 | tee log-bench
+ go test -timeout 24h -v -run '^[^E]' -bench . 2>&1 | tee -a log-bench
+ grep -n 'FAIL\|SKIP' log-bench || true
+
+clean:
+ go clean
+ rm -f *~ *.test *.out
+
+cover:
+ t=$(shell mktemp) ; go test -coverprofile $$t && go tool cover -html $$t && unlink $$t
+
+cpu: clean
+ go test -run @ -bench . -cpuprofile cpu.out
+ go tool pprof -lines *.test cpu.out
+
+edit:
+ @touch log
+ @if [ -f "Session.vim" ]; then gvim -S & else gvim -p Makefile *.go & fi
+
+editor:
+ go generate 2>&1 | tee log
+ gofmt -l -s -w *.go
+ go test -short 2>&1 | tee -a log
+ go install -v ./...
+
+later:
+ @grep -n $(grep) LATER * || true
+ @grep -n $(grep) MAYBE * || true
+
+mem: clean
+ go test -v -run ParserCS -memprofile mem.out -timeout 24h
+ go tool pprof -lines -web -alloc_space *.test mem.out
+
+nuke: clean
+ go clean -i
+
+todo:
+ @grep -nr $(grep) ^[[:space:]]*_[[:space:]]*=[[:space:]][[:alpha:]][[:alnum:]]* * | grep -v $(ngrep) || true
+ @grep -nr $(grep) 'TODO\|panic' * | grep -v $(ngrep) || true
+ @grep -nr $(grep) BUG * | grep -v $(ngrep) || true
+ @grep -nr $(grep) [^[:alpha:]]println * | grep -v $(ngrep) || true
+ @grep -nir $(grep) 'work.*progress' || true
diff --git a/vendor/modernc.org/libc/README.md b/vendor/modernc.org/libc/README.md
new file mode 100644
index 00000000..f2e9f318
--- /dev/null
+++ b/vendor/modernc.org/libc/README.md
@@ -0,0 +1,20 @@
+# libc
+
+Package libc provides C-runtime services. Work in progress.
+
+This package is a continuation of the Crt package in modernc.org/crt/v3.
+
+Installation
+
+ $ go get [-u] modernc.org/libc
+
+Documentation: [godoc.org/modernc.org/libc](http://godoc.org/modernc.org/libc)
+
+Building with `make` requires the following Go packages
+
+* github.com/golang/lint/golint
+* github.com/mdempsky/maligned
+* github.com/mdempsky/unconvert
+* honnef.co/go/tools/cmd/unused
+* honnef.co/go/tools/cmd/gosimple
+* github.com/client9/misspell/cmd/misspell
diff --git a/vendor/modernc.org/libc/capi_darwin_amd64.go b/vendor/modernc.org/libc/capi_darwin_amd64.go
new file mode 100644
index 00000000..151491e8
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_darwin_amd64.go
@@ -0,0 +1,533 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_CurrentRuneLocale": {},
+ "_DefaultRuneLocale": {},
+ "_IO_putc": {},
+ "_NSGetEnviron": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__assert_rtn": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_fabsf": {},
+ "__builtin_fabsl": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_isunordered": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__darwin_check_fd_set_overflow": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+ "__env_rm_add": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inline_isnand": {},
+ "__inline_isnanf": {},
+ "__inline_isnanl": {},
+ "__intscan": {},
+ "__isctype": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__istype": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__maskrune": {},
+ "__mb_cur_max": {},
+ "__putenv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__sincos_stret": {},
+ "__sincosf_stret": {},
+ "__sincospi_stret": {},
+ "__sincospif_stret": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__strchrnul": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__tolower": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__toupper": {},
+ "__uflow": {},
+ "__wcwidth": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "arc4random_buf": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copyfile": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "digittoint": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "flock": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fsctl": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "futimes": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getattrlist": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "gethostuuid": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getprogname": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isblank": {},
+ "iscntrl": {},
+ "isdigit": {},
+ "isgraph": {},
+ "ishexnumber": {},
+ "isideogram": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isnumber": {},
+ "isphonogram": {},
+ "isprint": {},
+ "ispunct": {},
+ "isrune": {},
+ "issetugid": {},
+ "isspace": {},
+ "isspecial": {},
+ "isupper": {},
+ "iswalnum": {},
+ "iswspace": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "mach_absolute_time": {},
+ "mach_timebase_info": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "pread": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "putenv": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setattrlist": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setstate": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "srandomdev": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "statfs": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "toascii": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "truncate": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_darwin_arm64.go b/vendor/modernc.org/libc/capi_darwin_arm64.go
new file mode 100644
index 00000000..8506c12c
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_darwin_arm64.go
@@ -0,0 +1,532 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_CurrentRuneLocale": {},
+ "_DefaultRuneLocale": {},
+ "_IO_putc": {},
+ "_NSGetEnviron": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__assert_rtn": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_fabsf": {},
+ "__builtin_fabsl": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_isunordered": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__darwin_fd_clr": {},
+ "__darwin_fd_isset": {},
+ "__darwin_fd_set": {},
+ "__env_rm_add": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inline_isnand": {},
+ "__inline_isnanf": {},
+ "__inline_isnanl": {},
+ "__intscan": {},
+ "__isctype": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__istype": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__maskrune": {},
+ "__mb_cur_max": {},
+ "__putenv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__sincos_stret": {},
+ "__sincosf_stret": {},
+ "__sincospi_stret": {},
+ "__sincospif_stret": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__strchrnul": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__tolower": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__toupper": {},
+ "__uflow": {},
+ "__wcwidth": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "arc4random_buf": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copyfile": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "digittoint": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "flock": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fsctl": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "futimes": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getattrlist": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "gethostuuid": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getprogname": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isblank": {},
+ "iscntrl": {},
+ "isdigit": {},
+ "isgraph": {},
+ "ishexnumber": {},
+ "isideogram": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isnumber": {},
+ "isphonogram": {},
+ "isprint": {},
+ "ispunct": {},
+ "isrune": {},
+ "issetugid": {},
+ "isspace": {},
+ "isspecial": {},
+ "isupper": {},
+ "iswalnum": {},
+ "iswspace": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "mach_absolute_time": {},
+ "mach_timebase_info": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "pread": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "putenv": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setattrlist": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setstate": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "srandomdev": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "statfs": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "toascii": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "truncate": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_freebsd_386.go b/vendor/modernc.org/libc/capi_freebsd_386.go
new file mode 100644
index 00000000..8ee74e0f
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_freebsd_386.go
@@ -0,0 +1,486 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_CurrentRuneLocale": {},
+ "_DefaultRuneLocale": {},
+ "_IO_putc": {},
+ "_ThreadRuneLocale": {},
+ "___errno_location": {},
+ "___runetype": {},
+ "__assert": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_fabsf": {},
+ "__builtin_fabsl": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_isunordered": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inet_ntoa": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isthreaded": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__mb_sb_limit": {},
+ "__runes_for_locale": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__srget": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__swbuf": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__xuname": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setstate": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlen": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_freebsd_amd64.go b/vendor/modernc.org/libc/capi_freebsd_amd64.go
new file mode 100644
index 00000000..b3fdd2cc
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_freebsd_amd64.go
@@ -0,0 +1,482 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_CurrentRuneLocale": {},
+ "_DefaultRuneLocale": {},
+ "_IO_putc": {},
+ "_ThreadRuneLocale": {},
+ "___errno_location": {},
+ "___runetype": {},
+ "__assert": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inet_ntoa": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isthreaded": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__mb_sb_limit": {},
+ "__runes_for_locale": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__swbuf": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__xuname": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setstate": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlen": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_linux_386.go b/vendor/modernc.org/libc/capi_linux_386.go
new file mode 100644
index 00000000..960ead92
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_linux_386.go
@@ -0,0 +1,501 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_IO_putc": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_b_loc": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__fsmu8": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isupper_l": {},
+ "__isxdigit_l": {},
+ "__lockfile": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__unlockfile": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostbyname_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getrandom": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isupper": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbrtowc": {},
+ "mbsinit": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vfscanf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "vsscanf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_linux_amd64.go b/vendor/modernc.org/libc/capi_linux_amd64.go
new file mode 100644
index 00000000..4c3bc489
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_linux_amd64.go
@@ -0,0 +1,503 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_IO_putc": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_b_loc": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__fsmu8": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isupper_l": {},
+ "__isxdigit_l": {},
+ "__lockfile": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__unlockfile": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostbyname_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getrandom": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isupper": {},
+ "iswalnum": {},
+ "iswspace": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbrtowc": {},
+ "mbsinit": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vfscanf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "vsscanf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_linux_arm.go b/vendor/modernc.org/libc/capi_linux_arm.go
new file mode 100644
index 00000000..960ead92
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_linux_arm.go
@@ -0,0 +1,501 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_IO_putc": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_b_loc": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__fsmu8": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isupper_l": {},
+ "__isxdigit_l": {},
+ "__lockfile": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__unlockfile": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostbyname_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getrandom": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isupper": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbrtowc": {},
+ "mbsinit": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vfscanf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "vsscanf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_linux_arm64.go b/vendor/modernc.org/libc/capi_linux_arm64.go
new file mode 100644
index 00000000..960ead92
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_linux_arm64.go
@@ -0,0 +1,501 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_IO_putc": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_b_loc": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__fsmu8": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isupper_l": {},
+ "__isxdigit_l": {},
+ "__lockfile": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__unlockfile": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostbyname_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getrandom": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isupper": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbrtowc": {},
+ "mbsinit": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vfscanf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "vsscanf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_linux_s390x.go b/vendor/modernc.org/libc/capi_linux_s390x.go
new file mode 100644
index 00000000..960ead92
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_linux_s390x.go
@@ -0,0 +1,501 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_IO_putc": {},
+ "___errno_location": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_b_loc": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno_location": {},
+ "__floatscan": {},
+ "__fpclassify": {},
+ "__fpclassifyf": {},
+ "__fpclassifyl": {},
+ "__fsmu8": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isupper_l": {},
+ "__isxdigit_l": {},
+ "__lockfile": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__strncasecmp_l": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__unlockfile": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fstatfs": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostbyname_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getrandom": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isupper": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localeconv": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbrtowc": {},
+ "mbsinit": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "nanf": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "posix_fadvise": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "pwrite": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "rand_r": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlcat": {},
+ "strlcpy": {},
+ "strlen": {},
+ "strncasecmp": {},
+ "strncat": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtok": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_copy": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vfscanf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "vsscanf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_netbsd_amd64.go b/vendor/modernc.org/libc/capi_netbsd_amd64.go
new file mode 100644
index 00000000..45d41d2d
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_netbsd_amd64.go
@@ -0,0 +1,479 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_C_ctype_tab_": {},
+ "_IO_putc": {},
+ "_ThreadRuneLocale": {},
+ "___errno_location": {},
+ "___runetype": {},
+ "__assert": {},
+ "__assert13": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inet_ntoa": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isthreaded": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__mb_sb_limit": {},
+ "__runes_for_locale": {},
+ "__sF": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__swbuf": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__sync_synchronize": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__xuname": {},
+ "_ctype_tab_": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "_tolower_tab_": {},
+ "_toupper_tab_": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "random": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strlen": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_openbsd_amd64.go b/vendor/modernc.org/libc/capi_openbsd_amd64.go
new file mode 100644
index 00000000..ca507390
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_openbsd_amd64.go
@@ -0,0 +1,497 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "_CurrentRuneLocale": {},
+ "_DefaultRuneLocale": {},
+ "_IO_putc": {},
+ "_ThreadRuneLocale": {},
+ "___errno_location": {},
+ "___runetype": {},
+ "__assert": {},
+ "__assert13": {},
+ "__assert2": {},
+ "__assert_fail": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_fabsf": {},
+ "__builtin_fabsl": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_isunordered": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__cmsg_nxthdr": {},
+ "__ctype_get_mb_cur_max": {},
+ "__errno": {},
+ "__errno_location": {},
+ "__error": {},
+ "__floatscan": {},
+ "__h_errno_location": {},
+ "__inet_aton": {},
+ "__inet_ntoa": {},
+ "__intscan": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isspace_l": {},
+ "__isthreaded": {},
+ "__lookup_ipliteral": {},
+ "__lookup_name": {},
+ "__lookup_serv": {},
+ "__mb_sb_limit": {},
+ "__runes_for_locale": {},
+ "__sF": {},
+ "__shgetc": {},
+ "__shlim": {},
+ "__srget": {},
+ "__stderrp": {},
+ "__stdinp": {},
+ "__stdoutp": {},
+ "__swbuf": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "__syscall1": {},
+ "__syscall3": {},
+ "__syscall4": {},
+ "__toread": {},
+ "__toread_needs_stdio_exit": {},
+ "__uflow": {},
+ "__xuname": {},
+ "_exit": {},
+ "_longjmp": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_setjmp": {},
+ "_tolower_tab_": {},
+ "_toupper_tab_": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfgetospeed": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chflags": {},
+ "chmod": {},
+ "chown": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "copysignl": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "ctime": {},
+ "ctime_r": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "endpwent": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fchown": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fmodl": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "freeaddrinfo": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_open": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "getaddrinfo": {},
+ "getc": {},
+ "getcwd": {},
+ "getegid": {},
+ "getentropy": {},
+ "getenv": {},
+ "geteuid": {},
+ "getgid": {},
+ "getgrgid": {},
+ "getgrgid_r": {},
+ "getgrnam": {},
+ "getgrnam_r": {},
+ "gethostbyaddr": {},
+ "gethostbyaddr_r": {},
+ "gethostbyname": {},
+ "gethostbyname2": {},
+ "gethostbyname2_r": {},
+ "gethostname": {},
+ "getnameinfo": {},
+ "getpagesize": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwnam": {},
+ "getpwnam_r": {},
+ "getpwuid": {},
+ "getpwuid_r": {},
+ "getresgid": {},
+ "getresuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "getuid": {},
+ "gmtime_r": {},
+ "h_errno": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "inet_ntop": {},
+ "inet_pton": {},
+ "initstate": {},
+ "initstate_r": {},
+ "ioctl": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isspace": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lrand48": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkostemp": {},
+ "mkstemp": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "modf": {},
+ "munmap": {},
+ "nl_langinfo": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pathconf": {},
+ "pause": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "poll": {},
+ "popen": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "pthread_attr_destroy": {},
+ "pthread_attr_getdetachstate": {},
+ "pthread_attr_init": {},
+ "pthread_attr_setdetachstate": {},
+ "pthread_attr_setscope": {},
+ "pthread_attr_setstacksize": {},
+ "pthread_cond_broadcast": {},
+ "pthread_cond_destroy": {},
+ "pthread_cond_init": {},
+ "pthread_cond_signal": {},
+ "pthread_cond_timedwait": {},
+ "pthread_cond_wait": {},
+ "pthread_create": {},
+ "pthread_detach": {},
+ "pthread_equal": {},
+ "pthread_exit": {},
+ "pthread_getspecific": {},
+ "pthread_join": {},
+ "pthread_key_create": {},
+ "pthread_key_delete": {},
+ "pthread_mutex_destroy": {},
+ "pthread_mutex_init": {},
+ "pthread_mutex_lock": {},
+ "pthread_mutex_trylock": {},
+ "pthread_mutex_unlock": {},
+ "pthread_mutexattr_destroy": {},
+ "pthread_mutexattr_init": {},
+ "pthread_mutexattr_settype": {},
+ "pthread_self": {},
+ "pthread_setspecific": {},
+ "putc": {},
+ "putchar": {},
+ "puts": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "random": {},
+ "random_r": {},
+ "read": {},
+ "readdir": {},
+ "readdir64": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "recvfrom": {},
+ "recvmsg": {},
+ "remove": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "scalbn": {},
+ "scalbnl": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "sendmsg": {},
+ "sendto": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setstate": {},
+ "setvbuf": {},
+ "shmat": {},
+ "shmctl": {},
+ "shmdt": {},
+ "shutdown": {},
+ "sigaction": {},
+ "signal": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "srand48": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strerror_r": {},
+ "strlen": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strnlen": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strspn": {},
+ "strstr": {},
+ "strtod": {},
+ "strtof": {},
+ "strtoimax": {},
+ "strtol": {},
+ "strtold": {},
+ "strtoll": {},
+ "strtoul": {},
+ "strtoull": {},
+ "strtoumax": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "tmpfile": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "uuid_generate_random": {},
+ "uuid_parse": {},
+ "uuid_unparse": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcschr": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "writev": {},
+ "zero_struct_address": {},
+}
diff --git a/vendor/modernc.org/libc/capi_windows_386.go b/vendor/modernc.org/libc/capi_windows_386.go
new file mode 100644
index 00000000..aa3a369c
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_windows_386.go
@@ -0,0 +1,707 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "AccessCheck": {},
+ "AddAccessDeniedAce": {},
+ "AddAce": {},
+ "AreFileApisANSI": {},
+ "BuildCommDCBW": {},
+ "CancelSynchronousIo": {},
+ "CharLowerW": {},
+ "ClearCommError": {},
+ "CloseHandle": {},
+ "CopyFileW": {},
+ "CreateDirectoryW": {},
+ "CreateEventA": {},
+ "CreateEventW": {},
+ "CreateFileA": {},
+ "CreateFileMappingA": {},
+ "CreateFileMappingW": {},
+ "CreateFileW": {},
+ "CreateHardLinkW": {},
+ "CreateMutexW": {},
+ "CreatePipe": {},
+ "CreateProcessA": {},
+ "CreateProcessW": {},
+ "CreateThread": {},
+ "CreateWindowExW": {},
+ "DdeAbandonTransaction": {},
+ "DdeAccessData": {},
+ "DdeClientTransaction": {},
+ "DdeConnect": {},
+ "DdeCreateDataHandle": {},
+ "DdeCreateStringHandleW": {},
+ "DdeDisconnect": {},
+ "DdeFreeDataHandle": {},
+ "DdeFreeStringHandle": {},
+ "DdeGetData": {},
+ "DdeGetLastError": {},
+ "DdeInitializeW": {},
+ "DdeNameService": {},
+ "DdeQueryStringW": {},
+ "DdeUnaccessData": {},
+ "DdeUninitialize": {},
+ "DebugBreak": {},
+ "DefWindowProcW": {},
+ "DeleteCriticalSection": {},
+ "DeleteFileA": {},
+ "DeleteFileW": {},
+ "DestroyWindow": {},
+ "DeviceIoControl": {},
+ "DispatchMessageW": {},
+ "DuplicateHandle": {},
+ "EnterCriticalSection": {},
+ "EnumWindows": {},
+ "EqualSid": {},
+ "EscapeCommFunction": {},
+ "ExitProcess": {},
+ "FindClose": {},
+ "FindFirstFileExW": {},
+ "FindFirstFileW": {},
+ "FindNextFileW": {},
+ "FlushFileBuffers": {},
+ "FlushViewOfFile": {},
+ "FormatMessageA": {},
+ "FormatMessageW": {},
+ "FreeLibrary": {},
+ "GetACP": {},
+ "GetAce": {},
+ "GetAclInformation": {},
+ "GetCommModemStatus": {},
+ "GetCommState": {},
+ "GetCommandLineW": {},
+ "GetComputerNameExW": {},
+ "GetComputerNameW": {},
+ "GetConsoleCP": {},
+ "GetConsoleMode": {},
+ "GetConsoleScreenBufferInfo": {},
+ "GetCurrentDirectoryW": {},
+ "GetCurrentProcess": {},
+ "GetCurrentProcessId": {},
+ "GetCurrentThread": {},
+ "GetCurrentThreadId": {},
+ "GetDiskFreeSpaceA": {},
+ "GetDiskFreeSpaceW": {},
+ "GetEnvironmentVariableA": {},
+ "GetEnvironmentVariableW": {},
+ "GetExitCodeProcess": {},
+ "GetExitCodeThread": {},
+ "GetFileAttributesA": {},
+ "GetFileAttributesExW": {},
+ "GetFileAttributesW": {},
+ "GetFileInformationByHandle": {},
+ "GetFileSecurityA": {},
+ "GetFileSecurityW": {},
+ "GetFileSize": {},
+ "GetFileType": {},
+ "GetFullPathNameA": {},
+ "GetFullPathNameW": {},
+ "GetLastError": {},
+ "GetLengthSid": {},
+ "GetLogicalDriveStringsA": {},
+ "GetMessageW": {},
+ "GetModuleFileNameA": {},
+ "GetModuleFileNameW": {},
+ "GetModuleHandleA": {},
+ "GetModuleHandleW": {},
+ "GetNamedSecurityInfoW": {},
+ "GetOverlappedResult": {},
+ "GetPrivateProfileStringA": {},
+ "GetProcAddress": {},
+ "GetProcessHeap": {},
+ "GetProfilesDirectoryW": {},
+ "GetSecurityDescriptorDacl": {},
+ "GetSecurityDescriptorOwner": {},
+ "GetShortPathNameW": {},
+ "GetSidIdentifierAuthority": {},
+ "GetSidLengthRequired": {},
+ "GetSidSubAuthority": {},
+ "GetStdHandle": {},
+ "GetSystemInfo": {},
+ "GetSystemTime": {},
+ "GetSystemTimeAsFileTime": {},
+ "GetTempFileNameW": {},
+ "GetTempPathA": {},
+ "GetTempPathW": {},
+ "GetTickCount": {},
+ "GetTokenInformation": {},
+ "GetUserNameW": {},
+ "GetVersionExA": {},
+ "GetVersionExW": {},
+ "GetVolumeInformationA": {},
+ "GetVolumeInformationW": {},
+ "GetVolumeNameForVolumeMountPointW": {},
+ "GetWindowLongPtrW": {},
+ "GetWindowLongW": {},
+ "GetWindowsDirectoryA": {},
+ "GlobalAddAtomW": {},
+ "GlobalDeleteAtom": {},
+ "GlobalGetAtomNameW": {},
+ "HeapAlloc": {},
+ "HeapCompact": {},
+ "HeapCreate": {},
+ "HeapDestroy": {},
+ "HeapFree": {},
+ "HeapReAlloc": {},
+ "HeapSize": {},
+ "HeapValidate": {},
+ "IN6_ADDR_EQUAL": {},
+ "IN6_IS_ADDR_V4MAPPED": {},
+ "ImpersonateSelf": {},
+ "InitializeAcl": {},
+ "InitializeCriticalSection": {},
+ "InitializeSid": {},
+ "IsDebuggerPresent": {},
+ "IsWindow": {},
+ "KillTimer": {},
+ "LeaveCriticalSection": {},
+ "LoadLibraryA": {},
+ "LoadLibraryExW": {},
+ "LoadLibraryW": {},
+ "LocalFree": {},
+ "LockFile": {},
+ "LockFileEx": {},
+ "MapViewOfFile": {},
+ "MessageBeep": {},
+ "MessageBoxW": {},
+ "MoveFileW": {},
+ "MsgWaitForMultipleObjectsEx": {},
+ "MultiByteToWideChar": {},
+ "NetApiBufferFree": {},
+ "NetGetDCName": {},
+ "NetUserGetInfo": {},
+ "OpenEventA": {},
+ "OpenProcessToken": {},
+ "OpenThreadToken": {},
+ "OutputDebugStringA": {},
+ "OutputDebugStringW": {},
+ "PeekConsoleInputW": {},
+ "PeekMessageW": {},
+ "PeekNamedPipe": {},
+ "PostMessageW": {},
+ "PostQuitMessage": {},
+ "PurgeComm": {},
+ "QueryPerformanceCounter": {},
+ "QueryPerformanceFrequency": {},
+ "RaiseException": {},
+ "ReadConsoleW": {},
+ "ReadFile": {},
+ "RegCloseKey": {},
+ "RegConnectRegistryW": {},
+ "RegCreateKeyExW": {},
+ "RegDeleteKeyW": {},
+ "RegDeleteValueW": {},
+ "RegEnumKeyExW": {},
+ "RegEnumValueW": {},
+ "RegOpenKeyExW": {},
+ "RegQueryValueExW": {},
+ "RegSetValueExW": {},
+ "RegisterClassExW": {},
+ "RegisterClassW": {},
+ "RemoveDirectoryW": {},
+ "ResetEvent": {},
+ "RevertToSelf": {},
+ "RtlGetVersion": {},
+ "SearchPathW": {},
+ "SendMessageTimeoutW": {},
+ "SendMessageW": {},
+ "SetCommState": {},
+ "SetCommTimeouts": {},
+ "SetConsoleCtrlHandler": {},
+ "SetConsoleMode": {},
+ "SetConsoleTextAttribute": {},
+ "SetCurrentDirectoryW": {},
+ "SetEndOfFile": {},
+ "SetErrorMode": {},
+ "SetEvent": {},
+ "SetFileAttributesW": {},
+ "SetFilePointer": {},
+ "SetFileTime": {},
+ "SetHandleInformation": {},
+ "SetNamedSecurityInfoA": {},
+ "SetThreadPriority": {},
+ "SetTimer": {},
+ "SetWindowLongPtrW": {},
+ "SetWindowLongW": {},
+ "SetupComm": {},
+ "Sleep": {},
+ "SleepEx": {},
+ "SystemTimeToFileTime": {},
+ "TerminateThread": {},
+ "TranslateMessage": {},
+ "UnlockFile": {},
+ "UnlockFileEx": {},
+ "UnmapViewOfFile": {},
+ "UnregisterClassW": {},
+ "WSAAsyncSelect": {},
+ "WSAGetLastError": {},
+ "WSAStartup": {},
+ "WaitForInputIdle": {},
+ "WaitForSingleObject": {},
+ "WaitForSingleObjectEx": {},
+ "WideCharToMultiByte": {},
+ "WriteConsoleW": {},
+ "WriteFile": {},
+ "WspiapiFreeAddrInfo": {},
+ "WspiapiGetAddrInfo": {},
+ "WspiapiGetNameInfo": {},
+ "_IO_putc": {},
+ "_InterlockedCompareExchange": {},
+ "_InterlockedExchange": {},
+ "___errno_location": {},
+ "__acrt_iob_func": {},
+ "__assert_fail": {},
+ "__atomic_load_n": {},
+ "__atomic_store_n": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflow": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflow": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflow": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__ctype_get_mb_cur_max": {},
+ "__env_rm_add": {},
+ "__errno_location": {},
+ "__imp__environ": {},
+ "__imp__wenviron": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isspace_l": {},
+ "__isxdigit_l": {},
+ "__mingw_vfprintf": {},
+ "__mingw_vfscanf": {},
+ "__mingw_vfwprintf": {},
+ "__mingw_vfwscanf": {},
+ "__mingw_vprintf": {},
+ "__mingw_vsnprintf": {},
+ "__mingw_vsnwprintf": {},
+ "__mingw_vsprintf": {},
+ "__mingw_vsscanf": {},
+ "__mingw_vswscanf": {},
+ "__ms_vfscanf": {},
+ "__ms_vfwscanf": {},
+ "__ms_vscanf": {},
+ "__ms_vsnprintf": {},
+ "__ms_vsscanf": {},
+ "__ms_vswscanf": {},
+ "__ms_vwscanf": {},
+ "__putenv": {},
+ "__strchrnul": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "_access": {},
+ "_assert": {},
+ "_beginthread": {},
+ "_beginthreadex": {},
+ "_byteswap_uint64": {},
+ "_byteswap_ulong": {},
+ "_chmod": {},
+ "_chsize": {},
+ "_commit": {},
+ "_controlfp": {},
+ "_copysign": {},
+ "_endthreadex": {},
+ "_errno": {},
+ "_exit": {},
+ "_fileno": {},
+ "_findclose": {},
+ "_findfirst32": {},
+ "_findfirst64i32": {},
+ "_findnext32": {},
+ "_findnext64i32": {},
+ "_fstat64": {},
+ "_fstati64": {},
+ "_ftime": {},
+ "_ftime64": {},
+ "_gmtime32": {},
+ "_gmtime64": {},
+ "_imp___environ": {},
+ "_iob": {},
+ "_isatty": {},
+ "_localtime32": {},
+ "_localtime64": {},
+ "_longjmp": {},
+ "_mkdir": {},
+ "_mktime64": {},
+ "_msize": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_pclose": {},
+ "_popen": {},
+ "_putchar": {},
+ "_set_abort_behavior": {},
+ "_setjmp": {},
+ "_setmode": {},
+ "_snprintf": {},
+ "_snwprintf": {},
+ "_stat64": {},
+ "_stati64": {},
+ "_strdup": {},
+ "_stricmp": {},
+ "_strnicmp": {},
+ "_unlink": {},
+ "_vsnwprintf": {},
+ "_wcsicmp": {},
+ "_wcsnicmp": {},
+ "_wgetenv": {},
+ "_wopen": {},
+ "_wputenv": {},
+ "_wtoi": {},
+ "_wunlink": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "closesocket": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "gai_strerrorA": {},
+ "gai_strerrorW": {},
+ "getc": {},
+ "getcwd": {},
+ "getentropy": {},
+ "getenv": {},
+ "gethostname": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "gmtime": {},
+ "gmtime_r": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "ioctl": {},
+ "ioctlsocket": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isspace": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "lstrcmpiA": {},
+ "lstrlenW": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "popen": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "putc": {},
+ "putchar": {},
+ "putenv": {},
+ "puts": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "random": {},
+ "read": {},
+ "readdir": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setmode": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shutdown": {},
+ "sigaction": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strlen": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strstr": {},
+ "strtod": {},
+ "strtol": {},
+ "strtoul": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "timezone": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcrtomb": {},
+ "wcschr": {},
+ "wcscmp": {},
+ "wcscpy": {},
+ "wcsicmp": {},
+ "wcslen": {},
+ "wcsncmp": {},
+ "wcsrtombs": {},
+ "wcstombs": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "wsprintfA": {},
+ "wsprintfW": {},
+}
diff --git a/vendor/modernc.org/libc/capi_windows_amd64.go b/vendor/modernc.org/libc/capi_windows_amd64.go
new file mode 100644
index 00000000..49fc12f2
--- /dev/null
+++ b/vendor/modernc.org/libc/capi_windows_amd64.go
@@ -0,0 +1,703 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+var CAPI = map[string]struct{}{
+ "AccessCheck": {},
+ "AddAccessDeniedAce": {},
+ "AddAce": {},
+ "AreFileApisANSI": {},
+ "BuildCommDCBW": {},
+ "CancelSynchronousIo": {},
+ "CharLowerW": {},
+ "ClearCommError": {},
+ "CloseHandle": {},
+ "CopyFileW": {},
+ "CreateDirectoryW": {},
+ "CreateEventA": {},
+ "CreateEventW": {},
+ "CreateFileA": {},
+ "CreateFileMappingA": {},
+ "CreateFileMappingW": {},
+ "CreateFileW": {},
+ "CreateHardLinkW": {},
+ "CreateMutexW": {},
+ "CreatePipe": {},
+ "CreateProcessA": {},
+ "CreateProcessW": {},
+ "CreateThread": {},
+ "CreateWindowExW": {},
+ "DdeAbandonTransaction": {},
+ "DdeAccessData": {},
+ "DdeClientTransaction": {},
+ "DdeConnect": {},
+ "DdeCreateDataHandle": {},
+ "DdeCreateStringHandleW": {},
+ "DdeDisconnect": {},
+ "DdeFreeDataHandle": {},
+ "DdeFreeStringHandle": {},
+ "DdeGetData": {},
+ "DdeGetLastError": {},
+ "DdeInitializeW": {},
+ "DdeNameService": {},
+ "DdeQueryStringW": {},
+ "DdeUnaccessData": {},
+ "DdeUninitialize": {},
+ "DebugBreak": {},
+ "DefWindowProcW": {},
+ "DeleteCriticalSection": {},
+ "DeleteFileA": {},
+ "DeleteFileW": {},
+ "DestroyWindow": {},
+ "DeviceIoControl": {},
+ "DispatchMessageW": {},
+ "DuplicateHandle": {},
+ "EnterCriticalSection": {},
+ "EnumWindows": {},
+ "EqualSid": {},
+ "EscapeCommFunction": {},
+ "ExitProcess": {},
+ "FindClose": {},
+ "FindFirstFileExW": {},
+ "FindFirstFileW": {},
+ "FindNextFileW": {},
+ "FlushFileBuffers": {},
+ "FlushViewOfFile": {},
+ "FormatMessageA": {},
+ "FormatMessageW": {},
+ "FreeLibrary": {},
+ "GetACP": {},
+ "GetAce": {},
+ "GetAclInformation": {},
+ "GetCommModemStatus": {},
+ "GetCommState": {},
+ "GetCommandLineW": {},
+ "GetComputerNameExW": {},
+ "GetComputerNameW": {},
+ "GetConsoleCP": {},
+ "GetConsoleMode": {},
+ "GetConsoleScreenBufferInfo": {},
+ "GetCurrentDirectoryW": {},
+ "GetCurrentProcess": {},
+ "GetCurrentProcessId": {},
+ "GetCurrentThread": {},
+ "GetCurrentThreadId": {},
+ "GetDiskFreeSpaceA": {},
+ "GetDiskFreeSpaceW": {},
+ "GetEnvironmentVariableA": {},
+ "GetEnvironmentVariableW": {},
+ "GetExitCodeProcess": {},
+ "GetExitCodeThread": {},
+ "GetFileAttributesA": {},
+ "GetFileAttributesExW": {},
+ "GetFileAttributesW": {},
+ "GetFileInformationByHandle": {},
+ "GetFileSecurityA": {},
+ "GetFileSecurityW": {},
+ "GetFileSize": {},
+ "GetFileType": {},
+ "GetFullPathNameA": {},
+ "GetFullPathNameW": {},
+ "GetLastError": {},
+ "GetLengthSid": {},
+ "GetLogicalDriveStringsA": {},
+ "GetMessageW": {},
+ "GetModuleFileNameA": {},
+ "GetModuleFileNameW": {},
+ "GetModuleHandleA": {},
+ "GetModuleHandleW": {},
+ "GetNamedSecurityInfoW": {},
+ "GetOverlappedResult": {},
+ "GetPrivateProfileStringA": {},
+ "GetProcAddress": {},
+ "GetProcessHeap": {},
+ "GetProfilesDirectoryW": {},
+ "GetSecurityDescriptorDacl": {},
+ "GetSecurityDescriptorOwner": {},
+ "GetShortPathNameW": {},
+ "GetSidIdentifierAuthority": {},
+ "GetSidLengthRequired": {},
+ "GetSidSubAuthority": {},
+ "GetStdHandle": {},
+ "GetSystemInfo": {},
+ "GetSystemTime": {},
+ "GetSystemTimeAsFileTime": {},
+ "GetTempFileNameW": {},
+ "GetTempPathA": {},
+ "GetTempPathW": {},
+ "GetTickCount": {},
+ "GetTokenInformation": {},
+ "GetUserNameW": {},
+ "GetVersionExA": {},
+ "GetVersionExW": {},
+ "GetVolumeInformationA": {},
+ "GetVolumeInformationW": {},
+ "GetVolumeNameForVolumeMountPointW": {},
+ "GetWindowLongPtrW": {},
+ "GetWindowsDirectoryA": {},
+ "GlobalAddAtomW": {},
+ "GlobalDeleteAtom": {},
+ "GlobalGetAtomNameW": {},
+ "HeapAlloc": {},
+ "HeapCompact": {},
+ "HeapCreate": {},
+ "HeapDestroy": {},
+ "HeapFree": {},
+ "HeapReAlloc": {},
+ "HeapSize": {},
+ "HeapValidate": {},
+ "IN6_ADDR_EQUAL": {},
+ "IN6_IS_ADDR_V4MAPPED": {},
+ "ImpersonateSelf": {},
+ "InitializeAcl": {},
+ "InitializeCriticalSection": {},
+ "InitializeSid": {},
+ "IsDebuggerPresent": {},
+ "IsWindow": {},
+ "KillTimer": {},
+ "LeaveCriticalSection": {},
+ "LoadLibraryA": {},
+ "LoadLibraryExW": {},
+ "LoadLibraryW": {},
+ "LocalFree": {},
+ "LockFile": {},
+ "LockFileEx": {},
+ "MapViewOfFile": {},
+ "MessageBeep": {},
+ "MessageBoxW": {},
+ "MoveFileW": {},
+ "MsgWaitForMultipleObjectsEx": {},
+ "MultiByteToWideChar": {},
+ "NetApiBufferFree": {},
+ "NetGetDCName": {},
+ "NetUserGetInfo": {},
+ "OpenEventA": {},
+ "OpenProcessToken": {},
+ "OpenThreadToken": {},
+ "OutputDebugStringA": {},
+ "OutputDebugStringW": {},
+ "PeekConsoleInputW": {},
+ "PeekMessageW": {},
+ "PeekNamedPipe": {},
+ "PostMessageW": {},
+ "PostQuitMessage": {},
+ "PurgeComm": {},
+ "QueryPerformanceCounter": {},
+ "QueryPerformanceFrequency": {},
+ "RaiseException": {},
+ "ReadConsoleW": {},
+ "ReadFile": {},
+ "RegCloseKey": {},
+ "RegConnectRegistryW": {},
+ "RegCreateKeyExW": {},
+ "RegDeleteKeyW": {},
+ "RegDeleteValueW": {},
+ "RegEnumKeyExW": {},
+ "RegEnumValueW": {},
+ "RegOpenKeyExW": {},
+ "RegQueryValueExW": {},
+ "RegSetValueExW": {},
+ "RegisterClassExW": {},
+ "RegisterClassW": {},
+ "RemoveDirectoryW": {},
+ "ResetEvent": {},
+ "RevertToSelf": {},
+ "RtlGetVersion": {},
+ "SearchPathW": {},
+ "SendMessageTimeoutW": {},
+ "SendMessageW": {},
+ "SetCommState": {},
+ "SetCommTimeouts": {},
+ "SetConsoleCtrlHandler": {},
+ "SetConsoleMode": {},
+ "SetConsoleTextAttribute": {},
+ "SetCurrentDirectoryW": {},
+ "SetEndOfFile": {},
+ "SetErrorMode": {},
+ "SetEvent": {},
+ "SetFileAttributesW": {},
+ "SetFilePointer": {},
+ "SetFileTime": {},
+ "SetHandleInformation": {},
+ "SetNamedSecurityInfoA": {},
+ "SetThreadPriority": {},
+ "SetTimer": {},
+ "SetWindowLongPtrW": {},
+ "SetupComm": {},
+ "Sleep": {},
+ "SleepEx": {},
+ "SystemTimeToFileTime": {},
+ "TerminateThread": {},
+ "TranslateMessage": {},
+ "UnlockFile": {},
+ "UnlockFileEx": {},
+ "UnmapViewOfFile": {},
+ "UnregisterClassW": {},
+ "WSAAsyncSelect": {},
+ "WSAGetLastError": {},
+ "WSAStartup": {},
+ "WaitForInputIdle": {},
+ "WaitForSingleObject": {},
+ "WaitForSingleObjectEx": {},
+ "WideCharToMultiByte": {},
+ "WriteConsoleW": {},
+ "WriteFile": {},
+ "WspiapiFreeAddrInfo": {},
+ "WspiapiGetAddrInfo": {},
+ "WspiapiGetNameInfo": {},
+ "_IO_putc": {},
+ "_InterlockedCompareExchange": {},
+ "_InterlockedExchange": {},
+ "___errno_location": {},
+ "__acrt_iob_func": {},
+ "__assert_fail": {},
+ "__atomic_load_n": {},
+ "__atomic_store_n": {},
+ "__builtin___memcpy_chk": {},
+ "__builtin___memmove_chk": {},
+ "__builtin___memset_chk": {},
+ "__builtin___snprintf_chk": {},
+ "__builtin___sprintf_chk": {},
+ "__builtin___strcat_chk": {},
+ "__builtin___strcpy_chk": {},
+ "__builtin___strncpy_chk": {},
+ "__builtin___vsnprintf_chk": {},
+ "__builtin_abort": {},
+ "__builtin_abs": {},
+ "__builtin_add_overflow": {},
+ "__builtin_add_overflowInt64": {},
+ "__builtin_add_overflowUint32": {},
+ "__builtin_add_overflowUint64": {},
+ "__builtin_bswap16": {},
+ "__builtin_bswap32": {},
+ "__builtin_bswap64": {},
+ "__builtin_bzero": {},
+ "__builtin_clz": {},
+ "__builtin_clzl": {},
+ "__builtin_clzll": {},
+ "__builtin_constant_p_impl": {},
+ "__builtin_copysign": {},
+ "__builtin_copysignf": {},
+ "__builtin_copysignl": {},
+ "__builtin_exit": {},
+ "__builtin_expect": {},
+ "__builtin_fabs": {},
+ "__builtin_free": {},
+ "__builtin_getentropy": {},
+ "__builtin_huge_val": {},
+ "__builtin_huge_valf": {},
+ "__builtin_inf": {},
+ "__builtin_inff": {},
+ "__builtin_infl": {},
+ "__builtin_isnan": {},
+ "__builtin_malloc": {},
+ "__builtin_memcmp": {},
+ "__builtin_memcpy": {},
+ "__builtin_memset": {},
+ "__builtin_mmap": {},
+ "__builtin_mul_overflow": {},
+ "__builtin_mul_overflowInt64": {},
+ "__builtin_mul_overflowUint128": {},
+ "__builtin_mul_overflowUint64": {},
+ "__builtin_nan": {},
+ "__builtin_nanf": {},
+ "__builtin_nanl": {},
+ "__builtin_object_size": {},
+ "__builtin_popcount": {},
+ "__builtin_popcountl": {},
+ "__builtin_prefetch": {},
+ "__builtin_printf": {},
+ "__builtin_snprintf": {},
+ "__builtin_sprintf": {},
+ "__builtin_strchr": {},
+ "__builtin_strcmp": {},
+ "__builtin_strcpy": {},
+ "__builtin_strlen": {},
+ "__builtin_sub_overflow": {},
+ "__builtin_sub_overflowInt64": {},
+ "__builtin_trap": {},
+ "__builtin_unreachable": {},
+ "__ccgo_dmesg": {},
+ "__ccgo_getMutexType": {},
+ "__ccgo_in6addr_anyp": {},
+ "__ccgo_pthreadAttrGetDetachState": {},
+ "__ccgo_pthreadMutexattrGettype": {},
+ "__ccgo_sqlite3_log": {},
+ "__ctype_get_mb_cur_max": {},
+ "__env_rm_add": {},
+ "__errno_location": {},
+ "__imp__environ": {},
+ "__imp__wenviron": {},
+ "__isalnum_l": {},
+ "__isalpha_l": {},
+ "__isdigit_l": {},
+ "__islower_l": {},
+ "__isnan": {},
+ "__isnanf": {},
+ "__isnanl": {},
+ "__isoc99_sscanf": {},
+ "__isprint_l": {},
+ "__isspace_l": {},
+ "__isxdigit_l": {},
+ "__mingw_vfprintf": {},
+ "__mingw_vfscanf": {},
+ "__mingw_vfwprintf": {},
+ "__mingw_vfwscanf": {},
+ "__mingw_vprintf": {},
+ "__mingw_vsnprintf": {},
+ "__mingw_vsnwprintf": {},
+ "__mingw_vsprintf": {},
+ "__mingw_vsscanf": {},
+ "__mingw_vswscanf": {},
+ "__ms_vfscanf": {},
+ "__ms_vfwscanf": {},
+ "__ms_vscanf": {},
+ "__ms_vsnprintf": {},
+ "__ms_vsscanf": {},
+ "__ms_vswscanf": {},
+ "__ms_vwscanf": {},
+ "__putenv": {},
+ "__strchrnul": {},
+ "__sync_add_and_fetch_uint32": {},
+ "__sync_sub_and_fetch_uint32": {},
+ "_access": {},
+ "_assert": {},
+ "_beginthread": {},
+ "_beginthreadex": {},
+ "_byteswap_uint64": {},
+ "_byteswap_ulong": {},
+ "_chmod": {},
+ "_chsize": {},
+ "_commit": {},
+ "_controlfp": {},
+ "_copysign": {},
+ "_endthreadex": {},
+ "_errno": {},
+ "_exit": {},
+ "_fileno": {},
+ "_findclose": {},
+ "_findfirst32": {},
+ "_findfirst64i32": {},
+ "_findnext32": {},
+ "_findnext64i32": {},
+ "_fstat64": {},
+ "_fstati64": {},
+ "_ftime": {},
+ "_ftime64": {},
+ "_gmtime64": {},
+ "_imp___environ": {},
+ "_iob": {},
+ "_isatty": {},
+ "_localtime64": {},
+ "_longjmp": {},
+ "_mkdir": {},
+ "_mktime64": {},
+ "_msize": {},
+ "_obstack_begin": {},
+ "_obstack_newchunk": {},
+ "_pclose": {},
+ "_popen": {},
+ "_putchar": {},
+ "_set_abort_behavior": {},
+ "_setjmp": {},
+ "_setmode": {},
+ "_snprintf": {},
+ "_snwprintf": {},
+ "_stat64": {},
+ "_stati64": {},
+ "_strdup": {},
+ "_stricmp": {},
+ "_strnicmp": {},
+ "_unlink": {},
+ "_vsnwprintf": {},
+ "_wcsicmp": {},
+ "_wcsnicmp": {},
+ "_wgetenv": {},
+ "_wopen": {},
+ "_wputenv": {},
+ "_wtoi": {},
+ "_wunlink": {},
+ "abort": {},
+ "abs": {},
+ "accept": {},
+ "access": {},
+ "acos": {},
+ "acosh": {},
+ "alarm": {},
+ "asin": {},
+ "asinh": {},
+ "atan": {},
+ "atan2": {},
+ "atanh": {},
+ "atexit": {},
+ "atof": {},
+ "atoi": {},
+ "atol": {},
+ "backtrace": {},
+ "backtrace_symbols_fd": {},
+ "bind": {},
+ "bzero": {},
+ "calloc": {},
+ "ceil": {},
+ "ceilf": {},
+ "cfsetispeed": {},
+ "cfsetospeed": {},
+ "chdir": {},
+ "chmod": {},
+ "clock_gettime": {},
+ "close": {},
+ "closedir": {},
+ "closesocket": {},
+ "confstr": {},
+ "connect": {},
+ "copysign": {},
+ "copysignf": {},
+ "cos": {},
+ "cosf": {},
+ "cosh": {},
+ "dlclose": {},
+ "dlerror": {},
+ "dlopen": {},
+ "dlsym": {},
+ "dup2": {},
+ "environ": {},
+ "execvp": {},
+ "exit": {},
+ "exp": {},
+ "fabs": {},
+ "fabsf": {},
+ "fabsl": {},
+ "fchmod": {},
+ "fclose": {},
+ "fcntl": {},
+ "fcntl64": {},
+ "fdopen": {},
+ "ferror": {},
+ "fflush": {},
+ "fgetc": {},
+ "fgets": {},
+ "fileno": {},
+ "floor": {},
+ "fmod": {},
+ "fopen": {},
+ "fopen64": {},
+ "fork": {},
+ "fprintf": {},
+ "fputc": {},
+ "fputs": {},
+ "fread": {},
+ "free": {},
+ "frexp": {},
+ "fscanf": {},
+ "fseek": {},
+ "fstat": {},
+ "fstat64": {},
+ "fsync": {},
+ "ftell": {},
+ "ftruncate": {},
+ "ftruncate64": {},
+ "fts64_close": {},
+ "fts64_open": {},
+ "fts64_read": {},
+ "fts_close": {},
+ "fts_read": {},
+ "fwrite": {},
+ "gai_strerror": {},
+ "gai_strerrorA": {},
+ "gai_strerrorW": {},
+ "getc": {},
+ "getcwd": {},
+ "getentropy": {},
+ "getenv": {},
+ "gethostname": {},
+ "getpeername": {},
+ "getpid": {},
+ "getpwuid": {},
+ "getrlimit": {},
+ "getrlimit64": {},
+ "getrusage": {},
+ "getservbyname": {},
+ "getsockname": {},
+ "getsockopt": {},
+ "gettimeofday": {},
+ "gmtime": {},
+ "gmtime_r": {},
+ "htonl": {},
+ "htons": {},
+ "hypot": {},
+ "inet_ntoa": {},
+ "ioctl": {},
+ "ioctlsocket": {},
+ "isalnum": {},
+ "isalpha": {},
+ "isascii": {},
+ "isatty": {},
+ "isdigit": {},
+ "islower": {},
+ "isnan": {},
+ "isnanf": {},
+ "isnanl": {},
+ "isprint": {},
+ "isspace": {},
+ "isxdigit": {},
+ "kill": {},
+ "ldexp": {},
+ "link": {},
+ "listen": {},
+ "localtime": {},
+ "localtime_r": {},
+ "log": {},
+ "log10": {},
+ "longjmp": {},
+ "lseek": {},
+ "lseek64": {},
+ "lstat": {},
+ "lstat64": {},
+ "lstrcmpiA": {},
+ "lstrlenW": {},
+ "malloc": {},
+ "mblen": {},
+ "mbstowcs": {},
+ "mbtowc": {},
+ "memchr": {},
+ "memcmp": {},
+ "memcpy": {},
+ "memmove": {},
+ "memset": {},
+ "mkdir": {},
+ "mkfifo": {},
+ "mknod": {},
+ "mkstemp64": {},
+ "mkstemps": {},
+ "mkstemps64": {},
+ "mktime": {},
+ "mmap": {},
+ "mmap64": {},
+ "modf": {},
+ "mremap": {},
+ "munmap": {},
+ "ntohs": {},
+ "obstack_free": {},
+ "obstack_vprintf": {},
+ "open": {},
+ "open64": {},
+ "opendir": {},
+ "openpty": {},
+ "pclose": {},
+ "perror": {},
+ "pipe": {},
+ "popen": {},
+ "pow": {},
+ "printf": {},
+ "pselect": {},
+ "putc": {},
+ "putchar": {},
+ "putenv": {},
+ "puts": {},
+ "qsort": {},
+ "raise": {},
+ "rand": {},
+ "random": {},
+ "read": {},
+ "readdir": {},
+ "readlink": {},
+ "readv": {},
+ "realloc": {},
+ "reallocarray": {},
+ "realpath": {},
+ "recv": {},
+ "rename": {},
+ "rewind": {},
+ "rindex": {},
+ "rint": {},
+ "rmdir": {},
+ "round": {},
+ "sched_yield": {},
+ "select": {},
+ "send": {},
+ "setbuf": {},
+ "setenv": {},
+ "setjmp": {},
+ "setlocale": {},
+ "setmode": {},
+ "setrlimit": {},
+ "setrlimit64": {},
+ "setsid": {},
+ "setsockopt": {},
+ "setvbuf": {},
+ "shutdown": {},
+ "sigaction": {},
+ "sin": {},
+ "sinf": {},
+ "sinh": {},
+ "sleep": {},
+ "snprintf": {},
+ "socket": {},
+ "sprintf": {},
+ "sqrt": {},
+ "sscanf": {},
+ "stat": {},
+ "stat64": {},
+ "stderr": {},
+ "stdin": {},
+ "stdout": {},
+ "strcasecmp": {},
+ "strcat": {},
+ "strchr": {},
+ "strcmp": {},
+ "strcpy": {},
+ "strcspn": {},
+ "strdup": {},
+ "strerror": {},
+ "strlen": {},
+ "strncmp": {},
+ "strncpy": {},
+ "strpbrk": {},
+ "strrchr": {},
+ "strstr": {},
+ "strtod": {},
+ "strtol": {},
+ "strtoul": {},
+ "symlink": {},
+ "sysconf": {},
+ "system": {},
+ "tan": {},
+ "tanh": {},
+ "tcgetattr": {},
+ "tcsendbreak": {},
+ "tcsetattr": {},
+ "time": {},
+ "timezone": {},
+ "tolower": {},
+ "toupper": {},
+ "trunc": {},
+ "tzset": {},
+ "umask": {},
+ "uname": {},
+ "ungetc": {},
+ "unlink": {},
+ "unsetenv": {},
+ "usleep": {},
+ "utime": {},
+ "utimes": {},
+ "vasprintf": {},
+ "vfprintf": {},
+ "vprintf": {},
+ "vsnprintf": {},
+ "vsprintf": {},
+ "waitpid": {},
+ "wcrtomb": {},
+ "wcschr": {},
+ "wcscmp": {},
+ "wcscpy": {},
+ "wcsicmp": {},
+ "wcslen": {},
+ "wcsncmp": {},
+ "wcsrtombs": {},
+ "wcstombs": {},
+ "wctomb": {},
+ "wcwidth": {},
+ "write": {},
+ "wsprintfA": {},
+ "wsprintfW": {},
+}
diff --git a/vendor/modernc.org/libc/ccgo.go b/vendor/modernc.org/libc/ccgo.go
new file mode 100644
index 00000000..1ef93fd1
--- /dev/null
+++ b/vendor/modernc.org/libc/ccgo.go
@@ -0,0 +1,1751 @@
+// Code generated by 'go generate' - DO NOT EDIT.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "sync/atomic"
+ "unsafe"
+)
+
+func AtomicStoreNInt32(ptr uintptr, val int32, memorder int32) {
+ atomic.StoreInt32((*int32)(unsafe.Pointer(ptr)), val)
+}
+
+func AtomicStoreNInt64(ptr uintptr, val int64, memorder int32) {
+ atomic.StoreInt64((*int64)(unsafe.Pointer(ptr)), val)
+}
+
+func AtomicStoreNUint32(ptr uintptr, val uint32, memorder int32) {
+ atomic.StoreUint32((*uint32)(unsafe.Pointer(ptr)), val)
+}
+
+func AtomicStoreNUint64(ptr uintptr, val uint64, memorder int32) {
+ atomic.StoreUint64((*uint64)(unsafe.Pointer(ptr)), val)
+}
+
+func AtomicStoreNUintptr(ptr uintptr, val uintptr, memorder int32) {
+ atomic.StoreUintptr((*uintptr)(unsafe.Pointer(ptr)), val)
+}
+
+func AtomicLoadNInt32(ptr uintptr, memorder int32) int32 {
+ return atomic.LoadInt32((*int32)(unsafe.Pointer(ptr)))
+}
+
+func AtomicLoadNInt64(ptr uintptr, memorder int32) int64 {
+ return atomic.LoadInt64((*int64)(unsafe.Pointer(ptr)))
+}
+
+func AtomicLoadNUint32(ptr uintptr, memorder int32) uint32 {
+ return atomic.LoadUint32((*uint32)(unsafe.Pointer(ptr)))
+}
+
+func AtomicLoadNUint64(ptr uintptr, memorder int32) uint64 {
+ return atomic.LoadUint64((*uint64)(unsafe.Pointer(ptr)))
+}
+
+func AtomicLoadNUintptr(ptr uintptr, memorder int32) uintptr {
+ return atomic.LoadUintptr((*uintptr)(unsafe.Pointer(ptr)))
+}
+func AssignInt8(p *int8, v int8) int8 { *p = v; return v }
+func AssignInt16(p *int16, v int16) int16 { *p = v; return v }
+func AssignInt32(p *int32, v int32) int32 { *p = v; return v }
+func AssignInt64(p *int64, v int64) int64 { *p = v; return v }
+func AssignUint8(p *uint8, v uint8) uint8 { *p = v; return v }
+func AssignUint16(p *uint16, v uint16) uint16 { *p = v; return v }
+func AssignUint32(p *uint32, v uint32) uint32 { *p = v; return v }
+func AssignUint64(p *uint64, v uint64) uint64 { *p = v; return v }
+func AssignFloat32(p *float32, v float32) float32 { *p = v; return v }
+func AssignFloat64(p *float64, v float64) float64 { *p = v; return v }
+func AssignUintptr(p *uintptr, v uintptr) uintptr { *p = v; return v }
+
+func AssignPtrInt8(p uintptr, v int8) int8 { *(*int8)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrInt16(p uintptr, v int16) int16 { *(*int16)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrInt32(p uintptr, v int32) int32 { *(*int32)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrInt64(p uintptr, v int64) int64 { *(*int64)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrUint8(p uintptr, v uint8) uint8 { *(*uint8)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrUint16(p uintptr, v uint16) uint16 { *(*uint16)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrUint32(p uintptr, v uint32) uint32 { *(*uint32)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrUint64(p uintptr, v uint64) uint64 { *(*uint64)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrFloat32(p uintptr, v float32) float32 { *(*float32)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrFloat64(p uintptr, v float64) float64 { *(*float64)(unsafe.Pointer(p)) = v; return v }
+func AssignPtrUintptr(p uintptr, v uintptr) uintptr { *(*uintptr)(unsafe.Pointer(p)) = v; return v }
+
+func AssignMulInt8(p *int8, v int8) int8 { *p *= v; return *p }
+func AssignMulInt16(p *int16, v int16) int16 { *p *= v; return *p }
+func AssignMulInt32(p *int32, v int32) int32 { *p *= v; return *p }
+func AssignMulInt64(p *int64, v int64) int64 { *p *= v; return *p }
+func AssignMulUint8(p *uint8, v uint8) uint8 { *p *= v; return *p }
+func AssignMulUint16(p *uint16, v uint16) uint16 { *p *= v; return *p }
+func AssignMulUint32(p *uint32, v uint32) uint32 { *p *= v; return *p }
+func AssignMulUint64(p *uint64, v uint64) uint64 { *p *= v; return *p }
+func AssignMulFloat32(p *float32, v float32) float32 { *p *= v; return *p }
+func AssignMulFloat64(p *float64, v float64) float64 { *p *= v; return *p }
+func AssignMulUintptr(p *uintptr, v uintptr) uintptr { *p *= v; return *p }
+
+func AssignDivInt8(p *int8, v int8) int8 { *p /= v; return *p }
+func AssignDivInt16(p *int16, v int16) int16 { *p /= v; return *p }
+func AssignDivInt32(p *int32, v int32) int32 { *p /= v; return *p }
+func AssignDivInt64(p *int64, v int64) int64 { *p /= v; return *p }
+func AssignDivUint8(p *uint8, v uint8) uint8 { *p /= v; return *p }
+func AssignDivUint16(p *uint16, v uint16) uint16 { *p /= v; return *p }
+func AssignDivUint32(p *uint32, v uint32) uint32 { *p /= v; return *p }
+func AssignDivUint64(p *uint64, v uint64) uint64 { *p /= v; return *p }
+func AssignDivFloat32(p *float32, v float32) float32 { *p /= v; return *p }
+func AssignDivFloat64(p *float64, v float64) float64 { *p /= v; return *p }
+func AssignDivUintptr(p *uintptr, v uintptr) uintptr { *p /= v; return *p }
+
+func AssignRemInt8(p *int8, v int8) int8 { *p %= v; return *p }
+func AssignRemInt16(p *int16, v int16) int16 { *p %= v; return *p }
+func AssignRemInt32(p *int32, v int32) int32 { *p %= v; return *p }
+func AssignRemInt64(p *int64, v int64) int64 { *p %= v; return *p }
+func AssignRemUint8(p *uint8, v uint8) uint8 { *p %= v; return *p }
+func AssignRemUint16(p *uint16, v uint16) uint16 { *p %= v; return *p }
+func AssignRemUint32(p *uint32, v uint32) uint32 { *p %= v; return *p }
+func AssignRemUint64(p *uint64, v uint64) uint64 { *p %= v; return *p }
+func AssignRemUintptr(p *uintptr, v uintptr) uintptr { *p %= v; return *p }
+
+func AssignAddInt8(p *int8, v int8) int8 { *p += v; return *p }
+func AssignAddInt16(p *int16, v int16) int16 { *p += v; return *p }
+func AssignAddInt32(p *int32, v int32) int32 { *p += v; return *p }
+func AssignAddInt64(p *int64, v int64) int64 { *p += v; return *p }
+func AssignAddUint8(p *uint8, v uint8) uint8 { *p += v; return *p }
+func AssignAddUint16(p *uint16, v uint16) uint16 { *p += v; return *p }
+func AssignAddUint32(p *uint32, v uint32) uint32 { *p += v; return *p }
+func AssignAddUint64(p *uint64, v uint64) uint64 { *p += v; return *p }
+func AssignAddFloat32(p *float32, v float32) float32 { *p += v; return *p }
+func AssignAddFloat64(p *float64, v float64) float64 { *p += v; return *p }
+func AssignAddUintptr(p *uintptr, v uintptr) uintptr { *p += v; return *p }
+
+func AssignSubInt8(p *int8, v int8) int8 { *p -= v; return *p }
+func AssignSubInt16(p *int16, v int16) int16 { *p -= v; return *p }
+func AssignSubInt32(p *int32, v int32) int32 { *p -= v; return *p }
+func AssignSubInt64(p *int64, v int64) int64 { *p -= v; return *p }
+func AssignSubUint8(p *uint8, v uint8) uint8 { *p -= v; return *p }
+func AssignSubUint16(p *uint16, v uint16) uint16 { *p -= v; return *p }
+func AssignSubUint32(p *uint32, v uint32) uint32 { *p -= v; return *p }
+func AssignSubUint64(p *uint64, v uint64) uint64 { *p -= v; return *p }
+func AssignSubFloat32(p *float32, v float32) float32 { *p -= v; return *p }
+func AssignSubFloat64(p *float64, v float64) float64 { *p -= v; return *p }
+func AssignSubUintptr(p *uintptr, v uintptr) uintptr { *p -= v; return *p }
+
+func AssignAndInt8(p *int8, v int8) int8 { *p &= v; return *p }
+func AssignAndInt16(p *int16, v int16) int16 { *p &= v; return *p }
+func AssignAndInt32(p *int32, v int32) int32 { *p &= v; return *p }
+func AssignAndInt64(p *int64, v int64) int64 { *p &= v; return *p }
+func AssignAndUint8(p *uint8, v uint8) uint8 { *p &= v; return *p }
+func AssignAndUint16(p *uint16, v uint16) uint16 { *p &= v; return *p }
+func AssignAndUint32(p *uint32, v uint32) uint32 { *p &= v; return *p }
+func AssignAndUint64(p *uint64, v uint64) uint64 { *p &= v; return *p }
+func AssignAndUintptr(p *uintptr, v uintptr) uintptr { *p &= v; return *p }
+
+func AssignXorInt8(p *int8, v int8) int8 { *p ^= v; return *p }
+func AssignXorInt16(p *int16, v int16) int16 { *p ^= v; return *p }
+func AssignXorInt32(p *int32, v int32) int32 { *p ^= v; return *p }
+func AssignXorInt64(p *int64, v int64) int64 { *p ^= v; return *p }
+func AssignXorUint8(p *uint8, v uint8) uint8 { *p ^= v; return *p }
+func AssignXorUint16(p *uint16, v uint16) uint16 { *p ^= v; return *p }
+func AssignXorUint32(p *uint32, v uint32) uint32 { *p ^= v; return *p }
+func AssignXorUint64(p *uint64, v uint64) uint64 { *p ^= v; return *p }
+func AssignXorUintptr(p *uintptr, v uintptr) uintptr { *p ^= v; return *p }
+
+func AssignOrInt8(p *int8, v int8) int8 { *p |= v; return *p }
+func AssignOrInt16(p *int16, v int16) int16 { *p |= v; return *p }
+func AssignOrInt32(p *int32, v int32) int32 { *p |= v; return *p }
+func AssignOrInt64(p *int64, v int64) int64 { *p |= v; return *p }
+func AssignOrUint8(p *uint8, v uint8) uint8 { *p |= v; return *p }
+func AssignOrUint16(p *uint16, v uint16) uint16 { *p |= v; return *p }
+func AssignOrUint32(p *uint32, v uint32) uint32 { *p |= v; return *p }
+func AssignOrUint64(p *uint64, v uint64) uint64 { *p |= v; return *p }
+func AssignOrUintptr(p *uintptr, v uintptr) uintptr { *p |= v; return *p }
+
+func AssignMulPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) *= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) *= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) *= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) *= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) *= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) *= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) *= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) *= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrFloat32(p uintptr, v float32) float32 {
+ *(*float32)(unsafe.Pointer(p)) *= v
+ return *(*float32)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrFloat64(p uintptr, v float64) float64 {
+ *(*float64)(unsafe.Pointer(p)) *= v
+ return *(*float64)(unsafe.Pointer(p))
+}
+
+func AssignMulPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) *= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) /= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) /= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) /= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) /= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) /= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) /= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) /= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) /= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrFloat32(p uintptr, v float32) float32 {
+ *(*float32)(unsafe.Pointer(p)) /= v
+ return *(*float32)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrFloat64(p uintptr, v float64) float64 {
+ *(*float64)(unsafe.Pointer(p)) /= v
+ return *(*float64)(unsafe.Pointer(p))
+}
+
+func AssignDivPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) /= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) %= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) %= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) %= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) %= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) %= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) %= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) %= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) %= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignRemPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) %= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) += v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) += v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) += v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) += v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) += v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) += v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) += v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) += v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrFloat32(p uintptr, v float32) float32 {
+ *(*float32)(unsafe.Pointer(p)) += v
+ return *(*float32)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrFloat64(p uintptr, v float64) float64 {
+ *(*float64)(unsafe.Pointer(p)) += v
+ return *(*float64)(unsafe.Pointer(p))
+}
+
+func AssignAddPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) += v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) -= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) -= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) -= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) -= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) -= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) -= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) -= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) -= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrFloat32(p uintptr, v float32) float32 {
+ *(*float32)(unsafe.Pointer(p)) -= v
+ return *(*float32)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrFloat64(p uintptr, v float64) float64 {
+ *(*float64)(unsafe.Pointer(p)) -= v
+ return *(*float64)(unsafe.Pointer(p))
+}
+
+func AssignSubPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) -= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) &= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) &= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) &= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) &= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) &= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) &= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) &= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) &= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignAndPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) &= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) ^= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) ^= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) ^= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) ^= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) ^= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) ^= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) ^= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) ^= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignXorPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) ^= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrInt8(p uintptr, v int8) int8 {
+ *(*int8)(unsafe.Pointer(p)) |= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrInt16(p uintptr, v int16) int16 {
+ *(*int16)(unsafe.Pointer(p)) |= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrInt32(p uintptr, v int32) int32 {
+ *(*int32)(unsafe.Pointer(p)) |= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrInt64(p uintptr, v int64) int64 {
+ *(*int64)(unsafe.Pointer(p)) |= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrUint8(p uintptr, v uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) |= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrUint16(p uintptr, v uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) |= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrUint32(p uintptr, v uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) |= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrUint64(p uintptr, v uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) |= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignOrPtrUintptr(p uintptr, v uintptr) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) |= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrInt8(p uintptr, v int) int8 {
+ *(*int8)(unsafe.Pointer(p)) <<= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrInt16(p uintptr, v int) int16 {
+ *(*int16)(unsafe.Pointer(p)) <<= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrInt32(p uintptr, v int) int32 {
+ *(*int32)(unsafe.Pointer(p)) <<= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrInt64(p uintptr, v int) int64 {
+ *(*int64)(unsafe.Pointer(p)) <<= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrUint8(p uintptr, v int) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) <<= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrUint16(p uintptr, v int) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) <<= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrUint32(p uintptr, v int) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) <<= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrUint64(p uintptr, v int) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) <<= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignShlPtrUintptr(p uintptr, v int) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) <<= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrInt8(p uintptr, v int) int8 {
+ *(*int8)(unsafe.Pointer(p)) >>= v
+ return *(*int8)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrInt16(p uintptr, v int) int16 {
+ *(*int16)(unsafe.Pointer(p)) >>= v
+ return *(*int16)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrInt32(p uintptr, v int) int32 {
+ *(*int32)(unsafe.Pointer(p)) >>= v
+ return *(*int32)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrInt64(p uintptr, v int) int64 {
+ *(*int64)(unsafe.Pointer(p)) >>= v
+ return *(*int64)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrUint8(p uintptr, v int) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) >>= v
+ return *(*uint8)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrUint16(p uintptr, v int) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) >>= v
+ return *(*uint16)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrUint32(p uintptr, v int) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) >>= v
+ return *(*uint32)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrUint64(p uintptr, v int) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) >>= v
+ return *(*uint64)(unsafe.Pointer(p))
+}
+
+func AssignShrPtrUintptr(p uintptr, v int) uintptr {
+ *(*uintptr)(unsafe.Pointer(p)) >>= v
+ return *(*uintptr)(unsafe.Pointer(p))
+}
+
+func AssignShlInt8(p *int8, v int) int8 { *p <<= v; return *p }
+
+func AssignShlInt16(p *int16, v int) int16 { *p <<= v; return *p }
+
+func AssignShlInt32(p *int32, v int) int32 { *p <<= v; return *p }
+
+func AssignShlInt64(p *int64, v int) int64 { *p <<= v; return *p }
+
+func AssignShlUint8(p *uint8, v int) uint8 { *p <<= v; return *p }
+
+func AssignShlUint16(p *uint16, v int) uint16 { *p <<= v; return *p }
+
+func AssignShlUint32(p *uint32, v int) uint32 { *p <<= v; return *p }
+
+func AssignShlUint64(p *uint64, v int) uint64 { *p <<= v; return *p }
+
+func AssignShlUintptr(p *uintptr, v int) uintptr { *p <<= v; return *p }
+
+func AssignShrInt8(p *int8, v int) int8 { *p >>= v; return *p }
+
+func AssignShrInt16(p *int16, v int) int16 { *p >>= v; return *p }
+
+func AssignShrInt32(p *int32, v int) int32 { *p >>= v; return *p }
+
+func AssignShrInt64(p *int64, v int) int64 { *p >>= v; return *p }
+
+func AssignShrUint8(p *uint8, v int) uint8 { *p >>= v; return *p }
+
+func AssignShrUint16(p *uint16, v int) uint16 { *p >>= v; return *p }
+
+func AssignShrUint32(p *uint32, v int) uint32 { *p >>= v; return *p }
+
+func AssignShrUint64(p *uint64, v int) uint64 { *p >>= v; return *p }
+
+func AssignShrUintptr(p *uintptr, v int) uintptr { *p >>= v; return *p }
+
+func PreIncInt8(p *int8, d int8) int8 { *p += d; return *p }
+func PreIncInt16(p *int16, d int16) int16 { *p += d; return *p }
+func PreIncInt32(p *int32, d int32) int32 { *p += d; return *p }
+func PreIncInt64(p *int64, d int64) int64 { *p += d; return *p }
+func PreIncUint8(p *uint8, d uint8) uint8 { *p += d; return *p }
+func PreIncUint16(p *uint16, d uint16) uint16 { *p += d; return *p }
+func PreIncUint32(p *uint32, d uint32) uint32 { *p += d; return *p }
+func PreIncUint64(p *uint64, d uint64) uint64 { *p += d; return *p }
+func PreIncFloat32(p *float32, d float32) float32 { *p += d; return *p }
+func PreIncFloat64(p *float64, d float64) float64 { *p += d; return *p }
+func PreIncUintptr(p *uintptr, d uintptr) uintptr { *p += d; return *p }
+
+func PreIncAtomicInt32(p *int32, d int32) int32 { return atomic.AddInt32(p, d) }
+func PreIncAtomicInt64(p *int64, d int64) int64 { return atomic.AddInt64(p, d) }
+func PreIncAtomicUint32(p *uint32, d uint32) uint32 { return atomic.AddUint32(p, d) }
+func PreIncAtomicUint64(p *uint64, d uint64) uint64 { return atomic.AddUint64(p, d) }
+func PreIncAtomicUintptr(p *uintptr, d uintptr) uintptr { return atomic.AddUintptr(p, d) }
+
+func PreDecInt8(p *int8, d int8) int8 { *p -= d; return *p }
+func PreDecInt16(p *int16, d int16) int16 { *p -= d; return *p }
+func PreDecInt32(p *int32, d int32) int32 { *p -= d; return *p }
+func PreDecInt64(p *int64, d int64) int64 { *p -= d; return *p }
+func PreDecUint8(p *uint8, d uint8) uint8 { *p -= d; return *p }
+func PreDecUint16(p *uint16, d uint16) uint16 { *p -= d; return *p }
+func PreDecUint32(p *uint32, d uint32) uint32 { *p -= d; return *p }
+func PreDecUint64(p *uint64, d uint64) uint64 { *p -= d; return *p }
+func PreDecFloat32(p *float32, d float32) float32 { *p -= d; return *p }
+func PreDecFloat64(p *float64, d float64) float64 { *p -= d; return *p }
+func PreDecUintptr(p *uintptr, d uintptr) uintptr { *p -= d; return *p }
+
+func PreDecAtomicInt32(p *int32, d int32) int32 { return atomic.AddInt32(p, -d) }
+func PreDecAtomicInt64(p *int64, d int64) int64 { return atomic.AddInt64(p, -d) }
+func PreDecAtomicUint32(p *uint32, d uint32) uint32 { return atomic.AddUint32(p, -d) }
+func PreDecAtomicUint64(p *uint64, d uint64) uint64 { return atomic.AddUint64(p, -d) }
+func PreDecAtomicUintptr(p *uintptr, d uintptr) uintptr { return atomic.AddUintptr(p, -d) }
+
+func PostIncInt8(p *int8, d int8) int8 { r := *p; *p += d; return r }
+func PostIncInt16(p *int16, d int16) int16 { r := *p; *p += d; return r }
+func PostIncInt32(p *int32, d int32) int32 { r := *p; *p += d; return r }
+func PostIncInt64(p *int64, d int64) int64 { r := *p; *p += d; return r }
+func PostIncUint8(p *uint8, d uint8) uint8 { r := *p; *p += d; return r }
+func PostIncUint16(p *uint16, d uint16) uint16 { r := *p; *p += d; return r }
+func PostIncUint32(p *uint32, d uint32) uint32 { r := *p; *p += d; return r }
+func PostIncUint64(p *uint64, d uint64) uint64 { r := *p; *p += d; return r }
+func PostIncFloat32(p *float32, d float32) float32 { r := *p; *p += d; return r }
+func PostIncFloat64(p *float64, d float64) float64 { r := *p; *p += d; return r }
+func PostIncUintptr(p *uintptr, d uintptr) uintptr { r := *p; *p += d; return r }
+
+func PostIncAtomicInt32(p *int32, d int32) int32 { return atomic.AddInt32(p, d) - d }
+func PostIncAtomicInt64(p *int64, d int64) int64 { return atomic.AddInt64(p, d) - d }
+func PostIncAtomicUint32(p *uint32, d uint32) uint32 { return atomic.AddUint32(p, d) - d }
+func PostIncAtomicUint64(p *uint64, d uint64) uint64 { return atomic.AddUint64(p, d) - d }
+func PostIncAtomicUintptr(p *uintptr, d uintptr) uintptr { return atomic.AddUintptr(p, d) - d }
+
+func PostDecInt8(p *int8, d int8) int8 { r := *p; *p -= d; return r }
+func PostDecInt16(p *int16, d int16) int16 { r := *p; *p -= d; return r }
+func PostDecInt32(p *int32, d int32) int32 { r := *p; *p -= d; return r }
+func PostDecInt64(p *int64, d int64) int64 { r := *p; *p -= d; return r }
+func PostDecUint8(p *uint8, d uint8) uint8 { r := *p; *p -= d; return r }
+func PostDecUint16(p *uint16, d uint16) uint16 { r := *p; *p -= d; return r }
+func PostDecUint32(p *uint32, d uint32) uint32 { r := *p; *p -= d; return r }
+func PostDecUint64(p *uint64, d uint64) uint64 { r := *p; *p -= d; return r }
+func PostDecFloat32(p *float32, d float32) float32 { r := *p; *p -= d; return r }
+func PostDecFloat64(p *float64, d float64) float64 { r := *p; *p -= d; return r }
+func PostDecUintptr(p *uintptr, d uintptr) uintptr { r := *p; *p -= d; return r }
+
+func PostDecAtomicInt32(p *int32, d int32) int32 { return atomic.AddInt32(p, -d) + d }
+func PostDecAtomicInt64(p *int64, d int64) int64 { return atomic.AddInt64(p, -d) + d }
+func PostDecAtomicUint32(p *uint32, d uint32) uint32 { return atomic.AddUint32(p, -d) + d }
+func PostDecAtomicUint64(p *uint64, d uint64) uint64 { return atomic.AddUint64(p, -d) + d }
+func PostDecAtomicUintptr(p *uintptr, d uintptr) uintptr { return atomic.AddUintptr(p, -d) + d }
+
+func Int8FromInt8(n int8) int8 { return int8(n) }
+func Int8FromInt16(n int16) int8 { return int8(n) }
+func Int8FromInt32(n int32) int8 { return int8(n) }
+func Int8FromInt64(n int64) int8 { return int8(n) }
+func Int8FromUint8(n uint8) int8 { return int8(n) }
+func Int8FromUint16(n uint16) int8 { return int8(n) }
+func Int8FromUint32(n uint32) int8 { return int8(n) }
+func Int8FromUint64(n uint64) int8 { return int8(n) }
+func Int8FromFloat32(n float32) int8 { return int8(n) }
+func Int8FromFloat64(n float64) int8 { return int8(n) }
+func Int8FromUintptr(n uintptr) int8 { return int8(n) }
+func Int16FromInt8(n int8) int16 { return int16(n) }
+func Int16FromInt16(n int16) int16 { return int16(n) }
+func Int16FromInt32(n int32) int16 { return int16(n) }
+func Int16FromInt64(n int64) int16 { return int16(n) }
+func Int16FromUint8(n uint8) int16 { return int16(n) }
+func Int16FromUint16(n uint16) int16 { return int16(n) }
+func Int16FromUint32(n uint32) int16 { return int16(n) }
+func Int16FromUint64(n uint64) int16 { return int16(n) }
+func Int16FromFloat32(n float32) int16 { return int16(n) }
+func Int16FromFloat64(n float64) int16 { return int16(n) }
+func Int16FromUintptr(n uintptr) int16 { return int16(n) }
+func Int32FromInt8(n int8) int32 { return int32(n) }
+func Int32FromInt16(n int16) int32 { return int32(n) }
+func Int32FromInt32(n int32) int32 { return int32(n) }
+func Int32FromInt64(n int64) int32 { return int32(n) }
+func Int32FromUint8(n uint8) int32 { return int32(n) }
+func Int32FromUint16(n uint16) int32 { return int32(n) }
+func Int32FromUint32(n uint32) int32 { return int32(n) }
+func Int32FromUint64(n uint64) int32 { return int32(n) }
+func Int32FromFloat32(n float32) int32 { return int32(n) }
+func Int32FromFloat64(n float64) int32 { return int32(n) }
+func Int32FromUintptr(n uintptr) int32 { return int32(n) }
+func Int64FromInt8(n int8) int64 { return int64(n) }
+func Int64FromInt16(n int16) int64 { return int64(n) }
+func Int64FromInt32(n int32) int64 { return int64(n) }
+func Int64FromInt64(n int64) int64 { return int64(n) }
+func Int64FromUint8(n uint8) int64 { return int64(n) }
+func Int64FromUint16(n uint16) int64 { return int64(n) }
+func Int64FromUint32(n uint32) int64 { return int64(n) }
+func Int64FromUint64(n uint64) int64 { return int64(n) }
+func Int64FromFloat32(n float32) int64 { return int64(n) }
+func Int64FromFloat64(n float64) int64 { return int64(n) }
+func Int64FromUintptr(n uintptr) int64 { return int64(n) }
+func Uint8FromInt8(n int8) uint8 { return uint8(n) }
+func Uint8FromInt16(n int16) uint8 { return uint8(n) }
+func Uint8FromInt32(n int32) uint8 { return uint8(n) }
+func Uint8FromInt64(n int64) uint8 { return uint8(n) }
+func Uint8FromUint8(n uint8) uint8 { return uint8(n) }
+func Uint8FromUint16(n uint16) uint8 { return uint8(n) }
+func Uint8FromUint32(n uint32) uint8 { return uint8(n) }
+func Uint8FromUint64(n uint64) uint8 { return uint8(n) }
+func Uint8FromFloat32(n float32) uint8 { return uint8(n) }
+func Uint8FromFloat64(n float64) uint8 { return uint8(n) }
+func Uint8FromUintptr(n uintptr) uint8 { return uint8(n) }
+func Uint16FromInt8(n int8) uint16 { return uint16(n) }
+func Uint16FromInt16(n int16) uint16 { return uint16(n) }
+func Uint16FromInt32(n int32) uint16 { return uint16(n) }
+func Uint16FromInt64(n int64) uint16 { return uint16(n) }
+func Uint16FromUint8(n uint8) uint16 { return uint16(n) }
+func Uint16FromUint16(n uint16) uint16 { return uint16(n) }
+func Uint16FromUint32(n uint32) uint16 { return uint16(n) }
+func Uint16FromUint64(n uint64) uint16 { return uint16(n) }
+func Uint16FromFloat32(n float32) uint16 { return uint16(n) }
+func Uint16FromFloat64(n float64) uint16 { return uint16(n) }
+func Uint16FromUintptr(n uintptr) uint16 { return uint16(n) }
+func Uint32FromInt8(n int8) uint32 { return uint32(n) }
+func Uint32FromInt16(n int16) uint32 { return uint32(n) }
+func Uint32FromInt32(n int32) uint32 { return uint32(n) }
+func Uint32FromInt64(n int64) uint32 { return uint32(n) }
+func Uint32FromUint8(n uint8) uint32 { return uint32(n) }
+func Uint32FromUint16(n uint16) uint32 { return uint32(n) }
+func Uint32FromUint32(n uint32) uint32 { return uint32(n) }
+func Uint32FromUint64(n uint64) uint32 { return uint32(n) }
+func Uint32FromFloat32(n float32) uint32 { return uint32(n) }
+func Uint32FromFloat64(n float64) uint32 { return uint32(n) }
+func Uint32FromUintptr(n uintptr) uint32 { return uint32(n) }
+func Uint64FromInt8(n int8) uint64 { return uint64(n) }
+func Uint64FromInt16(n int16) uint64 { return uint64(n) }
+func Uint64FromInt32(n int32) uint64 { return uint64(n) }
+func Uint64FromInt64(n int64) uint64 { return uint64(n) }
+func Uint64FromUint8(n uint8) uint64 { return uint64(n) }
+func Uint64FromUint16(n uint16) uint64 { return uint64(n) }
+func Uint64FromUint32(n uint32) uint64 { return uint64(n) }
+func Uint64FromUint64(n uint64) uint64 { return uint64(n) }
+func Uint64FromFloat32(n float32) uint64 { return uint64(n) }
+func Uint64FromFloat64(n float64) uint64 { return uint64(n) }
+func Uint64FromUintptr(n uintptr) uint64 { return uint64(n) }
+func Float32FromInt8(n int8) float32 { return float32(n) }
+func Float32FromInt16(n int16) float32 { return float32(n) }
+func Float32FromInt32(n int32) float32 { return float32(n) }
+func Float32FromInt64(n int64) float32 { return float32(n) }
+func Float32FromUint8(n uint8) float32 { return float32(n) }
+func Float32FromUint16(n uint16) float32 { return float32(n) }
+func Float32FromUint32(n uint32) float32 { return float32(n) }
+func Float32FromUint64(n uint64) float32 { return float32(n) }
+func Float32FromFloat32(n float32) float32 { return float32(n) }
+func Float32FromFloat64(n float64) float32 { return float32(n) }
+func Float32FromUintptr(n uintptr) float32 { return float32(n) }
+func Float64FromInt8(n int8) float64 { return float64(n) }
+func Float64FromInt16(n int16) float64 { return float64(n) }
+func Float64FromInt32(n int32) float64 { return float64(n) }
+func Float64FromInt64(n int64) float64 { return float64(n) }
+func Float64FromUint8(n uint8) float64 { return float64(n) }
+func Float64FromUint16(n uint16) float64 { return float64(n) }
+func Float64FromUint32(n uint32) float64 { return float64(n) }
+func Float64FromUint64(n uint64) float64 { return float64(n) }
+func Float64FromFloat32(n float32) float64 { return float64(n) }
+func Float64FromFloat64(n float64) float64 { return float64(n) }
+func Float64FromUintptr(n uintptr) float64 { return float64(n) }
+func UintptrFromInt8(n int8) uintptr { return uintptr(n) }
+func UintptrFromInt16(n int16) uintptr { return uintptr(n) }
+func UintptrFromInt32(n int32) uintptr { return uintptr(n) }
+func UintptrFromInt64(n int64) uintptr { return uintptr(n) }
+func UintptrFromUint8(n uint8) uintptr { return uintptr(n) }
+func UintptrFromUint16(n uint16) uintptr { return uintptr(n) }
+func UintptrFromUint32(n uint32) uintptr { return uintptr(n) }
+func UintptrFromUint64(n uint64) uintptr { return uintptr(n) }
+func UintptrFromFloat32(n float32) uintptr { return uintptr(n) }
+func UintptrFromFloat64(n float64) uintptr { return uintptr(n) }
+func UintptrFromUintptr(n uintptr) uintptr { return uintptr(n) }
+
+func Int8(n int8) int8 { return n }
+func Int16(n int16) int16 { return n }
+func Int32(n int32) int32 { return n }
+func Int64(n int64) int64 { return n }
+func Uint8(n uint8) uint8 { return n }
+func Uint16(n uint16) uint16 { return n }
+func Uint32(n uint32) uint32 { return n }
+func Uint64(n uint64) uint64 { return n }
+func Float32(n float32) float32 { return n }
+func Float64(n float64) float64 { return n }
+func Uintptr(n uintptr) uintptr { return n }
+
+func NegInt8(n int8) int8 { return -n }
+func NegInt16(n int16) int16 { return -n }
+func NegInt32(n int32) int32 { return -n }
+func NegInt64(n int64) int64 { return -n }
+func NegUint8(n uint8) uint8 { return -n }
+func NegUint16(n uint16) uint16 { return -n }
+func NegUint32(n uint32) uint32 { return -n }
+func NegUint64(n uint64) uint64 { return -n }
+func NegUintptr(n uintptr) uintptr { return -n }
+
+func CplInt8(n int8) int8 { return ^n }
+func CplInt16(n int16) int16 { return ^n }
+func CplInt32(n int32) int32 { return ^n }
+func CplInt64(n int64) int64 { return ^n }
+func CplUint8(n uint8) uint8 { return ^n }
+func CplUint16(n uint16) uint16 { return ^n }
+func CplUint32(n uint32) uint32 { return ^n }
+func CplUint64(n uint64) uint64 { return ^n }
+func CplUintptr(n uintptr) uintptr { return ^n }
+
+func BoolInt8(b bool) int8 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolInt16(b bool) int16 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolInt32(b bool) int32 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolInt64(b bool) int64 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolUint8(b bool) uint8 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolUint16(b bool) uint16 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolUint32(b bool) uint32 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func BoolUint64(b bool) uint64 {
+ if b {
+ return 1
+ }
+ return 0
+}
+
+func SetBitFieldPtr8Int8(p uintptr, v int8, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Int16(p uintptr, v int16, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Int32(p uintptr, v int32, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Int64(p uintptr, v int64, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Uint8(p uintptr, v uint8, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Uint16(p uintptr, v uint16, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Uint32(p uintptr, v uint32, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr8Uint64(p uintptr, v uint64, off int, mask uint8) {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+}
+
+func SetBitFieldPtr16Int8(p uintptr, v int8, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Int16(p uintptr, v int16, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Int32(p uintptr, v int32, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Int64(p uintptr, v int64, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Uint8(p uintptr, v uint8, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Uint16(p uintptr, v uint16, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Uint32(p uintptr, v uint32, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr16Uint64(p uintptr, v uint64, off int, mask uint16) {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+}
+
+func SetBitFieldPtr32Int8(p uintptr, v int8, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Int16(p uintptr, v int16, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Int32(p uintptr, v int32, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Int64(p uintptr, v int64, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Uint8(p uintptr, v uint8, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Uint16(p uintptr, v uint16, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Uint32(p uintptr, v uint32, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr32Uint64(p uintptr, v uint64, off int, mask uint32) {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+}
+
+func SetBitFieldPtr64Int8(p uintptr, v int8, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Int16(p uintptr, v int16, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Int32(p uintptr, v int32, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Int64(p uintptr, v int64, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Uint8(p uintptr, v uint8, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Uint16(p uintptr, v uint16, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Uint32(p uintptr, v uint32, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func SetBitFieldPtr64Uint64(p uintptr, v uint64, off int, mask uint64) {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+}
+
+func AssignBitFieldPtr8Int8(p uintptr, v int8, w, off int, mask uint8) int8 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ s := 8 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr8Int16(p uintptr, v int16, w, off int, mask uint8) int16 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ s := 16 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr8Int32(p uintptr, v int32, w, off int, mask uint8) int32 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ s := 32 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr8Int64(p uintptr, v int64, w, off int, mask uint8) int64 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ s := 64 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr16Int8(p uintptr, v int8, w, off int, mask uint16) int8 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ s := 8 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr16Int16(p uintptr, v int16, w, off int, mask uint16) int16 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ s := 16 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr16Int32(p uintptr, v int32, w, off int, mask uint16) int32 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ s := 32 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr16Int64(p uintptr, v int64, w, off int, mask uint16) int64 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ s := 64 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr32Int8(p uintptr, v int8, w, off int, mask uint32) int8 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ s := 8 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr32Int16(p uintptr, v int16, w, off int, mask uint32) int16 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ s := 16 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr32Int32(p uintptr, v int32, w, off int, mask uint32) int32 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ s := 32 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr32Int64(p uintptr, v int64, w, off int, mask uint32) int64 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ s := 64 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr64Int8(p uintptr, v int8, w, off int, mask uint64) int8 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ s := 8 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr64Int16(p uintptr, v int16, w, off int, mask uint64) int16 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ s := 16 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr64Int32(p uintptr, v int32, w, off int, mask uint64) int32 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ s := 32 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr64Int64(p uintptr, v int64, w, off int, mask uint64) int64 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ s := 64 - w
+ return v << s >> s
+}
+
+func AssignBitFieldPtr8Uint8(p uintptr, v uint8, w, off int, mask uint8) uint8 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ return v & uint8(mask>>off)
+}
+
+func AssignBitFieldPtr8Uint16(p uintptr, v uint16, w, off int, mask uint8) uint16 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ return v & uint16(mask>>off)
+}
+
+func AssignBitFieldPtr8Uint32(p uintptr, v uint32, w, off int, mask uint8) uint32 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ return v & uint32(mask>>off)
+}
+
+func AssignBitFieldPtr8Uint64(p uintptr, v uint64, w, off int, mask uint8) uint64 {
+ *(*uint8)(unsafe.Pointer(p)) = *(*uint8)(unsafe.Pointer(p))&^uint8(mask) | uint8(v)<<off&mask
+ return v & uint64(mask>>off)
+}
+
+func AssignBitFieldPtr16Uint8(p uintptr, v uint8, w, off int, mask uint16) uint8 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ return v & uint8(mask>>off)
+}
+
+func AssignBitFieldPtr16Uint16(p uintptr, v uint16, w, off int, mask uint16) uint16 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ return v & uint16(mask>>off)
+}
+
+func AssignBitFieldPtr16Uint32(p uintptr, v uint32, w, off int, mask uint16) uint32 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ return v & uint32(mask>>off)
+}
+
+func AssignBitFieldPtr16Uint64(p uintptr, v uint64, w, off int, mask uint16) uint64 {
+ *(*uint16)(unsafe.Pointer(p)) = *(*uint16)(unsafe.Pointer(p))&^uint16(mask) | uint16(v)<<off&mask
+ return v & uint64(mask>>off)
+}
+
+func AssignBitFieldPtr32Uint8(p uintptr, v uint8, w, off int, mask uint32) uint8 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ return v & uint8(mask>>off)
+}
+
+func AssignBitFieldPtr32Uint16(p uintptr, v uint16, w, off int, mask uint32) uint16 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ return v & uint16(mask>>off)
+}
+
+func AssignBitFieldPtr32Uint32(p uintptr, v uint32, w, off int, mask uint32) uint32 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ return v & uint32(mask>>off)
+}
+
+func AssignBitFieldPtr32Uint64(p uintptr, v uint64, w, off int, mask uint32) uint64 {
+ *(*uint32)(unsafe.Pointer(p)) = *(*uint32)(unsafe.Pointer(p))&^uint32(mask) | uint32(v)<<off&mask
+ return v & uint64(mask>>off)
+}
+
+func AssignBitFieldPtr64Uint8(p uintptr, v uint8, w, off int, mask uint64) uint8 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ return v & uint8(mask>>off)
+}
+
+func AssignBitFieldPtr64Uint16(p uintptr, v uint16, w, off int, mask uint64) uint16 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ return v & uint16(mask>>off)
+}
+
+func AssignBitFieldPtr64Uint32(p uintptr, v uint32, w, off int, mask uint64) uint32 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ return v & uint32(mask>>off)
+}
+
+func AssignBitFieldPtr64Uint64(p uintptr, v uint64, w, off int, mask uint64) uint64 {
+ *(*uint64)(unsafe.Pointer(p)) = *(*uint64)(unsafe.Pointer(p))&^uint64(mask) | uint64(v)<<off&mask
+ return v & uint64(mask>>off)
+}
+
+func PostDecBitFieldPtr8Int8(p uintptr, d int8, w, off int, mask uint8) (r int8) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Int16(p uintptr, d int16, w, off int, mask uint8) (r int16) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Int32(p uintptr, d int32, w, off int, mask uint8) (r int32) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Int64(p uintptr, d int64, w, off int, mask uint8) (r int64) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Int8(p uintptr, d int8, w, off int, mask uint16) (r int8) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Int16(p uintptr, d int16, w, off int, mask uint16) (r int16) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Int32(p uintptr, d int32, w, off int, mask uint16) (r int32) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Int64(p uintptr, d int64, w, off int, mask uint16) (r int64) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Int8(p uintptr, d int8, w, off int, mask uint32) (r int8) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Int16(p uintptr, d int16, w, off int, mask uint32) (r int16) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Int32(p uintptr, d int32, w, off int, mask uint32) (r int32) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Int64(p uintptr, d int64, w, off int, mask uint32) (r int64) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Int8(p uintptr, d int8, w, off int, mask uint64) (r int8) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Int16(p uintptr, d int16, w, off int, mask uint64) (r int16) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Int32(p uintptr, d int32, w, off int, mask uint64) (r int32) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Int64(p uintptr, d int64, w, off int, mask uint64) (r int64) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Uint8(p uintptr, d uint8, w, off int, mask uint8) (r uint8) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Uint16(p uintptr, d uint16, w, off int, mask uint8) (r uint16) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Uint32(p uintptr, d uint32, w, off int, mask uint8) (r uint32) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr8Uint64(p uintptr, d uint64, w, off int, mask uint8) (r uint64) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Uint8(p uintptr, d uint8, w, off int, mask uint16) (r uint8) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Uint16(p uintptr, d uint16, w, off int, mask uint16) (r uint16) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Uint32(p uintptr, d uint32, w, off int, mask uint16) (r uint32) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr16Uint64(p uintptr, d uint64, w, off int, mask uint16) (r uint64) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Uint8(p uintptr, d uint8, w, off int, mask uint32) (r uint8) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Uint16(p uintptr, d uint16, w, off int, mask uint32) (r uint16) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Uint32(p uintptr, d uint32, w, off int, mask uint32) (r uint32) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr32Uint64(p uintptr, d uint64, w, off int, mask uint32) (r uint64) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Uint8(p uintptr, d uint8, w, off int, mask uint64) (r uint8) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Uint16(p uintptr, d uint16, w, off int, mask uint64) (r uint16) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Uint32(p uintptr, d uint32, w, off int, mask uint64) (r uint32) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostDecBitFieldPtr64Uint64(p uintptr, d uint64, w, off int, mask uint64) (r uint64) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r-d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Int8(p uintptr, d int8, w, off int, mask uint8) (r int8) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Int16(p uintptr, d int16, w, off int, mask uint8) (r int16) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Int32(p uintptr, d int32, w, off int, mask uint8) (r int32) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Int64(p uintptr, d int64, w, off int, mask uint8) (r int64) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Int8(p uintptr, d int8, w, off int, mask uint16) (r int8) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Int16(p uintptr, d int16, w, off int, mask uint16) (r int16) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Int32(p uintptr, d int32, w, off int, mask uint16) (r int32) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Int64(p uintptr, d int64, w, off int, mask uint16) (r int64) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Int8(p uintptr, d int8, w, off int, mask uint32) (r int8) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Int16(p uintptr, d int16, w, off int, mask uint32) (r int16) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Int32(p uintptr, d int32, w, off int, mask uint32) (r int32) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Int64(p uintptr, d int64, w, off int, mask uint32) (r int64) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Int8(p uintptr, d int8, w, off int, mask uint64) (r int8) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 8 - w
+ r = int8(x0) & int8(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Int16(p uintptr, d int16, w, off int, mask uint64) (r int16) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 16 - w
+ r = int16(x0) & int16(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Int32(p uintptr, d int32, w, off int, mask uint64) (r int32) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 32 - w
+ r = int32(x0) & int32(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Int64(p uintptr, d int64, w, off int, mask uint64) (r int64) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ s := 64 - w
+ r = int64(x0) & int64(mask) << s >> (s + off)
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Uint8(p uintptr, d uint8, w, off int, mask uint8) (r uint8) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Uint16(p uintptr, d uint16, w, off int, mask uint8) (r uint16) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Uint32(p uintptr, d uint32, w, off int, mask uint8) (r uint32) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr8Uint64(p uintptr, d uint64, w, off int, mask uint8) (r uint64) {
+ x0 := *(*uint8)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint8)(unsafe.Pointer(p)) = x0&^uint8(mask) | uint8(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Uint8(p uintptr, d uint8, w, off int, mask uint16) (r uint8) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Uint16(p uintptr, d uint16, w, off int, mask uint16) (r uint16) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Uint32(p uintptr, d uint32, w, off int, mask uint16) (r uint32) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr16Uint64(p uintptr, d uint64, w, off int, mask uint16) (r uint64) {
+ x0 := *(*uint16)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint16)(unsafe.Pointer(p)) = x0&^uint16(mask) | uint16(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Uint8(p uintptr, d uint8, w, off int, mask uint32) (r uint8) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Uint16(p uintptr, d uint16, w, off int, mask uint32) (r uint16) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Uint32(p uintptr, d uint32, w, off int, mask uint32) (r uint32) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr32Uint64(p uintptr, d uint64, w, off int, mask uint32) (r uint64) {
+ x0 := *(*uint32)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint32)(unsafe.Pointer(p)) = x0&^uint32(mask) | uint32(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Uint8(p uintptr, d uint8, w, off int, mask uint64) (r uint8) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint8(x0) & uint8(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Uint16(p uintptr, d uint16, w, off int, mask uint64) (r uint16) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint16(x0) & uint16(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Uint32(p uintptr, d uint32, w, off int, mask uint64) (r uint32) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint32(x0) & uint32(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
+
+func PostIncBitFieldPtr64Uint64(p uintptr, d uint64, w, off int, mask uint64) (r uint64) {
+ x0 := *(*uint64)(unsafe.Pointer(p))
+ r = uint64(x0) & uint64(mask) >> off
+ *(*uint64)(unsafe.Pointer(p)) = x0&^uint64(mask) | uint64(r+d)<<off&mask
+ return r
+}
diff --git a/vendor/modernc.org/libc/dmesg.go b/vendor/modernc.org/libc/dmesg.go
new file mode 100644
index 00000000..4ddc3eca
--- /dev/null
+++ b/vendor/modernc.org/libc/dmesg.go
@@ -0,0 +1,45 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build libc.dmesg
+// +build libc.dmesg
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+ "strings"
+ "time"
+)
+
+const dmesgs = true
+
+var (
+ pid = fmt.Sprintf("[%v %v] ", os.Getpid(), filepath.Base(os.Args[0]))
+ logf *os.File
+)
+
+func init() {
+ var err error
+ if logf, err = os.OpenFile("/tmp/libc.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY|os.O_SYNC, 0644); err != nil {
+ panic(err.Error())
+ }
+
+ dmesg("%v", time.Now())
+}
+
+func dmesg(s string, args ...interface{}) {
+ if s == "" {
+ s = strings.Repeat("%v ", len(args))
+ }
+ s = fmt.Sprintf(pid+s, args...)
+ switch {
+ case len(s) != 0 && s[len(s)-1] == '\n':
+ fmt.Fprint(logf, s)
+ default:
+ fmt.Fprintln(logf, s)
+ }
+}
diff --git a/vendor/modernc.org/libc/errno/capi_darwin_amd64.go b/vendor/modernc.org/libc/errno/capi_darwin_amd64.go
new file mode 100644
index 00000000..fbe477aa
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo errno/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 errno/errno_darwin_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/errno/capi_darwin_arm64.go b/vendor/modernc.org/libc/errno/capi_darwin_arm64.go
new file mode 100644
index 00000000..21541fdd
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_darwin_arm64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_freebsd_386.go b/vendor/modernc.org/libc/errno/capi_freebsd_386.go
new file mode 100644
index 00000000..7a8a6c30
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_freebsd_386.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_freebsd_amd64.go b/vendor/modernc.org/libc/errno/capi_freebsd_amd64.go
new file mode 100644
index 00000000..adbe5b15
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_freebsd_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_linux_386.go b/vendor/modernc.org/libc/errno/capi_linux_386.go
new file mode 100644
index 00000000..e33ffcbc
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_386.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_linux_amd64.go b/vendor/modernc.org/libc/errno/capi_linux_amd64.go
new file mode 100644
index 00000000..60faf382
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_linux_arm.go b/vendor/modernc.org/libc/errno/capi_linux_arm.go
new file mode 100644
index 00000000..1be1b8d3
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_arm.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_linux_arm64.go b/vendor/modernc.org/libc/errno/capi_linux_arm64.go
new file mode 100644
index 00000000..1759c771
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_arm64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_linux_s390x.go b/vendor/modernc.org/libc/errno/capi_linux_s390x.go
new file mode 100644
index 00000000..dc030616
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_s390x.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_netbsd_amd64.go b/vendor/modernc.org/libc/errno/capi_netbsd_amd64.go
new file mode 100644
index 00000000..ccaa5033
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_netbsd_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_openbsd_amd64.go b/vendor/modernc.org/libc/errno/capi_openbsd_amd64.go
new file mode 100644
index 00000000..dc8102a3
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_openbsd_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_windows_386.go b/vendor/modernc.org/libc/errno/capi_windows_386.go
new file mode 100644
index 00000000..076978ea
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno/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 errno/errno_windows_386.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/capi_windows_amd64.go b/vendor/modernc.org/libc/errno/capi_windows_amd64.go
new file mode 100644
index 00000000..88b487f4
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo errno\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 errno\errno_windows_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/errno/errno_darwin_amd64.go b/vendor/modernc.org/libc/errno/errno_darwin_amd64.go
new file mode 100644
index 00000000..a0c77820
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_darwin_amd64.go
@@ -0,0 +1,647 @@
+// Code generated by 'ccgo errno/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 errno/errno_darwin_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADARCH = 86
+ EBADEXEC = 85
+ EBADF = 9
+ EBADMACHO = 88
+ EBADMSG = 94
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 89
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDEVERR = 83
+ EDOM = 33
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 90
+ EILSEQ = 92
+ EINPROGRESS = 36
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 106
+ ELOOP = 62
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ EMULTIHOP = 95
+ ENAMETOOLONG = 63
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 93
+ ENOBUFS = 55
+ ENODATA = 96
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOLINK = 97
+ ENOMEM = 12
+ ENOMSG = 91
+ ENOPOLICY = 103
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSR = 98
+ ENOSTR = 99
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTRECOVERABLE = 104
+ ENOTSOCK = 38
+ ENOTSUP = 45
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 102
+ EOVERFLOW = 84
+ EOWNERDEAD = 105
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 100
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ EPWROFF = 82
+ EQFULL = 106
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHLIBVERS = 87
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIME = 101
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXDEV = 18
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_ERRNO_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_ERRNO_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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2012 Apple, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)errno.h 8.5 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// Error codes
+
+// 11 was EAGAIN
+
+// math software
+
+// non-blocking and interrupt i/o
+
+// ipc/network software -- argument errors
+
+// ipc/network software -- operational errors
+
+// should be rearranged
+
+// quotas & mush
+
+// Network File System
+
+// Intelligent device errors
+
+// Program loading errors
+
+// This value is only discrete when compiling __DARWIN_UNIX03, or KERNEL
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_darwin_arm64.go b/vendor/modernc.org/libc/errno/errno_darwin_arm64.go
new file mode 100644
index 00000000..5a15581d
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_darwin_arm64.go
@@ -0,0 +1,657 @@
+// Code generated by 'ccgo errno/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 errno/errno_darwin_arm64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADARCH = 86
+ EBADEXEC = 85
+ EBADF = 9
+ EBADMACHO = 88
+ EBADMSG = 94
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 89
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDEVERR = 83
+ EDOM = 33
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 90
+ EILSEQ = 92
+ EINPROGRESS = 36
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 106
+ ELOOP = 62
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ EMULTIHOP = 95
+ ENAMETOOLONG = 63
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 93
+ ENOBUFS = 55
+ ENODATA = 96
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOLINK = 97
+ ENOMEM = 12
+ ENOMSG = 91
+ ENOPOLICY = 103
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSR = 98
+ ENOSTR = 99
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTRECOVERABLE = 104
+ ENOTSOCK = 38
+ ENOTSUP = 45
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 102
+ EOVERFLOW = 84
+ EOWNERDEAD = 105
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 100
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ EPWROFF = 82
+ EQFULL = 106
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHLIBVERS = 87
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIME = 101
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXDEV = 18
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_ERRNO_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_ERRNO_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 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2012 Apple, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)errno.h 8.5 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// Error codes
+
+// 11 was EAGAIN
+
+// math software
+
+// non-blocking and interrupt i/o
+
+// ipc/network software -- argument errors
+
+// ipc/network software -- operational errors
+
+// should be rearranged
+
+// quotas & mush
+
+// Network File System
+
+// Intelligent device errors
+
+// Program loading errors
+
+// This value is only discrete when compiling __DARWIN_UNIX03, or KERNEL
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_freebsd_386.go b/vendor/modernc.org/libc/errno/errno_freebsd_386.go
new file mode 100644
index 00000000..48e4a708
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_freebsd_386.go
@@ -0,0 +1,158 @@
+// Code generated by 'ccgo errno/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 errno/errno_freebsd_386.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADF = 9
+ EBADMSG = 89
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 85
+ ECAPMODE = 94
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDOM = 33
+ EDOOFUS = 88
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 82
+ EILSEQ = 86
+ EINPROGRESS = 36
+ EINTEGRITY = 97
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 97
+ ELOOP = 62
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ EMULTIHOP = 90
+ ENAMETOOLONG = 63
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 87
+ ENOBUFS = 55
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOLINK = 91
+ ENOMEM = 12
+ ENOMSG = 83
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCAPABLE = 93
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTRECOVERABLE = 95
+ ENOTSOCK = 38
+ ENOTSUP = 45
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 45
+ EOVERFLOW = 84
+ EOWNERDEAD = 96
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 92
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXDEV = 18
+ X_ERRNO_T_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ERRNO_H_ = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// 11 was EAGAIN
+
+// math software
+
+// non-blocking and interrupt i/o
+
+// ipc/network software -- argument errors
+
+// ipc/network software -- operational errors
+
+// should be rearranged
+
+// quotas & mush
+
+// Network File System
+
+// ISO/IEC 9899:2011 K.3.2.2
+type Errno_t = int32 /* errno.h:204:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_freebsd_amd64.go b/vendor/modernc.org/libc/errno/errno_freebsd_amd64.go
new file mode 100644
index 00000000..5e68eb3a
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_freebsd_amd64.go
@@ -0,0 +1,166 @@
+// Code generated by 'ccgo errno/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 errno/errno_freebsd_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADF = 9
+ EBADMSG = 89
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 85
+ ECAPMODE = 94
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDOM = 33
+ EDOOFUS = 88
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 82
+ EILSEQ = 86
+ EINPROGRESS = 36
+ EINTEGRITY = 97
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 97
+ ELOOP = 62
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ EMULTIHOP = 90
+ ENAMETOOLONG = 63
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 87
+ ENOBUFS = 55
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOLINK = 91
+ ENOMEM = 12
+ ENOMSG = 83
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCAPABLE = 93
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTRECOVERABLE = 95
+ ENOTSOCK = 38
+ ENOTSUP = 45
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 45
+ EOVERFLOW = 84
+ EOWNERDEAD = 96
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 92
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXDEV = 18
+ X_ERRNO_T_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ERRNO_H_ = 0
+ Unix = 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 */
+
+// 11 was EAGAIN
+
+// math software
+
+// non-blocking and interrupt i/o
+
+// ipc/network software -- argument errors
+
+// ipc/network software -- operational errors
+
+// should be rearranged
+
+// quotas & mush
+
+// Network File System
+
+// ISO/IEC 9899:2011 K.3.2.2
+type Errno_t = int32 /* errno.h:204:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_linux_386.go b/vendor/modernc.org/libc/errno/errno_linux_386.go
new file mode 100644
index 00000000..ae8185c8
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_linux_386.go
@@ -0,0 +1,179 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_386.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 98
+ EADDRNOTAVAIL = 99
+ EADV = 68
+ EAFNOSUPPORT = 97
+ EAGAIN = 11
+ EALREADY = 114
+ EBADE = 52
+ EBADF = 9
+ EBADFD = 77
+ EBADMSG = 74
+ EBADR = 53
+ EBADRQC = 56
+ EBADSLT = 57
+ EBFONT = 59
+ EBUSY = 16
+ ECANCELED = 125
+ ECHILD = 10
+ ECHRNG = 44
+ ECOMM = 70
+ ECONNABORTED = 103
+ ECONNREFUSED = 111
+ ECONNRESET = 104
+ EDEADLK = 35
+ EDEADLOCK = 35
+ EDESTADDRREQ = 89
+ EDOM = 33
+ EDOTDOT = 73
+ EDQUOT = 122
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTDOWN = 112
+ EHOSTUNREACH = 113
+ EHWPOISON = 133
+ EIDRM = 43
+ EILSEQ = 84
+ EINPROGRESS = 115
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 106
+ EISDIR = 21
+ EISNAM = 120
+ EKEYEXPIRED = 127
+ EKEYREJECTED = 129
+ EKEYREVOKED = 128
+ EL2HLT = 51
+ EL2NSYNC = 45
+ EL3HLT = 46
+ EL3RST = 47
+ ELIBACC = 79
+ ELIBBAD = 80
+ ELIBEXEC = 83
+ ELIBMAX = 82
+ ELIBSCN = 81
+ ELNRNG = 48
+ ELOOP = 40
+ EMEDIUMTYPE = 124
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 90
+ EMULTIHOP = 72
+ ENAMETOOLONG = 36
+ ENAVAIL = 119
+ ENETDOWN = 100
+ ENETRESET = 102
+ ENETUNREACH = 101
+ ENFILE = 23
+ ENOANO = 55
+ ENOBUFS = 105
+ ENOCSI = 50
+ ENODATA = 61
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOKEY = 126
+ ENOLCK = 37
+ ENOLINK = 67
+ ENOMEDIUM = 123
+ ENOMEM = 12
+ ENOMSG = 42
+ ENONET = 64
+ ENOPKG = 65
+ ENOPROTOOPT = 92
+ ENOSPC = 28
+ ENOSR = 63
+ ENOSTR = 60
+ ENOSYS = 38
+ ENOTBLK = 15
+ ENOTCONN = 107
+ ENOTDIR = 20
+ ENOTEMPTY = 39
+ ENOTNAM = 118
+ ENOTRECOVERABLE = 131
+ ENOTSOCK = 88
+ ENOTSUP = 95
+ ENOTTY = 25
+ ENOTUNIQ = 76
+ ENXIO = 6
+ EOPNOTSUPP = 95
+ EOVERFLOW = 75
+ EOWNERDEAD = 130
+ EPERM = 1
+ EPFNOSUPPORT = 96
+ EPIPE = 32
+ EPROTO = 71
+ EPROTONOSUPPORT = 93
+ EPROTOTYPE = 91
+ ERANGE = 34
+ EREMCHG = 78
+ EREMOTE = 66
+ EREMOTEIO = 121
+ ERESTART = 85
+ ERFKILL = 132
+ EROFS = 30
+ ESHUTDOWN = 108
+ ESOCKTNOSUPPORT = 94
+ ESPIPE = 29
+ ESRCH = 3
+ ESRMNT = 69
+ ESTALE = 116
+ ESTRPIPE = 86
+ ETIME = 62
+ ETIMEDOUT = 110
+ ETOOMANYREFS = 109
+ ETXTBSY = 26
+ EUCLEAN = 117
+ EUNATCH = 49
+ EUSERS = 87
+ EWOULDBLOCK = 11
+ EXDEV = 18
+ EXFULL = 54
+ X_ASM_GENERIC_ERRNO_BASE_H = 0
+ X_ASM_GENERIC_ERRNO_H = 0
+ X_ATFILE_SOURCE = 1
+ X_BITS_ERRNO_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_ERRNO_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_linux_amd64.go b/vendor/modernc.org/libc/errno/errno_linux_amd64.go
new file mode 100644
index 00000000..920fd4cc
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_linux_amd64.go
@@ -0,0 +1,187 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 98
+ EADDRNOTAVAIL = 99
+ EADV = 68
+ EAFNOSUPPORT = 97
+ EAGAIN = 11
+ EALREADY = 114
+ EBADE = 52
+ EBADF = 9
+ EBADFD = 77
+ EBADMSG = 74
+ EBADR = 53
+ EBADRQC = 56
+ EBADSLT = 57
+ EBFONT = 59
+ EBUSY = 16
+ ECANCELED = 125
+ ECHILD = 10
+ ECHRNG = 44
+ ECOMM = 70
+ ECONNABORTED = 103
+ ECONNREFUSED = 111
+ ECONNRESET = 104
+ EDEADLK = 35
+ EDEADLOCK = 35
+ EDESTADDRREQ = 89
+ EDOM = 33
+ EDOTDOT = 73
+ EDQUOT = 122
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTDOWN = 112
+ EHOSTUNREACH = 113
+ EHWPOISON = 133
+ EIDRM = 43
+ EILSEQ = 84
+ EINPROGRESS = 115
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 106
+ EISDIR = 21
+ EISNAM = 120
+ EKEYEXPIRED = 127
+ EKEYREJECTED = 129
+ EKEYREVOKED = 128
+ EL2HLT = 51
+ EL2NSYNC = 45
+ EL3HLT = 46
+ EL3RST = 47
+ ELIBACC = 79
+ ELIBBAD = 80
+ ELIBEXEC = 83
+ ELIBMAX = 82
+ ELIBSCN = 81
+ ELNRNG = 48
+ ELOOP = 40
+ EMEDIUMTYPE = 124
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 90
+ EMULTIHOP = 72
+ ENAMETOOLONG = 36
+ ENAVAIL = 119
+ ENETDOWN = 100
+ ENETRESET = 102
+ ENETUNREACH = 101
+ ENFILE = 23
+ ENOANO = 55
+ ENOBUFS = 105
+ ENOCSI = 50
+ ENODATA = 61
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOKEY = 126
+ ENOLCK = 37
+ ENOLINK = 67
+ ENOMEDIUM = 123
+ ENOMEM = 12
+ ENOMSG = 42
+ ENONET = 64
+ ENOPKG = 65
+ ENOPROTOOPT = 92
+ ENOSPC = 28
+ ENOSR = 63
+ ENOSTR = 60
+ ENOSYS = 38
+ ENOTBLK = 15
+ ENOTCONN = 107
+ ENOTDIR = 20
+ ENOTEMPTY = 39
+ ENOTNAM = 118
+ ENOTRECOVERABLE = 131
+ ENOTSOCK = 88
+ ENOTSUP = 95
+ ENOTTY = 25
+ ENOTUNIQ = 76
+ ENXIO = 6
+ EOPNOTSUPP = 95
+ EOVERFLOW = 75
+ EOWNERDEAD = 130
+ EPERM = 1
+ EPFNOSUPPORT = 96
+ EPIPE = 32
+ EPROTO = 71
+ EPROTONOSUPPORT = 93
+ EPROTOTYPE = 91
+ ERANGE = 34
+ EREMCHG = 78
+ EREMOTE = 66
+ EREMOTEIO = 121
+ ERESTART = 85
+ ERFKILL = 132
+ EROFS = 30
+ ESHUTDOWN = 108
+ ESOCKTNOSUPPORT = 94
+ ESPIPE = 29
+ ESRCH = 3
+ ESRMNT = 69
+ ESTALE = 116
+ ESTRPIPE = 86
+ ETIME = 62
+ ETIMEDOUT = 110
+ ETOOMANYREFS = 109
+ ETXTBSY = 26
+ EUCLEAN = 117
+ EUNATCH = 49
+ EUSERS = 87
+ EWOULDBLOCK = 11
+ EXDEV = 18
+ EXFULL = 54
+ X_ASM_GENERIC_ERRNO_BASE_H = 0
+ X_ASM_GENERIC_ERRNO_H = 0
+ X_ATFILE_SOURCE = 1
+ X_BITS_ERRNO_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_ERRNO_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_linux_arm.go b/vendor/modernc.org/libc/errno/errno_linux_arm.go
new file mode 100644
index 00000000..92360431
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_linux_arm.go
@@ -0,0 +1,177 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_arm.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 98
+ EADDRNOTAVAIL = 99
+ EADV = 68
+ EAFNOSUPPORT = 97
+ EAGAIN = 11
+ EALREADY = 114
+ EBADE = 52
+ EBADF = 9
+ EBADFD = 77
+ EBADMSG = 74
+ EBADR = 53
+ EBADRQC = 56
+ EBADSLT = 57
+ EBFONT = 59
+ EBUSY = 16
+ ECANCELED = 125
+ ECHILD = 10
+ ECHRNG = 44
+ ECOMM = 70
+ ECONNABORTED = 103
+ ECONNREFUSED = 111
+ ECONNRESET = 104
+ EDEADLK = 35
+ EDEADLOCK = 35
+ EDESTADDRREQ = 89
+ EDOM = 33
+ EDOTDOT = 73
+ EDQUOT = 122
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTDOWN = 112
+ EHOSTUNREACH = 113
+ EHWPOISON = 133
+ EIDRM = 43
+ EILSEQ = 84
+ EINPROGRESS = 115
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 106
+ EISDIR = 21
+ EISNAM = 120
+ EKEYEXPIRED = 127
+ EKEYREJECTED = 129
+ EKEYREVOKED = 128
+ EL2HLT = 51
+ EL2NSYNC = 45
+ EL3HLT = 46
+ EL3RST = 47
+ ELIBACC = 79
+ ELIBBAD = 80
+ ELIBEXEC = 83
+ ELIBMAX = 82
+ ELIBSCN = 81
+ ELNRNG = 48
+ ELOOP = 40
+ EMEDIUMTYPE = 124
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 90
+ EMULTIHOP = 72
+ ENAMETOOLONG = 36
+ ENAVAIL = 119
+ ENETDOWN = 100
+ ENETRESET = 102
+ ENETUNREACH = 101
+ ENFILE = 23
+ ENOANO = 55
+ ENOBUFS = 105
+ ENOCSI = 50
+ ENODATA = 61
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOKEY = 126
+ ENOLCK = 37
+ ENOLINK = 67
+ ENOMEDIUM = 123
+ ENOMEM = 12
+ ENOMSG = 42
+ ENONET = 64
+ ENOPKG = 65
+ ENOPROTOOPT = 92
+ ENOSPC = 28
+ ENOSR = 63
+ ENOSTR = 60
+ ENOSYS = 38
+ ENOTBLK = 15
+ ENOTCONN = 107
+ ENOTDIR = 20
+ ENOTEMPTY = 39
+ ENOTNAM = 118
+ ENOTRECOVERABLE = 131
+ ENOTSOCK = 88
+ ENOTSUP = 95
+ ENOTTY = 25
+ ENOTUNIQ = 76
+ ENXIO = 6
+ EOPNOTSUPP = 95
+ EOVERFLOW = 75
+ EOWNERDEAD = 130
+ EPERM = 1
+ EPFNOSUPPORT = 96
+ EPIPE = 32
+ EPROTO = 71
+ EPROTONOSUPPORT = 93
+ EPROTOTYPE = 91
+ ERANGE = 34
+ EREMCHG = 78
+ EREMOTE = 66
+ EREMOTEIO = 121
+ ERESTART = 85
+ ERFKILL = 132
+ EROFS = 30
+ ESHUTDOWN = 108
+ ESOCKTNOSUPPORT = 94
+ ESPIPE = 29
+ ESRCH = 3
+ ESRMNT = 69
+ ESTALE = 116
+ ESTRPIPE = 86
+ ETIME = 62
+ ETIMEDOUT = 110
+ ETOOMANYREFS = 109
+ ETXTBSY = 26
+ EUCLEAN = 117
+ EUNATCH = 49
+ EUSERS = 87
+ EWOULDBLOCK = 11
+ EXDEV = 18
+ EXFULL = 54
+ X_ASM_GENERIC_ERRNO_BASE_H = 0
+ X_ASM_GENERIC_ERRNO_H = 0
+ X_ATFILE_SOURCE = 1
+ X_BITS_ERRNO_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_ERRNO_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_linux_arm64.go b/vendor/modernc.org/libc/errno/errno_linux_arm64.go
new file mode 100644
index 00000000..5ac7301f
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_linux_arm64.go
@@ -0,0 +1,187 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_arm64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 98
+ EADDRNOTAVAIL = 99
+ EADV = 68
+ EAFNOSUPPORT = 97
+ EAGAIN = 11
+ EALREADY = 114
+ EBADE = 52
+ EBADF = 9
+ EBADFD = 77
+ EBADMSG = 74
+ EBADR = 53
+ EBADRQC = 56
+ EBADSLT = 57
+ EBFONT = 59
+ EBUSY = 16
+ ECANCELED = 125
+ ECHILD = 10
+ ECHRNG = 44
+ ECOMM = 70
+ ECONNABORTED = 103
+ ECONNREFUSED = 111
+ ECONNRESET = 104
+ EDEADLK = 35
+ EDEADLOCK = 35
+ EDESTADDRREQ = 89
+ EDOM = 33
+ EDOTDOT = 73
+ EDQUOT = 122
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTDOWN = 112
+ EHOSTUNREACH = 113
+ EHWPOISON = 133
+ EIDRM = 43
+ EILSEQ = 84
+ EINPROGRESS = 115
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 106
+ EISDIR = 21
+ EISNAM = 120
+ EKEYEXPIRED = 127
+ EKEYREJECTED = 129
+ EKEYREVOKED = 128
+ EL2HLT = 51
+ EL2NSYNC = 45
+ EL3HLT = 46
+ EL3RST = 47
+ ELIBACC = 79
+ ELIBBAD = 80
+ ELIBEXEC = 83
+ ELIBMAX = 82
+ ELIBSCN = 81
+ ELNRNG = 48
+ ELOOP = 40
+ EMEDIUMTYPE = 124
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 90
+ EMULTIHOP = 72
+ ENAMETOOLONG = 36
+ ENAVAIL = 119
+ ENETDOWN = 100
+ ENETRESET = 102
+ ENETUNREACH = 101
+ ENFILE = 23
+ ENOANO = 55
+ ENOBUFS = 105
+ ENOCSI = 50
+ ENODATA = 61
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOKEY = 126
+ ENOLCK = 37
+ ENOLINK = 67
+ ENOMEDIUM = 123
+ ENOMEM = 12
+ ENOMSG = 42
+ ENONET = 64
+ ENOPKG = 65
+ ENOPROTOOPT = 92
+ ENOSPC = 28
+ ENOSR = 63
+ ENOSTR = 60
+ ENOSYS = 38
+ ENOTBLK = 15
+ ENOTCONN = 107
+ ENOTDIR = 20
+ ENOTEMPTY = 39
+ ENOTNAM = 118
+ ENOTRECOVERABLE = 131
+ ENOTSOCK = 88
+ ENOTSUP = 95
+ ENOTTY = 25
+ ENOTUNIQ = 76
+ ENXIO = 6
+ EOPNOTSUPP = 95
+ EOVERFLOW = 75
+ EOWNERDEAD = 130
+ EPERM = 1
+ EPFNOSUPPORT = 96
+ EPIPE = 32
+ EPROTO = 71
+ EPROTONOSUPPORT = 93
+ EPROTOTYPE = 91
+ ERANGE = 34
+ EREMCHG = 78
+ EREMOTE = 66
+ EREMOTEIO = 121
+ ERESTART = 85
+ ERFKILL = 132
+ EROFS = 30
+ ESHUTDOWN = 108
+ ESOCKTNOSUPPORT = 94
+ ESPIPE = 29
+ ESRCH = 3
+ ESRMNT = 69
+ ESTALE = 116
+ ESTRPIPE = 86
+ ETIME = 62
+ ETIMEDOUT = 110
+ ETOOMANYREFS = 109
+ ETXTBSY = 26
+ EUCLEAN = 117
+ EUNATCH = 49
+ EUSERS = 87
+ EWOULDBLOCK = 11
+ EXDEV = 18
+ EXFULL = 54
+ X_ASM_GENERIC_ERRNO_BASE_H = 0
+ X_ASM_GENERIC_ERRNO_H = 0
+ X_ATFILE_SOURCE = 1
+ X_BITS_ERRNO_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_ERRNO_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_linux_s390x.go b/vendor/modernc.org/libc/errno/errno_linux_s390x.go
new file mode 100644
index 00000000..4ecaf601
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_linux_s390x.go
@@ -0,0 +1,187 @@
+// Code generated by 'ccgo errno/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 errno/errno_linux_s390x.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 98
+ EADDRNOTAVAIL = 99
+ EADV = 68
+ EAFNOSUPPORT = 97
+ EAGAIN = 11
+ EALREADY = 114
+ EBADE = 52
+ EBADF = 9
+ EBADFD = 77
+ EBADMSG = 74
+ EBADR = 53
+ EBADRQC = 56
+ EBADSLT = 57
+ EBFONT = 59
+ EBUSY = 16
+ ECANCELED = 125
+ ECHILD = 10
+ ECHRNG = 44
+ ECOMM = 70
+ ECONNABORTED = 103
+ ECONNREFUSED = 111
+ ECONNRESET = 104
+ EDEADLK = 35
+ EDEADLOCK = 35
+ EDESTADDRREQ = 89
+ EDOM = 33
+ EDOTDOT = 73
+ EDQUOT = 122
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTDOWN = 112
+ EHOSTUNREACH = 113
+ EHWPOISON = 133
+ EIDRM = 43
+ EILSEQ = 84
+ EINPROGRESS = 115
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 106
+ EISDIR = 21
+ EISNAM = 120
+ EKEYEXPIRED = 127
+ EKEYREJECTED = 129
+ EKEYREVOKED = 128
+ EL2HLT = 51
+ EL2NSYNC = 45
+ EL3HLT = 46
+ EL3RST = 47
+ ELIBACC = 79
+ ELIBBAD = 80
+ ELIBEXEC = 83
+ ELIBMAX = 82
+ ELIBSCN = 81
+ ELNRNG = 48
+ ELOOP = 40
+ EMEDIUMTYPE = 124
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 90
+ EMULTIHOP = 72
+ ENAMETOOLONG = 36
+ ENAVAIL = 119
+ ENETDOWN = 100
+ ENETRESET = 102
+ ENETUNREACH = 101
+ ENFILE = 23
+ ENOANO = 55
+ ENOBUFS = 105
+ ENOCSI = 50
+ ENODATA = 61
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOKEY = 126
+ ENOLCK = 37
+ ENOLINK = 67
+ ENOMEDIUM = 123
+ ENOMEM = 12
+ ENOMSG = 42
+ ENONET = 64
+ ENOPKG = 65
+ ENOPROTOOPT = 92
+ ENOSPC = 28
+ ENOSR = 63
+ ENOSTR = 60
+ ENOSYS = 38
+ ENOTBLK = 15
+ ENOTCONN = 107
+ ENOTDIR = 20
+ ENOTEMPTY = 39
+ ENOTNAM = 118
+ ENOTRECOVERABLE = 131
+ ENOTSOCK = 88
+ ENOTSUP = 95
+ ENOTTY = 25
+ ENOTUNIQ = 76
+ ENXIO = 6
+ EOPNOTSUPP = 95
+ EOVERFLOW = 75
+ EOWNERDEAD = 130
+ EPERM = 1
+ EPFNOSUPPORT = 96
+ EPIPE = 32
+ EPROTO = 71
+ EPROTONOSUPPORT = 93
+ EPROTOTYPE = 91
+ ERANGE = 34
+ EREMCHG = 78
+ EREMOTE = 66
+ EREMOTEIO = 121
+ ERESTART = 85
+ ERFKILL = 132
+ EROFS = 30
+ ESHUTDOWN = 108
+ ESOCKTNOSUPPORT = 94
+ ESPIPE = 29
+ ESRCH = 3
+ ESRMNT = 69
+ ESTALE = 116
+ ESTRPIPE = 86
+ ETIME = 62
+ ETIMEDOUT = 110
+ ETOOMANYREFS = 109
+ ETXTBSY = 26
+ EUCLEAN = 117
+ EUNATCH = 49
+ EUSERS = 87
+ EWOULDBLOCK = 11
+ EXDEV = 18
+ EXFULL = 54
+ X_ASM_GENERIC_ERRNO_BASE_H = 0
+ X_ASM_GENERIC_ERRNO_H = 0
+ X_ATFILE_SOURCE = 1
+ X_BITS_ERRNO_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_ERRNO_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_netbsd_amd64.go b/vendor/modernc.org/libc/errno/errno_netbsd_amd64.go
new file mode 100644
index 00000000..8a96a69d
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_netbsd_amd64.go
@@ -0,0 +1,144 @@
+// Code generated by 'ccgo errno/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 errno/errno_netbsd_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADF = 9
+ EBADMSG = 88
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 87
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDOM = 33
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 82
+ EILSEQ = 85
+ EINPROGRESS = 36
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 96
+ ELOOP = 62
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ EMULTIHOP = 94
+ ENAMETOOLONG = 63
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 93
+ ENOBUFS = 55
+ ENODATA = 89
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOLINK = 95
+ ENOMEM = 12
+ ENOMSG = 83
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSR = 90
+ ENOSTR = 91
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTSOCK = 38
+ ENOTSUP = 86
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 45
+ EOVERFLOW = 84
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 96
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIME = 92
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXDEV = 18
+ X_ERRNO_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_SYS_CDEFS_ELF_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ERRNO_H_ = 0
+ X_X86_64_CDEFS_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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_openbsd_amd64.go b/vendor/modernc.org/libc/errno/errno_openbsd_amd64.go
new file mode 100644
index 00000000..04de6898
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_openbsd_amd64.go
@@ -0,0 +1,142 @@
+// Code generated by 'ccgo errno/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 errno/errno_openbsd_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 48
+ EADDRNOTAVAIL = 49
+ EAFNOSUPPORT = 47
+ EAGAIN = 35
+ EALREADY = 37
+ EAUTH = 80
+ EBADF = 9
+ EBADMSG = 92
+ EBADRPC = 72
+ EBUSY = 16
+ ECANCELED = 88
+ ECHILD = 10
+ ECONNABORTED = 53
+ ECONNREFUSED = 61
+ ECONNRESET = 54
+ EDEADLK = 11
+ EDESTADDRREQ = 39
+ EDOM = 33
+ EDQUOT = 69
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EFTYPE = 79
+ EHOSTDOWN = 64
+ EHOSTUNREACH = 65
+ EIDRM = 89
+ EILSEQ = 84
+ EINPROGRESS = 36
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EIPSEC = 82
+ EISCONN = 56
+ EISDIR = 21
+ ELAST = 95
+ ELOOP = 62
+ EMEDIUMTYPE = 86
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 40
+ ENAMETOOLONG = 63
+ ENEEDAUTH = 81
+ ENETDOWN = 50
+ ENETRESET = 52
+ ENETUNREACH = 51
+ ENFILE = 23
+ ENOATTR = 83
+ ENOBUFS = 55
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOLCK = 77
+ ENOMEDIUM = 85
+ ENOMEM = 12
+ ENOMSG = 90
+ ENOPROTOOPT = 42
+ ENOSPC = 28
+ ENOSYS = 78
+ ENOTBLK = 15
+ ENOTCONN = 57
+ ENOTDIR = 20
+ ENOTEMPTY = 66
+ ENOTRECOVERABLE = 93
+ ENOTSOCK = 38
+ ENOTSUP = 91
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 45
+ EOVERFLOW = 87
+ EOWNERDEAD = 94
+ EPERM = 1
+ EPFNOSUPPORT = 46
+ EPIPE = 32
+ EPROCLIM = 67
+ EPROCUNAVAIL = 76
+ EPROGMISMATCH = 75
+ EPROGUNAVAIL = 74
+ EPROTO = 95
+ EPROTONOSUPPORT = 43
+ EPROTOTYPE = 41
+ ERANGE = 34
+ EREMOTE = 71
+ EROFS = 30
+ ERPCMISMATCH = 73
+ ESHUTDOWN = 58
+ ESOCKTNOSUPPORT = 44
+ ESPIPE = 29
+ ESRCH = 3
+ ESTALE = 70
+ ETIMEDOUT = 60
+ ETOOMANYREFS = 59
+ ETXTBSY = 26
+ EUSERS = 68
+ EWOULDBLOCK = 35
+ EXDEV = 18
+ X_ERRNO_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_RET_PROTECTOR = 1
+ X_SYS_CDEFS_H_ = 0
+ Unix = 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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_windows_386.go b/vendor/modernc.org/libc/errno/errno_windows_386.go
new file mode 100644
index 00000000..4f0dfbe5
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_windows_386.go
@@ -0,0 +1,361 @@
+// Code generated by 'ccgo errno/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 errno/errno_windows_386.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 100
+ EADDRNOTAVAIL = 101
+ EAFNOSUPPORT = 102
+ EAGAIN = 11
+ EALREADY = 103
+ EBADF = 9
+ EBADMSG = 104
+ EBUSY = 16
+ ECANCELED = 105
+ ECHILD = 10
+ ECONNABORTED = 106
+ ECONNREFUSED = 107
+ ECONNRESET = 108
+ EDEADLK = 36
+ EDEADLOCK = 36
+ EDESTADDRREQ = 109
+ EDOM = 33
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTUNREACH = 110
+ EIDRM = 111
+ EILSEQ = 42
+ EINPROGRESS = 112
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 113
+ EISDIR = 21
+ ELOOP = 114
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 115
+ ENAMETOOLONG = 38
+ ENETDOWN = 116
+ ENETRESET = 117
+ ENETUNREACH = 118
+ ENFILE = 23
+ ENOBUFS = 119
+ ENODATA = 120
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOFILE = 2
+ ENOLCK = 39
+ ENOLINK = 121
+ ENOMEM = 12
+ ENOMSG = 122
+ ENOPROTOOPT = 123
+ ENOSPC = 28
+ ENOSR = 124
+ ENOSTR = 125
+ ENOSYS = 40
+ ENOTCONN = 126
+ ENOTDIR = 20
+ ENOTEMPTY = 41
+ ENOTRECOVERABLE = 127
+ ENOTSOCK = 128
+ ENOTSUP = 129
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 130
+ EOVERFLOW = 132
+ EOWNERDEAD = 133
+ EPERM = 1
+ EPIPE = 32
+ EPROTO = 134
+ EPROTONOSUPPORT = 135
+ EPROTOTYPE = 136
+ ERANGE = 34
+ EROFS = 30
+ ESPIPE = 29
+ ESRCH = 3
+ ETIME = 137
+ ETIMEDOUT = 138
+ ETXTBSY = 139
+ EWOULDBLOCK = 140
+ EXDEV = 18
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ STRUNCATE = 80
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_ERRNO_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_ERRNO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_ERRCODE_VALUES_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+// Posix thread extensions.
+
+// Extension defined as by report VC 10+ defines error-numbers.
+
+// Defined as WSAETIMEDOUT.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/errno/errno_windows_amd64.go b/vendor/modernc.org/libc/errno/errno_windows_amd64.go
new file mode 100644
index 00000000..5ba0ea58
--- /dev/null
+++ b/vendor/modernc.org/libc/errno/errno_windows_amd64.go
@@ -0,0 +1,360 @@
+// Code generated by 'ccgo errno\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 errno\errno_windows_amd64.go -pkgname errno', DO NOT EDIT.
+
+package errno
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 100
+ EADDRNOTAVAIL = 101
+ EAFNOSUPPORT = 102
+ EAGAIN = 11
+ EALREADY = 103
+ EBADF = 9
+ EBADMSG = 104
+ EBUSY = 16
+ ECANCELED = 105
+ ECHILD = 10
+ ECONNABORTED = 106
+ ECONNREFUSED = 107
+ ECONNRESET = 108
+ EDEADLK = 36
+ EDEADLOCK = 36
+ EDESTADDRREQ = 109
+ EDOM = 33
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTUNREACH = 110
+ EIDRM = 111
+ EILSEQ = 42
+ EINPROGRESS = 112
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 113
+ EISDIR = 21
+ ELOOP = 114
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 115
+ ENAMETOOLONG = 38
+ ENETDOWN = 116
+ ENETRESET = 117
+ ENETUNREACH = 118
+ ENFILE = 23
+ ENOBUFS = 119
+ ENODATA = 120
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOFILE = 2
+ ENOLCK = 39
+ ENOLINK = 121
+ ENOMEM = 12
+ ENOMSG = 122
+ ENOPROTOOPT = 123
+ ENOSPC = 28
+ ENOSR = 124
+ ENOSTR = 125
+ ENOSYS = 40
+ ENOTCONN = 126
+ ENOTDIR = 20
+ ENOTEMPTY = 41
+ ENOTRECOVERABLE = 127
+ ENOTSOCK = 128
+ ENOTSUP = 129
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 130
+ EOVERFLOW = 132
+ EOWNERDEAD = 133
+ EPERM = 1
+ EPIPE = 32
+ EPROTO = 134
+ EPROTONOSUPPORT = 135
+ EPROTOTYPE = 136
+ ERANGE = 34
+ EROFS = 30
+ ESPIPE = 29
+ ESRCH = 3
+ ETIME = 137
+ ETIMEDOUT = 138
+ ETXTBSY = 139
+ EWOULDBLOCK = 140
+ EXDEV = 18
+ 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
+ STRUNCATE = 80
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_ERRNO_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_ERRNO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_REENTRANT = 1
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_ERRCODE_VALUES_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+// Posix thread extensions.
+
+// Extension defined as by report VC 10+ defines error-numbers.
+
+// Defined as WSAETIMEDOUT.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/etc.go b/vendor/modernc.org/libc/etc.go
new file mode 100644
index 00000000..6e687055
--- /dev/null
+++ b/vendor/modernc.org/libc/etc.go
@@ -0,0 +1,914 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "runtime"
+ "runtime/debug"
+ "sort"
+ "strconv"
+ "strings"
+ "sync"
+ "sync/atomic"
+ "syscall"
+ "time"
+ "unsafe"
+
+ "modernc.org/libc/errno"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/types"
+)
+
+const (
+ allocatorPageOverhead = 4 * unsafe.Sizeof(int(0))
+ stackHeaderSize = unsafe.Sizeof(stackHeader{})
+ stackSegmentSize = 1<<12 - allocatorPageOverhead
+ uintptrSize = unsafe.Sizeof(uintptr(0))
+)
+
+var (
+ Covered = map[uintptr]struct{}{}
+ CoveredC = map[string]struct{}{}
+ fToken uintptr
+ tid int32
+
+ atExit []func()
+ atExitMu sync.Mutex
+
+ signals [signal.NSIG]uintptr
+ signalsMu sync.Mutex
+
+ objectMu sync.Mutex
+ objects = map[uintptr]interface{}{}
+
+ tlsBalance int32
+
+ _ = origin
+ _ = trc
+)
+
+func init() {
+ if n := stackHeaderSize; n%16 != 0 {
+ panic(fmt.Errorf("internal error: stackHeaderSize %v == %v (mod 16)", n, n%16))
+ }
+}
+
+func origin(skip int) string {
+ pc, fn, fl, _ := runtime.Caller(skip)
+ f := runtime.FuncForPC(pc)
+ var fns string
+ if f != nil {
+ fns = f.Name()
+ if x := strings.LastIndex(fns, "."); x > 0 {
+ fns = fns[x+1:]
+ }
+ }
+ return fmt.Sprintf("%s:%d:%s", filepath.Base(fn), fl, fns)
+}
+
+func trc(s string, args ...interface{}) string { //TODO-
+ switch {
+ case s == "":
+ s = fmt.Sprintf(strings.Repeat("%v ", len(args)), args...)
+ default:
+ s = fmt.Sprintf(s, args...)
+ }
+ r := fmt.Sprintf("%s: TRC %s", origin(2), s)
+ fmt.Fprintf(os.Stdout, "%s\n", r)
+ os.Stdout.Sync()
+ return r
+}
+
+func todo(s string, args ...interface{}) string { //TODO-
+ switch {
+ case s == "":
+ s = fmt.Sprintf(strings.Repeat("%v ", len(args)), args...)
+ default:
+ s = fmt.Sprintf(s, args...)
+ }
+ r := fmt.Sprintf("%s: TODOTODO %s", origin(2), s) //TODOOK
+ if dmesgs {
+ dmesg("%s", r)
+ }
+ fmt.Fprintf(os.Stdout, "%s\n", r)
+ fmt.Fprintf(os.Stdout, "%s\n", debug.Stack()) //TODO-
+ os.Stdout.Sync()
+ os.Exit(1)
+ panic("unrechable")
+}
+
+var coverPCs [1]uintptr //TODO not concurrent safe
+
+func Cover() {
+ runtime.Callers(2, coverPCs[:])
+ Covered[coverPCs[0]] = struct{}{}
+}
+
+func CoverReport(w io.Writer) error {
+ var a []string
+ pcs := make([]uintptr, 1)
+ for pc := range Covered {
+ pcs[0] = pc
+ frame, _ := runtime.CallersFrames(pcs).Next()
+ a = append(a, fmt.Sprintf("%s:%07d:%s", filepath.Base(frame.File), frame.Line, frame.Func.Name()))
+ }
+ sort.Strings(a)
+ _, err := fmt.Fprintf(w, "%s\n", strings.Join(a, "\n"))
+ return err
+}
+
+func CoverC(s string) {
+ CoveredC[s] = struct{}{}
+}
+
+func CoverCReport(w io.Writer) error {
+ var a []string
+ for k := range CoveredC {
+ a = append(a, k)
+ }
+ sort.Strings(a)
+ _, err := fmt.Fprintf(w, "%s\n", strings.Join(a, "\n"))
+ return err
+}
+
+func token() uintptr { return atomic.AddUintptr(&fToken, 1) }
+
+func addObject(o interface{}) uintptr {
+ t := token()
+ objectMu.Lock()
+ objects[t] = o
+ objectMu.Unlock()
+ return t
+}
+
+func getObject(t uintptr) interface{} {
+ objectMu.Lock()
+ o := objects[t]
+ if o == nil {
+ panic(todo("", t))
+ }
+
+ objectMu.Unlock()
+ return o
+}
+
+func removeObject(t uintptr) {
+ objectMu.Lock()
+ if _, ok := objects[t]; !ok {
+ panic(todo(""))
+ }
+
+ delete(objects, t)
+ objectMu.Unlock()
+}
+
+func (t *TLS) setErrno(err interface{}) {
+ if memgrind {
+ if atomic.SwapInt32(&t.reentryGuard, 1) != 0 {
+ panic(todo("concurrent use of TLS instance %p", t))
+ }
+
+ defer func() {
+ if atomic.SwapInt32(&t.reentryGuard, 0) != 1 {
+ panic(todo("concurrent use of TLS instance %p", t))
+ }
+ }()
+ }
+ // if dmesgs {
+ // dmesg("%v: %T(%v)\n%s", origin(1), err, err, debug.Stack())
+ // }
+again:
+ switch x := err.(type) {
+ case int:
+ *(*int32)(unsafe.Pointer(t.errnop)) = int32(x)
+ case int32:
+ *(*int32)(unsafe.Pointer(t.errnop)) = x
+ case *os.PathError:
+ err = x.Err
+ goto again
+ case syscall.Errno:
+ *(*int32)(unsafe.Pointer(t.errnop)) = int32(x)
+ case *os.SyscallError:
+ err = x.Err
+ goto again
+ default:
+ panic(todo("%T", x))
+ }
+}
+
+// Close frees the resources of t.
+func (t *TLS) Close() {
+ t.Free(int(unsafe.Sizeof(int32(0))))
+ if memgrind {
+ if t.stackHeaderBalance != 0 {
+ panic(todo("non zero stack header balance: %d", t.stackHeaderBalance))
+ }
+
+ atomic.AddInt32(&tlsBalance, -1)
+ }
+}
+
+// Alloc allocates n bytes of thread-local storage. It must be paired with a
+// call to t.Free(n), using the same n. The order matters. This is ok:
+//
+// t.Alloc(11)
+// t.Alloc(22)
+// t.Free(22)
+// t.Free(11)
+//
+// This is not correct:
+//
+// t.Alloc(11)
+// t.Alloc(22)
+// t.Free(11)
+// t.Free(22)
+func (t *TLS) Alloc(n int) (r uintptr) {
+ if memgrind {
+ if atomic.SwapInt32(&t.reentryGuard, 1) != 0 {
+ panic(todo("concurrent use of TLS instance %p", t))
+ }
+
+ defer func() {
+ if atomic.SwapInt32(&t.reentryGuard, 0) != 1 {
+ panic(todo("concurrent use of TLS instance %p", t))
+ }
+ }()
+ }
+ n += 15
+ n &^= 15
+ if t.stack.free >= n {
+ r = t.stack.sp
+ t.stack.free -= n
+ t.stack.sp += uintptr(n)
+ return r
+ }
+ //if we have a next stack
+ if nstack := t.stack.next; nstack != 0 {
+ if (*stackHeader)(unsafe.Pointer(nstack)).free >= n {
+ *(*stackHeader)(unsafe.Pointer(t.stack.page)) = t.stack
+ t.stack = *(*stackHeader)(unsafe.Pointer(nstack))
+ r = t.stack.sp
+ t.stack.free -= n
+ t.stack.sp += uintptr(n)
+ return r
+ }
+ nstack := *(*stackHeader)(unsafe.Pointer(t.stack.next))
+ for ; ; nstack = *(*stackHeader)(unsafe.Pointer(nstack.next)) {
+ if memgrind {
+ if atomic.AddInt32(&t.stackHeaderBalance, -1) < 0 {
+ panic(todo("negative stack header balance"))
+ }
+ }
+ Xfree(t, nstack.page)
+ if nstack.next == 0 {
+ break
+ }
+ }
+ t.stack.next = 0
+ }
+
+ if t.stack.page != 0 {
+ *(*stackHeader)(unsafe.Pointer(t.stack.page)) = t.stack
+ }
+
+ rq := n + int(stackHeaderSize)
+ if rq%int(stackSegmentSize) != 0 {
+ rq -= rq % int(stackSegmentSize)
+ rq += int(stackSegmentSize)
+ }
+ t.stack.free = rq - int(stackHeaderSize)
+ t.stack.prev = t.stack.page
+
+ rq += 15
+ rq &^= 15
+ t.stack.page = Xmalloc(t, types.Size_t(rq))
+ if t.stack.page == 0 {
+ panic("OOM")
+ }
+
+ if memgrind {
+ atomic.AddInt32(&t.stackHeaderBalance, 1)
+ }
+ t.stack.sp = t.stack.page + stackHeaderSize
+
+ r = t.stack.sp
+ t.stack.free -= n
+ t.stack.sp += uintptr(n)
+ if t.stack.prev != 0 {
+ (*stackHeader)(unsafe.Pointer(t.stack.prev)).next = t.stack.page
+ }
+
+ return r
+}
+
+//this declares how many stack frames are kept alive before being freed
+const stackFrameKeepalive = 2
+
+// Free deallocates n bytes of thread-local storage. See TLS.Alloc for details
+// on correct usage.
+func (t *TLS) Free(n int) {
+ if memgrind {
+ if atomic.SwapInt32(&t.reentryGuard, 1) != 0 {
+ panic(todo("concurrent use of TLS instance %p", t))
+ }
+
+ defer func() {
+ if atomic.SwapInt32(&t.reentryGuard, 0) != 1 {
+ panic(todo("concurrent use of TLS instance %p", t))
+ }
+ }()
+ }
+ n += 15
+ n &^= 15
+ t.stack.free += n
+ t.stack.sp -= uintptr(n)
+ if t.stack.sp != t.stack.page+stackHeaderSize {
+ return
+ }
+
+ nstack := t.stack
+
+ //if we are the first one, just free all of them
+ if t.stack.prev == 0 {
+ for ; ; nstack = *(*stackHeader)(unsafe.Pointer(nstack.next)) {
+ if memgrind {
+ if atomic.AddInt32(&t.stackHeaderBalance, -1) < 0 {
+ panic(todo("negative stack header balance"))
+ }
+ }
+ Xfree(t, nstack.page)
+ if nstack.next == 0 {
+ break
+ }
+ }
+ t.stack = stackHeader{}
+ return
+ }
+
+ //look if we are in the last n stackframes (n=stackFrameKeepalive)
+ //if we find something just return and set the current stack pointer to the previous one
+ for i := 0; i < stackFrameKeepalive; i++ {
+ if nstack.next == 0 {
+ *((*stackHeader)(unsafe.Pointer(t.stack.page))) = t.stack
+ t.stack = *(*stackHeader)(unsafe.Pointer(t.stack.prev))
+ return
+ }
+ nstack = *(*stackHeader)(unsafe.Pointer(nstack.next))
+ }
+
+ //else only free the last
+ if memgrind {
+ if atomic.AddInt32(&t.stackHeaderBalance, -1) < 0 {
+ panic(todo("negative stack header balance"))
+ }
+ }
+ Xfree(t, nstack.page)
+ (*stackHeader)(unsafe.Pointer(nstack.prev)).next = 0
+ *(*stackHeader)(unsafe.Pointer(t.stack.page)) = t.stack
+ t.stack = *(*stackHeader)(unsafe.Pointer(t.stack.prev))
+}
+
+type stackHeader struct {
+ free int // bytes left in page
+ page uintptr // stack page
+ prev uintptr // prev stack page = prev stack header
+ next uintptr // next stack page = next stack header
+ sp uintptr // next allocation address
+ _ stackHeaderPadding
+}
+
+func cString(t *TLS, s string) uintptr { //TODO-
+ n := len(s)
+ p := Xmalloc(t, types.Size_t(n)+1)
+ if p == 0 {
+ panic("OOM")
+ }
+
+ copy((*RawMem)(unsafe.Pointer(p))[:n:n], s)
+ *(*byte)(unsafe.Pointer(p + uintptr(n))) = 0
+ return p
+}
+
+// VaList fills a varargs list at p with args and returns p. The list must
+// have been allocated by caller and it must not be in Go managed memory, ie.
+// it must be pinned. Caller is responsible for freeing the list.
+//
+// Individual arguments must be one of int, uint, int32, uint32, int64, uint64,
+// float64, uintptr or Intptr. Other types will panic.
+//
+// This function supports code generated by ccgo/v3. For manually constructed
+// var args it's recommended to use the NewVaList function instead.
+//
+// Note: The C translated to Go varargs ABI alignment for all types is 8 on all
+// architectures.
+func VaList(p uintptr, args ...interface{}) (r uintptr) {
+ if p&7 != 0 {
+ panic("internal error")
+ }
+
+ r = p
+ for _, v := range args {
+ switch x := v.(type) {
+ case int:
+ *(*int64)(unsafe.Pointer(p)) = int64(x)
+ case int32:
+ *(*int64)(unsafe.Pointer(p)) = int64(x)
+ case int64:
+ *(*int64)(unsafe.Pointer(p)) = x
+ case uint:
+ *(*uint64)(unsafe.Pointer(p)) = uint64(x)
+ case uint16:
+ *(*uint64)(unsafe.Pointer(p)) = uint64(x)
+ case uint32:
+ *(*uint64)(unsafe.Pointer(p)) = uint64(x)
+ case uint64:
+ *(*uint64)(unsafe.Pointer(p)) = x
+ case float64:
+ *(*float64)(unsafe.Pointer(p)) = x
+ case uintptr:
+ *(*uintptr)(unsafe.Pointer(p)) = x
+ default:
+ panic(todo("invalid VaList argument type: %T", x))
+ }
+ p += 8
+ }
+ return r
+}
+
+// NewVaListN returns a newly allocated va_list for n items. The caller of
+// NewVaListN is responsible for freeing the va_list.
+func NewVaListN(n int) (va_list uintptr) {
+ return Xmalloc(nil, types.Size_t(8*n))
+}
+
+// NewVaList is like VaList but automatically allocates the correct amount of
+// memory for all of the items in args.
+//
+// The va_list return value is used to pass the constructed var args to var
+// args accepting functions. The caller of NewVaList is responsible for freeing
+// the va_list.
+func NewVaList(args ...interface{}) (va_list uintptr) {
+ return VaList(NewVaListN(len(args)), args...)
+}
+
+func VaInt32(app *uintptr) int32 {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := int32(*(*int64)(unsafe.Pointer(ap)))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return v
+}
+
+func VaUint32(app *uintptr) uint32 {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := uint32(*(*uint64)(unsafe.Pointer(ap)))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return v
+}
+
+func VaInt64(app *uintptr) int64 {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := *(*int64)(unsafe.Pointer(ap))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return v
+}
+
+func VaUint64(app *uintptr) uint64 {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := *(*uint64)(unsafe.Pointer(ap))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return v
+}
+
+func VaFloat32(app *uintptr) float32 {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := *(*float64)(unsafe.Pointer(ap))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return float32(v)
+}
+
+func VaFloat64(app *uintptr) float64 {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := *(*float64)(unsafe.Pointer(ap))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return v
+}
+
+func VaUintptr(app *uintptr) uintptr {
+ ap := *(*uintptr)(unsafe.Pointer(app))
+ if ap == 0 {
+ return 0
+ }
+
+ ap = roundup(ap, 8)
+ v := *(*uintptr)(unsafe.Pointer(ap))
+ ap += 8
+ *(*uintptr)(unsafe.Pointer(app)) = ap
+ return v
+}
+
+func roundup(n, to uintptr) uintptr {
+ if r := n % to; r != 0 {
+ return n + to - r
+ }
+
+ return n
+}
+
+func GoString(s uintptr) string {
+ if s == 0 {
+ return ""
+ }
+
+ var buf []byte
+ for {
+ b := *(*byte)(unsafe.Pointer(s))
+ if b == 0 {
+ return string(buf)
+ }
+
+ buf = append(buf, b)
+ s++
+ }
+}
+
+// GoBytes returns a byte slice from a C char* having length len bytes.
+func GoBytes(s uintptr, len int) []byte {
+ if len == 0 {
+ return nil
+ }
+
+ return (*RawMem)(unsafe.Pointer(s))[:len:len]
+}
+
+func Bool32(b bool) int32 {
+ if b {
+ return 1
+ }
+
+ return 0
+}
+
+func Bool64(b bool) int64 {
+ if b {
+ return 1
+ }
+
+ return 0
+}
+
+type sorter struct {
+ len int
+ base uintptr
+ sz uintptr
+ f func(*TLS, uintptr, uintptr) int32
+ t *TLS
+}
+
+func (s *sorter) Len() int { return s.len }
+
+func (s *sorter) Less(i, j int) bool {
+ return s.f(s.t, s.base+uintptr(i)*s.sz, s.base+uintptr(j)*s.sz) < 0
+}
+
+func (s *sorter) Swap(i, j int) {
+ p := uintptr(s.base + uintptr(i)*s.sz)
+ q := uintptr(s.base + uintptr(j)*s.sz)
+ for i := 0; i < int(s.sz); i++ {
+ *(*byte)(unsafe.Pointer(p)), *(*byte)(unsafe.Pointer(q)) = *(*byte)(unsafe.Pointer(q)), *(*byte)(unsafe.Pointer(p))
+ p++
+ q++
+ }
+}
+
+func CString(s string) (uintptr, error) {
+ n := len(s)
+ p := Xmalloc(nil, types.Size_t(n)+1)
+ if p == 0 {
+ return 0, fmt.Errorf("CString: cannot allocate %d bytes", n+1)
+ }
+
+ copy((*RawMem)(unsafe.Pointer(p))[:n:n], s)
+ *(*byte)(unsafe.Pointer(p + uintptr(n))) = 0
+ return p, nil
+}
+
+func GetEnviron() (r []string) {
+ for p := Environ(); ; p += unsafe.Sizeof(p) {
+ q := *(*uintptr)(unsafe.Pointer(p))
+ if q == 0 {
+ return r
+ }
+
+ r = append(r, GoString(q))
+ }
+}
+
+func strToUint64(t *TLS, s uintptr, base int32) (seenDigits, neg bool, next uintptr, n uint64, err int32) {
+ var c byte
+out:
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ switch c {
+ case ' ', '\t', '\n', '\r', '\v', '\f':
+ s++
+ case '+':
+ s++
+ break out
+ case '-':
+ s++
+ neg = true
+ break out
+ default:
+ break out
+ }
+ }
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ var digit uint64
+ switch base {
+ case 10:
+ switch {
+ case c >= '0' && c <= '9':
+ seenDigits = true
+ digit = uint64(c) - '0'
+ default:
+ return seenDigits, neg, s, n, 0
+ }
+ case 16:
+ if c >= 'A' && c <= 'F' {
+ c = c + ('a' - 'A')
+ }
+ switch {
+ case c >= '0' && c <= '9':
+ seenDigits = true
+ digit = uint64(c) - '0'
+ case c >= 'a' && c <= 'f':
+ seenDigits = true
+ digit = uint64(c) - 'a' + 10
+ default:
+ return seenDigits, neg, s, n, 0
+ }
+ default:
+ panic(todo("", base))
+ }
+ n0 := n
+ n = uint64(base)*n + digit
+ if n < n0 { // overflow
+ return seenDigits, neg, s, n0, errno.ERANGE
+ }
+
+ s++
+ }
+}
+
+func strToFloatt64(t *TLS, s uintptr, bits int) (n float64, errno int32) {
+ var b []byte
+ var neg bool
+
+ defer func() {
+ var err error
+ if n, err = strconv.ParseFloat(string(b), bits); err != nil {
+ panic(todo(""))
+ }
+
+ if neg {
+ n = -n
+ }
+ }()
+
+ var c byte
+out:
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ switch c {
+ case ' ', '\t', '\n', '\r', '\v', '\f':
+ s++
+ case '+':
+ s++
+ break out
+ case '-':
+ s++
+ neg = true
+ break out
+ default:
+ break out
+ }
+ }
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ switch {
+ case c >= '0' && c <= '9':
+ b = append(b, c)
+ case c == '.':
+ b = append(b, c)
+ s++
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ switch {
+ case c >= '0' && c <= '9':
+ b = append(b, c)
+ case c == 'e' || c == 'E':
+ b = append(b, c)
+ s++
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ switch {
+ case c == '+' || c == '-':
+ b = append(b, c)
+ s++
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ switch {
+ case c >= '0' && c <= '9':
+ b = append(b, c)
+ default:
+ return
+ }
+
+ s++
+ }
+ default:
+ panic(todo("%q %q", b, string(c)))
+ }
+ }
+ default:
+ return
+ }
+
+ s++
+ }
+ default:
+ panic(todo("%q %q", b, string(c)))
+ }
+
+ s++
+ }
+}
+
+func parseZone(s string) (name string, off int) {
+ _, name, off, _ = parseZoneOffset(s, false)
+ return name, off
+}
+
+func parseZoneOffset(s string, offOpt bool) (string, string, int, bool) {
+ s0 := s
+ name := s
+ for len(s) != 0 {
+ switch c := s[0]; {
+ case c >= 'A' && c <= 'Z', c >= 'a' && c <= 'z', c == '_', c == '/':
+ s = s[1:]
+ default:
+ name = name[:len(name)-len(s)]
+ if len(name) < 3 {
+ panic(todo("%q", s0))
+ }
+
+ if offOpt {
+ if len(s) == 0 {
+ return "", name, 0, false
+ }
+
+ if c := s[0]; (c < '0' || c > '9') && c != '+' && c != '-' {
+ return s, name, 0, false
+ }
+ }
+
+ s, off := parseOffset(s)
+ return s, name, off, true
+ }
+ }
+ return "", s0, 0, true
+}
+
+// [+|-]hh[:mm[:ss]]
+func parseOffset(s string) (string, int) {
+ if len(s) == 0 {
+ panic(todo(""))
+ }
+
+ k := 1
+ switch s[0] {
+ case '+':
+ // nop
+ s = s[1:]
+ case '-':
+ k = -1
+ s = s[1:]
+ }
+ s, hh, ok := parseUint(s)
+ if !ok {
+ panic(todo(""))
+ }
+
+ n := hh * 3600
+ if len(s) == 0 || s[0] != ':' {
+ return s, k * n
+ }
+
+ s = s[1:] // ':'
+ if len(s) == 0 {
+ panic(todo(""))
+ }
+
+ s, mm, ok := parseUint(s)
+ if !ok {
+ panic(todo(""))
+ }
+
+ n += mm * 60
+ if len(s) == 0 || s[0] != ':' {
+ return s, k * n
+ }
+
+ s = s[1:] // ':'
+ if len(s) == 0 {
+ panic(todo(""))
+ }
+
+ s, ss, _ := parseUint(s)
+ return s, k * (n + ss)
+}
+
+func parseUint(s string) (string, int, bool) {
+ var ok bool
+ var r int
+ for len(s) != 0 {
+ switch c := s[0]; {
+ case c >= '0' && c <= '9':
+ ok = true
+ r0 := r
+ r = 10*r + int(c) - '0'
+ if r < r0 {
+ panic(todo(""))
+ }
+
+ s = s[1:]
+ default:
+ return s, r, ok
+ }
+ }
+ return s, r, ok
+}
+
+// https://stackoverflow.com/a/53052382
+//
+// isTimeDST returns true if time t occurs within daylight saving time
+// for its time zone.
+func isTimeDST(t time.Time) bool {
+ // If the most recent (within the last year) clock change
+ // was forward then assume the change was from std to dst.
+ hh, mm, _ := t.UTC().Clock()
+ tClock := hh*60 + mm
+ for m := -1; m > -12; m-- {
+ // assume dst lasts for at least one month
+ hh, mm, _ := t.AddDate(0, m, 0).UTC().Clock()
+ clock := hh*60 + mm
+ if clock != tClock {
+ return clock > tClock
+ }
+ }
+ // assume no dst
+ return false
+}
diff --git a/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go b/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go
new file mode 100644
index 00000000..bf61865d
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_darwin_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go b/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go
new file mode 100644
index 00000000..eacbc259
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_darwin_arm64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_freebsd_386.go b/vendor/modernc.org/libc/fcntl/capi_freebsd_386.go
new file mode 100644
index 00000000..6a587221
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_freebsd_386.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_freebsd_amd64.go b/vendor/modernc.org/libc/fcntl/capi_freebsd_amd64.go
new file mode 100644
index 00000000..d29a4557
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_freebsd_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_linux_386.go b/vendor/modernc.org/libc/fcntl/capi_linux_386.go
new file mode 100644
index 00000000..6a2e65fb
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_386.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_linux_amd64.go b/vendor/modernc.org/libc/fcntl/capi_linux_amd64.go
new file mode 100644
index 00000000..8b8fafc3
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_linux_arm.go b/vendor/modernc.org/libc/fcntl/capi_linux_arm.go
new file mode 100644
index 00000000..930e7252
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_arm.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_linux_arm64.go b/vendor/modernc.org/libc/fcntl/capi_linux_arm64.go
new file mode 100644
index 00000000..d8986988
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_arm64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_linux_s390x.go b/vendor/modernc.org/libc/fcntl/capi_linux_s390x.go
new file mode 100644
index 00000000..f1c6f3e7
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_s390x.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_netbsd_amd64.go b/vendor/modernc.org/libc/fcntl/capi_netbsd_amd64.go
new file mode 100644
index 00000000..db75e28c
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_netbsd_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go b/vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go
new file mode 100644
index 00000000..50534c3e
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_openbsd_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_windows_386.go b/vendor/modernc.org/libc/fcntl/capi_windows_386.go
new file mode 100644
index 00000000..901d6f2f
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_windows_386.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/capi_windows_amd64.go b/vendor/modernc.org/libc/fcntl/capi_windows_amd64.go
new file mode 100644
index 00000000..7567c424
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fcntl\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 fcntl\fcntl_windows_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go
new file mode 100644
index 00000000..56270dab
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go
@@ -0,0 +1,2057 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_darwin_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x0010
+ AT_FDCWD = -2
+ AT_FDONLY = 0x0400
+ AT_REALDEV = 0x0200
+ AT_REMOVEDIR = 0x0080
+ AT_SYMLINK_FOLLOW = 0x0040
+ AT_SYMLINK_NOFOLLOW = 0x0020
+ CPF_IGNORE_MODE = 0x0002
+ CPF_MASK = 3
+ CPF_OVERWRITE = 0x0001
+ FAPPEND = 8
+ FASYNC = 64
+ FCNTL_FS_SPECIFIC_BASE = 0x00010000
+ FD_CLOEXEC = 1
+ FFDSYNC = 4194304
+ FFSYNC = 128
+ FNDELAY = 4
+ FNONBLOCK = 4
+ FREAD = 0x0001
+ FWRITE = 0x0002
+ F_ADDFILESIGS = 61
+ F_ADDFILESIGS_FOR_DYLD_SIM = 83
+ F_ADDFILESIGS_RETURN = 97
+ F_ADDSIGS = 59
+ F_ALLOCATEALL = 0x00000004
+ F_ALLOCATECONTIG = 0x00000002
+ F_BARRIERFSYNC = 85
+ F_CHECK_LV = 98
+ F_CHKCLEAN = 41
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 67
+ F_FINDSIGS = 78
+ F_FLUSH_DATA = 40
+ F_FREEZE_FS = 53
+ F_FULLFSYNC = 51
+ F_GETCODEDIR = 72
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 7
+ F_GETLKPID = 66
+ F_GETNOSIGPIPE = 74
+ F_GETOWN = 5
+ F_GETPATH = 50
+ F_GETPATH_MTMINFO = 71
+ F_GETPATH_NOFIRMLINK = 102
+ F_GETPROTECTIONCLASS = 63
+ F_GETPROTECTIONLEVEL = 77
+ F_GLOBAL_NOCACHE = 55
+ F_LOG2PHYS = 49
+ F_LOG2PHYS_EXT = 65
+ F_NOCACHE = 48
+ F_NODIRECT = 62
+ F_PATHPKG_CHECK = 52
+ F_PEOFPOSMODE = 3
+ F_PREALLOCATE = 42
+ F_PUNCHHOLE = 99
+ F_RDADVISE = 44
+ F_RDAHEAD = 45
+ F_RDLCK = 1
+ F_SETBACKINGSTORE = 70
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 8
+ F_SETLKW = 9
+ F_SETLKWTIMEOUT = 10
+ F_SETNOSIGPIPE = 73
+ F_SETOWN = 6
+ F_SETPROTECTIONCLASS = 64
+ F_SETSIZE = 43
+ F_SINGLE_WRITER = 76
+ F_SPECULATIVE_READ = 101
+ F_THAW_FS = 54
+ F_TRANSCODEKEY = 75
+ F_TRIM_ACTIVE_FILE = 100
+ F_UNLCK = 2
+ F_VOLPOSMODE = 4
+ F_WRLCK = 3
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ O_ACCMODE = 0x0003
+ O_ALERT = 0x20000000
+ O_APPEND = 0x0008
+ O_ASYNC = 0x0040
+ O_CLOEXEC = 0x1000000
+ O_CREAT = 0x0200
+ O_DIRECTORY = 0x100000
+ O_DP_GETRAWENCRYPTED = 0x0001
+ O_DP_GETRAWUNENCRYPTED = 0x0002
+ O_DSYNC = 0x400000
+ O_EVTONLY = 0x8000
+ O_EXCL = 0x0800
+ O_EXLOCK = 0x0020
+ O_FSYNC = 128
+ O_NDELAY = 4
+ O_NOCTTY = 0x20000
+ O_NOFOLLOW = 0x0100
+ O_NONBLOCK = 0x0004
+ O_POPUP = 0x80000000
+ O_RDONLY = 0x0000
+ O_RDWR = 0x0002
+ O_SHLOCK = 0x0010
+ O_SYMLINK = 0x200000
+ O_SYNC = 0x0080
+ O_TRUNC = 0x0400
+ O_WRONLY = 0x0001
+ SEEK_CUR = 1
+ SEEK_DATA = 4
+ SEEK_END = 2
+ SEEK_HOLE = 3
+ SEEK_SET = 0
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_PID_T = 0
+ X_SIZE_T = 0
+ X_SYS_FCNTL_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+const ( /* fcntl.h:512:1: */
+ FILESEC_OWNER = 1
+ FILESEC_GROUP = 2
+ FILESEC_UUID = 3
+ FILESEC_MODE = 4
+ FILESEC_ACL = 5
+ FILESEC_GRPUUID = 6
+
+ // XXX these are private to the implementation
+ FILESEC_ACL_RAW = 100
+ FILESEC_ACL_ALLOCSIZE = 101
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1983, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+
+// This file includes the definitions for open and fcntl
+// described by POSIX for <fcntl.h>; it also includes
+// related kernel definitions.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Descriptor value for the current working directory
+
+// Flags for the at functions
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Data Protection Flags
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flags field
+// and for backward compatibility for fcntl.
+
+// Flags used for copyfile(2)
+
+// Constants used for fcntl(2)
+
+// command values
+// 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP
+
+// should not be used (i.e. its ok to temporaily create cached pages)
+
+// See F_DUPFD_CLOEXEC below for 67
+
+// may be broken into smaller chunks with throttling in between
+
+// FS-specific fcntl()'s numbers begin at 0x00010000 and go up
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// [XSI] The values used for l_whence shall be defined as described
+// in <unistd.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// whence values for lseek(2)
+
+// [XSI] The symbolic names for file modes for use as values of mode_t
+// shall be defined as described in <sys/stat.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The symbolic names for file modes for use as values of mode_t
+// shall be defined as described in <sys/stat.h>
+// File type
+
+// File mode
+// Read, write, execute/search by owner
+// Read, write, execute/search by group
+// Read, write, execute/search by others
+
+// allocate flags (F_PREALLOCATE)
+
+// Position Modes (fst_posmode) for F_PREALLOCATE
+
+// we can keep them in sync should we desire
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:343:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// Advisory file segment locking with time out -
+// Information passed to system by user for F_SETLKWTIMEOUT
+type Flocktimeout = struct {
+ Ffl struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+ }
+ Ftimeout struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+} /* fcntl.h:358:1 */
+
+// advisory file read data type -
+// information passed by user to system
+
+type Radvisory = struct {
+ Fra_offset Off_t
+ Fra_count int32
+ F__ccgo_pad1 [4]byte
+} /* fcntl.h:371:1 */
+
+//* Information the user passes in to get the codeblobs out of the kernel
+type Fcodeblobs = struct {
+ Ff_cd_hash uintptr
+ Ff_hash_size Size_t
+ Ff_cd_buffer uintptr
+ Ff_cd_size Size_t
+ Ff_out_size uintptr
+ Ff_arch int32
+ F__padding int32
+} /* fcntl.h:378:9 */
+
+//* Information the user passes in to get the codeblobs out of the kernel
+type Fcodeblobs_t = Fcodeblobs /* fcntl.h:386:3 */
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start uintptr
+ Ffs_blob_size Size_t
+} /* fcntl.h:395:9 */
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures_t = Fsignatures /* fcntl.h:399:3 */
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv = struct {
+ Flv_file_start Off_t
+ Flv_error_message_size Size_t
+ Flv_error_message uintptr
+} /* fcntl.h:411:9 */
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv_t = Fchecklv /* fcntl.h:415:3 */
+
+// lock operations for flock(2)
+
+// fstore_t type used by F_PREALLOCATE command
+
+type Fstore = struct {
+ Ffst_flags uint32
+ Ffst_posmode int32
+ Ffst_offset Off_t
+ Ffst_length Off_t
+ Ffst_bytesalloc Off_t
+} /* fcntl.h:427:9 */
+
+// lock operations for flock(2)
+
+// fstore_t type used by F_PREALLOCATE command
+
+type Fstore_t = Fstore /* fcntl.h:433:3 */
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole = struct {
+ Ffp_flags uint32
+ Freserved uint32
+ Ffp_offset Off_t
+ Ffp_length Off_t
+} /* fcntl.h:436:9 */
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole_t = Fpunchhole /* fcntl.h:441:3 */
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile = struct {
+ Ffta_offset Off_t
+ Ffta_length Off_t
+} /* fcntl.h:444:9 */
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile_t = Ftrimactivefile /* fcntl.h:447:3 */
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread = struct {
+ Ffsr_flags uint32
+ Freserved uint32
+ Ffsr_offset Off_t
+ Ffsr_length Off_t
+} /* fcntl.h:450:9 */
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread_t = Fspecread /* fcntl.h:455:3 */
+
+// fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands
+
+type Fbootstraptransfer = struct {
+ Ffbt_offset Off_t
+ Ffbt_length Size_t
+ Ffbt_buffer uintptr
+} /* fcntl.h:459:9 */
+
+// fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands
+
+type Fbootstraptransfer_t = Fbootstraptransfer /* fcntl.h:463:3 */
+
+// For F_LOG2PHYS this information is passed back to user
+// Currently only devoffset is returned - that is the VOP_BMAP
+// result - the disk device address corresponding to the
+// current file offset (likely set with an lseek).
+//
+// The flags could hold an indication of whether the # of
+// contiguous bytes reflects the true extent length on disk,
+// or is an advisory value that indicates there is at least that
+// many bytes contiguous. For some filesystems it might be too
+// inefficient to provide anything beyond the advisory value.
+// Flags and contiguous bytes return values are not yet implemented.
+// For them the fcntl will nedd to switch from using BMAP to CMAP
+// and a per filesystem type flag will be needed to interpret the
+// contiguous bytes count result from CMAP.
+//
+// F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in
+// file offset and length instead of the current file offset.
+// F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but
+// treats it as an in/out.
+
+type Log2phys = struct {
+ Fl2p_flags uint32
+ F__ccgo_pad1 [4]byte
+ Fl2p_contigbytes Off_t
+ Fl2p_devoffset Off_t
+} /* fcntl.h:489:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+type Filesec_property_t = uint32 /* fcntl.h:523:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go b/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go
new file mode 100644
index 00000000..937a00e5
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go
@@ -0,0 +1,2055 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_darwin_arm64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x0010
+ AT_FDCWD = -2
+ AT_FDONLY = 0x0400
+ AT_REALDEV = 0x0200
+ AT_REMOVEDIR = 0x0080
+ AT_SYMLINK_FOLLOW = 0x0040
+ AT_SYMLINK_NOFOLLOW = 0x0020
+ CPF_IGNORE_MODE = 0x0002
+ CPF_MASK = 3
+ CPF_OVERWRITE = 0x0001
+ FAPPEND = 8
+ FASYNC = 64
+ FCNTL_FS_SPECIFIC_BASE = 0x00010000
+ FD_CLOEXEC = 1
+ FFDSYNC = 4194304
+ FFSYNC = 128
+ FNDELAY = 4
+ FNONBLOCK = 4
+ FREAD = 0x00000001
+ FWRITE = 0x00000002
+ F_ADDFILESIGS = 61
+ F_ADDFILESIGS_FOR_DYLD_SIM = 83
+ F_ADDFILESIGS_INFO = 103
+ F_ADDFILESIGS_RETURN = 97
+ F_ADDFILESUPPL = 104
+ F_ADDSIGS = 59
+ F_ALLOCATEALL = 0x00000004
+ F_ALLOCATECONTIG = 0x00000002
+ F_BARRIERFSYNC = 85
+ F_CHECK_LV = 98
+ F_CHKCLEAN = 41
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 67
+ F_FINDSIGS = 78
+ F_FLUSH_DATA = 40
+ F_FREEZE_FS = 53
+ F_FULLFSYNC = 51
+ F_GETCODEDIR = 72
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 7
+ F_GETLKPID = 66
+ F_GETNOSIGPIPE = 74
+ F_GETOWN = 5
+ F_GETPATH = 50
+ F_GETPATH_MTMINFO = 71
+ F_GETPATH_NOFIRMLINK = 102
+ F_GETPROTECTIONCLASS = 63
+ F_GETPROTECTIONLEVEL = 77
+ F_GETSIGSINFO = 105
+ F_GLOBAL_NOCACHE = 55
+ F_LOG2PHYS = 49
+ F_LOG2PHYS_EXT = 65
+ F_NOCACHE = 48
+ F_NODIRECT = 62
+ F_PATHPKG_CHECK = 52
+ F_PEOFPOSMODE = 3
+ F_PREALLOCATE = 42
+ F_PUNCHHOLE = 99
+ F_RDADVISE = 44
+ F_RDAHEAD = 45
+ F_RDLCK = 1
+ F_SETBACKINGSTORE = 70
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 8
+ F_SETLKW = 9
+ F_SETLKWTIMEOUT = 10
+ F_SETNOSIGPIPE = 73
+ F_SETOWN = 6
+ F_SETPROTECTIONCLASS = 64
+ F_SETSIZE = 43
+ F_SINGLE_WRITER = 76
+ F_SPECULATIVE_READ = 101
+ F_THAW_FS = 54
+ F_TRANSCODEKEY = 75
+ F_TRIM_ACTIVE_FILE = 100
+ F_UNLCK = 2
+ F_VOLPOSMODE = 4
+ F_WRLCK = 3
+ GETSIGSINFO_PLATFORM_BINARY = 1
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ O_ACCMODE = 0x0003
+ O_ALERT = 0x20000000
+ O_APPEND = 0x00000008
+ O_ASYNC = 0x00000040
+ O_CLOEXEC = 0x01000000
+ O_CREAT = 0x00000200
+ O_DIRECTORY = 0x00100000
+ O_DP_GETRAWENCRYPTED = 0x0001
+ O_DP_GETRAWUNENCRYPTED = 0x0002
+ O_DSYNC = 0x400000
+ O_EVTONLY = 0x00008000
+ O_EXCL = 0x00000800
+ O_EXLOCK = 0x00000020
+ O_FSYNC = 128
+ O_NDELAY = 4
+ O_NOCTTY = 0x00020000
+ O_NOFOLLOW = 0x00000100
+ O_NOFOLLOW_ANY = 0x20000000
+ O_NONBLOCK = 0x00000004
+ O_POPUP = 0x80000000
+ O_RDONLY = 0x0000
+ O_RDWR = 0x0002
+ O_SHLOCK = 0x00000010
+ O_SYMLINK = 0x00200000
+ O_SYNC = 0x0080
+ O_TRUNC = 0x00000400
+ O_WRONLY = 0x0001
+ SEEK_CUR = 1
+ SEEK_DATA = 4
+ SEEK_END = 2
+ SEEK_HOLE = 3
+ SEEK_SET = 0
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ USER_FSIGNATURES_CDHASH_LEN = 20
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_PID_T = 0
+ X_SIZE_T = 0
+ X_SYS_FCNTL_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+const ( /* fcntl.h:545:1: */
+ FILESEC_OWNER = 1
+ FILESEC_GROUP = 2
+ FILESEC_UUID = 3
+ FILESEC_MODE = 4
+ FILESEC_ACL = 5
+ FILESEC_GRPUUID = 6
+
+ // XXX these are private to the implementation
+ FILESEC_ACL_RAW = 100
+ FILESEC_ACL_ALLOCSIZE = 101
+)
+
+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 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1983, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+
+// This file includes the definitions for open and fcntl
+// described by POSIX for <fcntl.h>; it also includes
+// related kernel definitions.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// O_DSYNC 0x00400000 /* synch I/O data integrity */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Descriptor value for the current working directory
+
+// Flags for the at functions
+
+// Data Protection Flags
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flags field
+// and for backward compatibility for fcntl.
+
+// Flags used for copyfile(2)
+
+// Constants used for fcntl(2)
+
+// command values
+// 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP
+
+// should not be used (i.e. its ok to temporaily create cached pages)
+
+// See F_DUPFD_CLOEXEC below for 67
+
+// may be broken into smaller chunks with throttling in between
+
+// FS-specific fcntl()'s numbers begin at 0x00010000 and go up
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// [XSI] The values used for l_whence shall be defined as described
+// in <unistd.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// whence values for lseek(2)
+
+// [XSI] The symbolic names for file modes for use as values of mode_t
+// shall be defined as described in <sys/stat.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The symbolic names for file modes for use as values of mode_t
+// shall be defined as described in <sys/stat.h>
+// File type
+
+// File mode
+// Read, write, execute/search by owner
+// Read, write, execute/search by group
+// Read, write, execute/search by others
+
+// allocate flags (F_PREALLOCATE)
+
+// Position Modes (fst_posmode) for F_PREALLOCATE
+
+// we can keep them in sync should we desire
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:359:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// Advisory file segment locking with time out -
+// Information passed to system by user for F_SETLKWTIMEOUT
+type Flocktimeout = struct {
+ Ffl struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+ }
+ Ftimeout struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+} /* fcntl.h:374:1 */
+
+// advisory file read data type -
+// information passed by user to system
+
+type Radvisory = struct {
+ Fra_offset Off_t
+ Fra_count int32
+ F__ccgo_pad1 [4]byte
+} /* fcntl.h:387:1 */
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start uintptr
+ Ffs_blob_size Size_t
+ Ffs_fsignatures_size Size_t
+ Ffs_cdhash [20]int8
+ Ffs_hash_type int32
+} /* fcntl.h:400:9 */
+
+// detached code signatures data type -
+// information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+// F_ADDFILESIGS is a shortcut for files that contain their own signature and
+// doesn't require mapping of the file in order to load the signature.
+type Fsignatures_t = Fsignatures /* fcntl.h:410:3 */
+
+type Fsupplement = struct {
+ Ffs_file_start Off_t
+ Ffs_blob_start Off_t
+ Ffs_blob_size Size_t
+ Ffs_orig_fd int32
+ F__ccgo_pad1 [4]byte
+} /* fcntl.h:412:9 */
+
+type Fsupplement_t = Fsupplement /* fcntl.h:417:3 */
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv = struct {
+ Flv_file_start Off_t
+ Flv_error_message_size Size_t
+ Flv_error_message uintptr
+} /* fcntl.h:431:9 */
+
+// DYLD needs to check if the object is allowed to be combined
+// into the main binary. This is done between the code signature
+// is loaded and dyld is doing all the work to process the LOAD commands.
+//
+// While this could be done in F_ADDFILESIGS.* family the hook into
+// the MAC module doesn't say no when LV isn't enabled and then that
+// is cached on the vnode, and the MAC module never gets change once
+// a process that library validation enabled.
+type Fchecklv_t = Fchecklv /* fcntl.h:435:3 */
+
+// At this time F_GETSIGSINFO can only indicate platformness.
+// As additional requestable information is defined, new keys will be added and the
+// fgetsigsinfo_t structure will be lengthened to add space for the additional information
+
+// fgetsigsinfo_t used by F_GETSIGSINFO command
+type Fgetsigsinfo = struct {
+ Ffg_file_start Off_t
+ Ffg_info_request int32
+ Ffg_sig_is_platform int32
+} /* fcntl.h:445:9 */
+
+// At this time F_GETSIGSINFO can only indicate platformness.
+// As additional requestable information is defined, new keys will be added and the
+// fgetsigsinfo_t structure will be lengthened to add space for the additional information
+
+// fgetsigsinfo_t used by F_GETSIGSINFO command
+type Fgetsigsinfo_t = Fgetsigsinfo /* fcntl.h:449:3 */
+
+// lock operations for flock(2)
+
+// fstore_t type used by F_PREALLOCATE command
+
+type Fstore = struct {
+ Ffst_flags uint32
+ Ffst_posmode int32
+ Ffst_offset Off_t
+ Ffst_length Off_t
+ Ffst_bytesalloc Off_t
+} /* fcntl.h:460:9 */
+
+// lock operations for flock(2)
+
+// fstore_t type used by F_PREALLOCATE command
+
+type Fstore_t = Fstore /* fcntl.h:466:3 */
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole = struct {
+ Ffp_flags uint32
+ Freserved uint32
+ Ffp_offset Off_t
+ Ffp_length Off_t
+} /* fcntl.h:469:9 */
+
+// fpunchhole_t used by F_PUNCHHOLE
+type Fpunchhole_t = Fpunchhole /* fcntl.h:474:3 */
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile = struct {
+ Ffta_offset Off_t
+ Ffta_length Off_t
+} /* fcntl.h:477:9 */
+
+// factive_file_trim_t used by F_TRIM_ACTIVE_FILE
+type Ftrimactivefile_t = Ftrimactivefile /* fcntl.h:480:3 */
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread = struct {
+ Ffsr_flags uint32
+ Freserved uint32
+ Ffsr_offset Off_t
+ Ffsr_length Off_t
+} /* fcntl.h:483:9 */
+
+// fspecread_t used by F_SPECULATIVE_READ
+type Fspecread_t = Fspecread /* fcntl.h:488:3 */
+
+// fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands
+
+type Fbootstraptransfer = struct {
+ Ffbt_offset Off_t
+ Ffbt_length Size_t
+ Ffbt_buffer uintptr
+} /* fcntl.h:492:9 */
+
+// fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands
+
+type Fbootstraptransfer_t = Fbootstraptransfer /* fcntl.h:496:3 */
+
+// For F_LOG2PHYS this information is passed back to user
+// Currently only devoffset is returned - that is the VOP_BMAP
+// result - the disk device address corresponding to the
+// current file offset (likely set with an lseek).
+//
+// The flags could hold an indication of whether the # of
+// contiguous bytes reflects the true extent length on disk,
+// or is an advisory value that indicates there is at least that
+// many bytes contiguous. For some filesystems it might be too
+// inefficient to provide anything beyond the advisory value.
+// Flags and contiguous bytes return values are not yet implemented.
+// For them the fcntl will nedd to switch from using BMAP to CMAP
+// and a per filesystem type flag will be needed to interpret the
+// contiguous bytes count result from CMAP.
+//
+// F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in
+// file offset and length instead of the current file offset.
+// F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but
+// treats it as an in/out.
+
+type Log2phys = struct {
+ Fl2p_flags uint32
+ F__ccgo_pad1 [4]byte
+ Fl2p_contigbytes Off_t
+ Fl2p_devoffset Off_t
+} /* fcntl.h:522:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+type Filesec_property_t = uint32 /* fcntl.h:556:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go b/vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go
new file mode 100644
index 00000000..b49f8e76
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go
@@ -0,0 +1,766 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_freebsd_386.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x0100
+ AT_EMPTY_PATH = 0x4000
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x0800
+ AT_RESOLVE_BENEATH = 0x2000
+ AT_SYMLINK_FOLLOW = 0x0400
+ AT_SYMLINK_NOFOLLOW = 0x0200
+ FAPPEND = 8
+ FASYNC = 64
+ FDSYNC = 16777216
+ FD_CLOEXEC = 1
+ FD_NONE = -200
+ FFSYNC = 128
+ FNDELAY = 4
+ FNONBLOCK = 4
+ FRDAHEAD = 512
+ FREAD = 0x0001
+ FWRITE = 0x0002
+ F_ADD_SEALS = 19
+ F_CANCEL = 5
+ F_DUP2FD = 10
+ F_DUP2FD_CLOEXEC = 18
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 17
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 11
+ F_GETOWN = 5
+ F_GET_SEALS = 20
+ F_ISUNIONSTACK = 21
+ F_KINFO = 22
+ F_OGETLK = 7
+ F_OSETLK = 8
+ F_OSETLKW = 9
+ F_RDAHEAD = 16
+ F_RDLCK = 1
+ F_READAHEAD = 15
+ F_SEAL_GROW = 0x0004
+ F_SEAL_SEAL = 0x0001
+ F_SEAL_SHRINK = 0x0002
+ F_SEAL_WRITE = 0x0008
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 12
+ F_SETLKW = 13
+ F_SETLK_REMOTE = 14
+ F_SETOWN = 6
+ F_UNLCK = 2
+ F_UNLCKSYS = 4
+ F_WRLCK = 3
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ O_ACCMODE = 0x0003
+ O_APPEND = 0x0008
+ O_ASYNC = 0x0040
+ O_CLOEXEC = 0x00100000
+ O_CREAT = 0x0200
+ O_DIRECT = 0x00010000
+ O_DIRECTORY = 0x00020000
+ O_DSYNC = 0x01000000
+ O_EMPTY_PATH = 0x02000000
+ O_EXCL = 0x0800
+ O_EXEC = 0x00040000
+ O_EXLOCK = 0x0020
+ O_FSYNC = 0x0080
+ O_NDELAY = 4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x0100
+ O_NONBLOCK = 0x0004
+ O_PATH = 0x00400000
+ O_RDONLY = 0x0000
+ O_RDWR = 0x0002
+ O_RESOLVE_BENEATH = 0x00800000
+ O_SEARCH = 262144
+ O_SHLOCK = 0x0010
+ O_SYNC = 0x0080
+ O_TRUNC = 0x0400
+ O_TTY_INIT = 0x00080000
+ O_VERIFY = 0x00200000
+ O_WRONLY = 0x0001
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MODE_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T_DECLARED = 0
+ X_PID_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_FCNTL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1983, 1990, 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.
+//
+// @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// This file includes the definitions for open and fcntl
+// described by POSIX for <fcntl.h>; it also includes
+// related kernel definitions.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Mode_t = X__mode_t /* fcntl.h:53:18 */
+
+type Off_t = X__off_t /* fcntl.h:58:18 */
+
+type Pid_t = X__pid_t /* fcntl.h:63:18 */
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+
+// Defined by POSIX 1003.1; BSD default, but must be distinct from O_RDONLY.
+
+// Attempt to bypass buffer cache
+
+// Defined by POSIX 1003.1-2008; BSD default, but reserve for future use.
+
+// XXX missing O_RSYNC.
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flag field
+// and for backward compatibility for fcntl. These flags are deprecated.
+
+// Historically, we ran out of bits in f_flag (which was once a short).
+// However, the flag bits not set in FMASK are only meaningful in the
+// initial open syscall. Those bits were thus given a
+// different meaning for fcntl(2).
+// Read ahead
+
+// Magic value that specify the use of the current working directory
+// to determine the target of relative file paths in the openat() and
+// similar syscalls.
+
+// Miscellaneous flags for the *at() syscalls.
+/* #define AT_UNUSED1 0x1000 */ // Was AT_BENEATH
+
+// Constants used for fcntl(2)
+
+// command values
+
+// Seals (F_ADD_SEALS, F_GET_SEALS).
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+ Fl_sysid int32
+} /* fcntl.h:306:1 */
+
+// Old advisory file segment locking data type,
+// before adding l_sysid.
+type X__oflock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:320:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_freebsd_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_freebsd_amd64.go
new file mode 100644
index 00000000..4afbfb69
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_freebsd_amd64.go
@@ -0,0 +1,770 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_freebsd_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x0100
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x0800
+ AT_RESOLVE_BENEATH = 0x2000
+ AT_SYMLINK_FOLLOW = 0x0400
+ AT_SYMLINK_NOFOLLOW = 0x0200
+ FAPPEND = 8
+ FASYNC = 64
+ FDSYNC = 16777216
+ FD_CLOEXEC = 1
+ FD_NONE = -200
+ FFSYNC = 128
+ FNDELAY = 4
+ FNONBLOCK = 4
+ FRDAHEAD = 512
+ FREAD = 0x0001
+ FWRITE = 0x0002
+ F_ADD_SEALS = 19
+ F_CANCEL = 5
+ F_DUP2FD = 10
+ F_DUP2FD_CLOEXEC = 18
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 17
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 11
+ F_GETOWN = 5
+ F_GET_SEALS = 20
+ F_ISUNIONSTACK = 21
+ F_OGETLK = 7
+ F_OSETLK = 8
+ F_OSETLKW = 9
+ F_RDAHEAD = 16
+ F_RDLCK = 1
+ F_READAHEAD = 15
+ F_SEAL_GROW = 0x0004
+ F_SEAL_SEAL = 0x0001
+ F_SEAL_SHRINK = 0x0002
+ F_SEAL_WRITE = 0x0008
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 12
+ F_SETLKW = 13
+ F_SETLK_REMOTE = 14
+ F_SETOWN = 6
+ F_UNLCK = 2
+ F_UNLCKSYS = 4
+ F_WRLCK = 3
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ O_ACCMODE = 0x0003
+ O_APPEND = 0x0008
+ O_ASYNC = 0x0040
+ O_CLOEXEC = 0x00100000
+ O_CREAT = 0x0200
+ O_DIRECT = 0x00010000
+ O_DIRECTORY = 0x00020000
+ O_DSYNC = 0x01000000
+ O_EXCL = 0x0800
+ O_EXEC = 0x00040000
+ O_EXLOCK = 0x0020
+ O_FSYNC = 0x0080
+ O_NDELAY = 4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x0100
+ O_NONBLOCK = 0x0004
+ O_RDONLY = 0x0000
+ O_RDWR = 0x0002
+ O_RESOLVE_BENEATH = 0x00800000
+ O_SEARCH = 262144
+ O_SHLOCK = 0x0010
+ O_SYNC = 0x0080
+ O_TRUNC = 0x0400
+ O_TTY_INIT = 0x00080000
+ O_VERIFY = 0x00200000
+ O_WRONLY = 0x0001
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MODE_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T_DECLARED = 0
+ X_PID_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_FCNTL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1983, 1990, 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.
+//
+// @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// This file includes the definitions for open and fcntl
+// described by POSIX for <fcntl.h>; it also includes
+// related kernel definitions.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Mode_t = X__mode_t /* fcntl.h:53:18 */
+
+type Off_t = X__off_t /* fcntl.h:58:18 */
+
+type Pid_t = X__pid_t /* fcntl.h:63:18 */
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+
+// Defined by POSIX 1003.1; BSD default, but must be distinct from O_RDONLY.
+
+// Attempt to bypass buffer cache
+
+// Defined by POSIX 1003.1-2008; BSD default, but reserve for future use.
+
+/* #define O_UNUSED1 0x00400000 */ // Was O_BENEATH
+
+// XXX missing O_RSYNC.
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flag field
+// and for backward compatibility for fcntl. These flags are deprecated.
+
+// Historically, we ran out of bits in f_flag (which was once a short).
+// However, the flag bits not set in FMASK are only meaningful in the
+// initial open syscall. Those bits were thus given a
+// different meaning for fcntl(2).
+// Read ahead
+
+// Magic value that specify the use of the current working directory
+// to determine the target of relative file paths in the openat() and
+// similar syscalls.
+
+// Miscellaneous flags for the *at() syscalls.
+/* #define AT_UNUSED1 0x1000 */ // Was AT_BENEATH
+
+// Constants used for fcntl(2)
+
+// command values
+
+// Seals (F_ADD_SEALS, F_GET_SEALS).
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+ Fl_sysid int32
+ F__ccgo_pad1 [4]byte
+} /* fcntl.h:294:1 */
+
+// Old advisory file segment locking data type,
+// before adding l_sysid.
+type X__oflock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:308:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_linux_386.go b/vendor/modernc.org/libc/fcntl/fcntl_linux_386.go
new file mode 100644
index 00000000..bcf733b6
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_linux_386.go
@@ -0,0 +1,1068 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_386.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x200
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+ FAPPEND = 1024
+ FASYNC = 8192
+ FD_CLOEXEC = 1
+ FFSYNC = 1052672
+ FNDELAY = 2048
+ FNONBLOCK = 2048
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 1030
+ F_EXLCK = 4
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 12
+ F_GETLK64 = 12
+ F_GETOWN = 9
+ F_LOCK = 1
+ F_OK = 0
+ F_RDLCK = 0
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 13
+ F_SETLK64 = 13
+ F_SETLKW = 14
+ F_SETLKW64 = 14
+ F_SETOWN = 8
+ F_SHLCK = 8
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ F_UNLCK = 2
+ F_WRLCK = 1
+ LOCK_EX = 2
+ LOCK_NB = 4
+ LOCK_SH = 1
+ LOCK_UN = 8
+ O_ACCMODE = 0003
+ O_APPEND = 02000
+ O_ASYNC = 020000
+ O_CLOEXEC = 524288
+ O_CREAT = 0100
+ O_DIRECTORY = 65536
+ O_DSYNC = 4096
+ O_EXCL = 0200
+ O_FSYNC = 1052672
+ O_NDELAY = 2048
+ O_NOCTTY = 0400
+ O_NOFOLLOW = 131072
+ O_NONBLOCK = 04000
+ O_RDONLY = 00
+ O_RDWR = 02
+ O_RSYNC = 1052672
+ O_SYNC = 04010000
+ O_TRUNC = 01000
+ O_WRONLY = 01
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ 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_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_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ W_OK = 2
+ X_OK = 1
+ 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_FCNTL_H = 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
+ 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 = 3
+ X_STAT_VER_KERNEL = 1
+ X_STAT_VER_LINUX = 3
+ X_STAT_VER_LINUX_OLD = 1
+ X_STAT_VER_SVR4 = 2
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 6.5 File Control Operations <fcntl.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// This must be early so <bits/fcntl.h> can define types winningly.
+
+// Get __mode_t, __dev_t and __off_t .
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Get the definitions of O_*, F_*, FD_*: all the
+// numbers and flag bits for `open', `fcntl', et al.
+// O_*, F_*, FD_* bit values for Linux/x86.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+type Flock = struct {
+ Fl_type int16
+ Fl_whence int16
+ Fl_start X__off64_t
+ Fl_len X__off64_t
+ Fl_pid X__pid_t
+} /* fcntl.h:35:1 */
+
+// Include generic Linux declarations.
+// O_*, F_*, FD_* bit values for Linux.
+// Copyright (C) 2001-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This file contains shared definitions between Linux architectures
+// and is included by <bits/fcntl.h> to declare them. The various
+// #ifndef cases allow the architecture specific file to define those
+// values with different values.
+//
+// A minimal <bits/fcntl.h> contains just:
+//
+// struct flock {...}
+// #ifdef __USE_LARGEFILE64
+// struct flock64 {...}
+// #endif
+// #include <bits/fcntl-linux.h>
+
+// open/fcntl.
+
+// open file description locks.
+//
+// Usually record locks held by a process are released on *any* close and are
+// not inherited across a fork.
+//
+// These cmd values will set locks that conflict with process-associated record
+// locks, but are "owned" by the opened file description, not the process.
+// This means that they are inherited across fork or clone with CLONE_FILES
+// like BSD (flock) locks, and they are only released automatically when the
+// last reference to the the file description against which they were acquired
+// is put.
+
+// For now, Linux has no separate synchronicity options for read
+// operations. We define O_RSYNC therefore as the same as O_SYNC
+// since this is a superset.
+
+// Values for the second argument to `fcntl'.
+
+// For F_[GET|SET]FD.
+
+// For posix fcntl() and `l_type' field of a `struct flock' for lockf().
+
+// For old implementation of BSD flock.
+
+// Operations for BSD flock, also used by the kernel implementation.
+
+// Define some more compatibility macros to be backward compatible with
+// BSD systems which did not managed to hide these kernel macros.
+
+// Advise to `posix_fadvise'.
+
+// Values for `*at' functions.
+
+// Detect if open needs mode as a third argument (or for openat as a fourth
+// argument).
+
+// POSIX.1-2001 specifies that these types are defined by <fcntl.h>.
+// Earlier POSIX standards permitted any type ending in `_t' to be defined
+// by any POSIX header, so we don't conditionalize the definitions here.
+type Mode_t = X__mode_t /* fcntl.h:50:18 */
+
+type Off_t = X__off64_t /* fcntl.h:58:19 */
+
+type Pid_t = X__pid_t /* fcntl.h:69:17 */
+
+// For XPG all symbols from <sys/stat.h> should also be available.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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/>.
+
+// Versions of the `struct stat' data structure.
+
+// i386 versions of the `xmknod' interface.
+
+type Stat = 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
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ino X__ino64_t
+} /* stat.h:46:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_linux_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_linux_amd64.go
new file mode 100644
index 00000000..ff6e090d
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_linux_amd64.go
@@ -0,0 +1,1083 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x200
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+ FAPPEND = 1024
+ FASYNC = 8192
+ FD_CLOEXEC = 1
+ FFSYNC = 1052672
+ FNDELAY = 2048
+ FNONBLOCK = 2048
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 1030
+ F_EXLCK = 4
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 5
+ F_GETLK64 = 5
+ F_GETOWN = 9
+ F_LOCK = 1
+ F_OK = 0
+ F_RDLCK = 0
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 6
+ F_SETLK64 = 6
+ F_SETLKW = 7
+ F_SETLKW64 = 7
+ F_SETOWN = 8
+ F_SHLCK = 8
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ F_UNLCK = 2
+ F_WRLCK = 1
+ LOCK_EX = 2
+ LOCK_NB = 4
+ LOCK_SH = 1
+ LOCK_UN = 8
+ O_ACCMODE = 0003
+ O_APPEND = 02000
+ O_ASYNC = 020000
+ O_CLOEXEC = 524288
+ O_CREAT = 0100
+ O_DIRECTORY = 65536
+ O_DSYNC = 4096
+ O_EXCL = 0200
+ O_FSYNC = 1052672
+ O_NDELAY = 2048
+ O_NOCTTY = 0400
+ O_NOFOLLOW = 131072
+ O_NONBLOCK = 04000
+ O_RDONLY = 00
+ O_RDWR = 02
+ O_RSYNC = 1052672
+ O_SYNC = 04010000
+ O_TRUNC = 01000
+ O_WRONLY = 01
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ 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_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_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ W_OK = 2
+ X_OK = 1
+ 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_FCNTL_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ 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 = 1
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 1
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 6.5 File Control Operations <fcntl.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// This must be early so <bits/fcntl.h> can define types winningly.
+
+// Get __mode_t, __dev_t and __off_t .
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Get the definitions of O_*, F_*, FD_*: all the
+// numbers and flag bits for `open', `fcntl', et al.
+// O_*, F_*, FD_* bit values for Linux/x86.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+// Not necessary, we always have 64-bit offsets.
+
+type Flock = struct {
+ Fl_type int16
+ Fl_whence int16
+ F__ccgo_pad1 [4]byte
+ Fl_start X__off64_t
+ Fl_len X__off64_t
+ Fl_pid X__pid_t
+ F__ccgo_pad2 [4]byte
+} /* fcntl.h:35:1 */
+
+// Include generic Linux declarations.
+// O_*, F_*, FD_* bit values for Linux.
+// Copyright (C) 2001-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This file contains shared definitions between Linux architectures
+// and is included by <bits/fcntl.h> to declare them. The various
+// #ifndef cases allow the architecture specific file to define those
+// values with different values.
+//
+// A minimal <bits/fcntl.h> contains just:
+//
+// struct flock {...}
+// #ifdef __USE_LARGEFILE64
+// struct flock64 {...}
+// #endif
+// #include <bits/fcntl-linux.h>
+
+// open/fcntl.
+
+// open file description locks.
+//
+// Usually record locks held by a process are released on *any* close and are
+// not inherited across a fork.
+//
+// These cmd values will set locks that conflict with process-associated record
+// locks, but are "owned" by the opened file description, not the process.
+// This means that they are inherited across fork or clone with CLONE_FILES
+// like BSD (flock) locks, and they are only released automatically when the
+// last reference to the the file description against which they were acquired
+// is put.
+
+// For now, Linux has no separate synchronicity options for read
+// operations. We define O_RSYNC therefore as the same as O_SYNC
+// since this is a superset.
+
+// Values for the second argument to `fcntl'.
+
+// For F_[GET|SET]FD.
+
+// For posix fcntl() and `l_type' field of a `struct flock' for lockf().
+
+// For old implementation of BSD flock.
+
+// Operations for BSD flock, also used by the kernel implementation.
+
+// Define some more compatibility macros to be backward compatible with
+// BSD systems which did not managed to hide these kernel macros.
+
+// Advise to `posix_fadvise'.
+
+// Values for `*at' functions.
+
+// Detect if open needs mode as a third argument (or for openat as a fourth
+// argument).
+
+// POSIX.1-2001 specifies that these types are defined by <fcntl.h>.
+// Earlier POSIX standards permitted any type ending in `_t' to be defined
+// by any POSIX header, so we don't conditionalize the definitions here.
+type Mode_t = X__mode_t /* fcntl.h:50:18 */
+
+type Off_t = X__off64_t /* fcntl.h:58:19 */
+
+type Pid_t = X__pid_t /* fcntl.h:69:17 */
+
+// For XPG all symbols from <sys/stat.h> should also be available.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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/>.
+
+// Versions of the `struct stat' data structure.
+
+// x86-64 versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino_t
+ Fst_nlink X__nlink_t
+ Fst_mode X__mode_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__pad0 int32
+ Fst_rdev X__dev_t
+ Fst_size X__off_t
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ F__glibc_reserved [3]X__syscall_slong_t
+} /* stat.h:46:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_linux_arm.go b/vendor/modernc.org/libc/fcntl/fcntl_linux_arm.go
new file mode 100644
index 00000000..a2dcc7d0
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_linux_arm.go
@@ -0,0 +1,1130 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_arm.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x200
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+ FAPPEND = 1024
+ FASYNC = 8192
+ FD_CLOEXEC = 1
+ FFSYNC = 1052672
+ FNDELAY = 2048
+ FNONBLOCK = 2048
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 1030
+ F_EXLCK = 4
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 12
+ F_GETLK64 = 12
+ F_GETOWN = 9
+ F_LOCK = 1
+ F_OK = 0
+ F_RDLCK = 0
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 13
+ F_SETLK64 = 13
+ F_SETLKW = 14
+ F_SETLKW64 = 14
+ F_SETOWN = 8
+ F_SHLCK = 8
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ F_UNLCK = 2
+ F_WRLCK = 1
+ LOCK_EX = 2
+ LOCK_NB = 4
+ LOCK_SH = 1
+ LOCK_UN = 8
+ O_ACCMODE = 0003
+ O_APPEND = 02000
+ O_ASYNC = 020000
+ O_CLOEXEC = 524288
+ O_CREAT = 0100
+ O_DIRECTORY = 16384
+ O_DSYNC = 4096
+ O_EXCL = 0200
+ O_FSYNC = 1052672
+ O_NDELAY = 2048
+ O_NOCTTY = 0400
+ O_NOFOLLOW = 32768
+ O_NONBLOCK = 04000
+ O_RDONLY = 00
+ O_RDWR = 02
+ O_RSYNC = 1052672
+ O_SYNC = 04010000
+ O_TRUNC = 01000
+ O_WRONLY = 01
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ 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_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_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ W_OK = 2
+ X_OK = 1
+ 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_FCNTL_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_MKNOD_VER = 1
+ X_MKNOD_VER_LINUX = 1
+ X_MKNOD_VER_SVR4 = 2
+ 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 = 3
+ X_STAT_VER_KERNEL = 1
+ X_STAT_VER_LINUX = 3
+ X_STAT_VER_LINUX_OLD = 1
+ X_STAT_VER_SVR4 = 2
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 6.5 File Control Operations <fcntl.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// This must be early so <bits/fcntl.h> can define types winningly.
+
+// Get __mode_t, __dev_t and __off_t .
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Get the definitions of O_*, F_*, FD_*: all the
+// numbers and flag bits for `open', `fcntl', et al.
+// O_*, F_*, FD_* bit values for Linux.
+// 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
+// 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/>.
+
+type Flock = struct {
+ Fl_type int16
+ Fl_whence int16
+ F__ccgo_pad1 [4]byte
+ Fl_start X__off64_t
+ Fl_len X__off64_t
+ Fl_pid X__pid_t
+ F__ccgo_pad2 [4]byte
+} /* fcntl.h:28:1 */
+
+// Include generic Linux declarations.
+// O_*, F_*, FD_* bit values for Linux.
+// Copyright (C) 2001-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This file contains shared definitions between Linux architectures
+// and is included by <bits/fcntl.h> to declare them. The various
+// #ifndef cases allow the architecture specific file to define those
+// values with different values.
+//
+// A minimal <bits/fcntl.h> contains just:
+//
+// struct flock {...}
+// #ifdef __USE_LARGEFILE64
+// struct flock64 {...}
+// #endif
+// #include <bits/fcntl-linux.h>
+
+// open/fcntl.
+
+// open file description locks.
+//
+// Usually record locks held by a process are released on *any* close and are
+// not inherited across a fork.
+//
+// These cmd values will set locks that conflict with process-associated record
+// locks, but are "owned" by the opened file description, not the process.
+// This means that they are inherited across fork or clone with CLONE_FILES
+// like BSD (flock) locks, and they are only released automatically when the
+// last reference to the the file description against which they were acquired
+// is put.
+
+// For now, Linux has no separate synchronicity options for read
+// operations. We define O_RSYNC therefore as the same as O_SYNC
+// since this is a superset.
+
+// Values for the second argument to `fcntl'.
+
+// For F_[GET|SET]FD.
+
+// For posix fcntl() and `l_type' field of a `struct flock' for lockf().
+
+// For old implementation of BSD flock.
+
+// Operations for BSD flock, also used by the kernel implementation.
+
+// Define some more compatibility macros to be backward compatible with
+// BSD systems which did not managed to hide these kernel macros.
+
+// Advise to `posix_fadvise'.
+
+// Values for `*at' functions.
+
+// Detect if open needs mode as a third argument (or for openat as a fourth
+// argument).
+
+// POSIX.1-2001 specifies that these types are defined by <fcntl.h>.
+// Earlier POSIX standards permitted any type ending in `_t' to be defined
+// by any POSIX header, so we don't conditionalize the definitions here.
+type Mode_t = X__mode_t /* fcntl.h:50:18 */
+
+type Off_t = X__off64_t /* fcntl.h:58:19 */
+
+type Pid_t = X__pid_t /* fcntl.h:69:17 */
+
+// For XPG all symbols from <sys/stat.h> should also be available.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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
+// <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
+ 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
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ino X__ino64_t
+} /* stat.h:38:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_linux_arm64.go b/vendor/modernc.org/libc/fcntl/fcntl_linux_arm64.go
new file mode 100644
index 00000000..8db44f6e
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_linux_arm64.go
@@ -0,0 +1,1195 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_arm64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x200
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+ FAPPEND = 1024
+ FASYNC = 8192
+ FD_CLOEXEC = 1
+ FFSYNC = 1052672
+ FNDELAY = 2048
+ FNONBLOCK = 2048
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 1030
+ F_EXLCK = 4
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 5
+ F_GETLK64 = 5
+ F_GETOWN = 9
+ F_LOCK = 1
+ F_OK = 0
+ F_RDLCK = 0
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 6
+ F_SETLK64 = 6
+ F_SETLKW = 7
+ F_SETLKW64 = 7
+ F_SETOWN = 8
+ F_SHLCK = 8
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ F_UNLCK = 2
+ F_WRLCK = 1
+ LOCK_EX = 2
+ LOCK_NB = 4
+ LOCK_SH = 1
+ LOCK_UN = 8
+ O_ACCMODE = 0003
+ O_APPEND = 02000
+ O_ASYNC = 020000
+ O_CLOEXEC = 524288
+ O_CREAT = 0100
+ O_DIRECTORY = 16384
+ O_DSYNC = 4096
+ O_EXCL = 0200
+ O_FSYNC = 1052672
+ O_NDELAY = 2048
+ O_NOCTTY = 0400
+ O_NOFOLLOW = 32768
+ O_NONBLOCK = 04000
+ O_RDONLY = 00
+ O_RDWR = 02
+ O_RSYNC = 1052672
+ O_SYNC = 04010000
+ O_TRUNC = 01000
+ O_WRONLY = 01
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ 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_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_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ W_OK = 2
+ X_OK = 1
+ 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_FCNTL_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 6.5 File Control Operations <fcntl.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// This must be early so <bits/fcntl.h> can define types winningly.
+
+// Get __mode_t, __dev_t and __off_t .
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Get the definitions of O_*, F_*, FD_*: all the
+// numbers and flag bits for `open', `fcntl', et al.
+// O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
+// Copyright (C) 2011-2020 Free Software 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/>.
+
+type Flock = struct {
+ Fl_type int16
+ Fl_whence int16
+ F__ccgo_pad1 [4]byte
+ Fl_start X__off_t
+ Fl_len X__off_t
+ Fl_pid X__pid_t
+ F__ccgo_pad2 [4]byte
+} /* fcntl.h:40:1 */
+
+// Include generic Linux declarations.
+// O_*, F_*, FD_* bit values for Linux.
+// Copyright (C) 2001-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This file contains shared definitions between Linux architectures
+// and is included by <bits/fcntl.h> to declare them. The various
+// #ifndef cases allow the architecture specific file to define those
+// values with different values.
+//
+// A minimal <bits/fcntl.h> contains just:
+//
+// struct flock {...}
+// #ifdef __USE_LARGEFILE64
+// struct flock64 {...}
+// #endif
+// #include <bits/fcntl-linux.h>
+
+// open/fcntl.
+
+// open file description locks.
+//
+// Usually record locks held by a process are released on *any* close and are
+// not inherited across a fork.
+//
+// These cmd values will set locks that conflict with process-associated record
+// locks, but are "owned" by the opened file description, not the process.
+// This means that they are inherited across fork or clone with CLONE_FILES
+// like BSD (flock) locks, and they are only released automatically when the
+// last reference to the the file description against which they were acquired
+// is put.
+
+// For now, Linux has no separate synchronicity options for read
+// operations. We define O_RSYNC therefore as the same as O_SYNC
+// since this is a superset.
+
+// Values for the second argument to `fcntl'.
+
+// For F_[GET|SET]FD.
+
+// For posix fcntl() and `l_type' field of a `struct flock' for lockf().
+
+// For old implementation of BSD flock.
+
+// Operations for BSD flock, also used by the kernel implementation.
+
+// Define some more compatibility macros to be backward compatible with
+// BSD systems which did not managed to hide these kernel macros.
+
+// Advise to `posix_fadvise'.
+
+// Values for `*at' functions.
+
+// Detect if open needs mode as a third argument (or for openat as a fourth
+// argument).
+
+// POSIX.1-2001 specifies that these types are defined by <fcntl.h>.
+// Earlier POSIX standards permitted any type ending in `_t' to be defined
+// by any POSIX header, so we don't conditionalize the definitions here.
+type Mode_t = X__mode_t /* fcntl.h:50:18 */
+
+type Off_t = X__off64_t /* fcntl.h:58:19 */
+
+type Pid_t = X__pid_t /* fcntl.h:69:17 */
+
+// For XPG all symbols from <sys/stat.h> should also be available.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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.
+//
+// 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/>.
+
+// 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
+// APIs offered by libc use the kernel shape for their struct stat
+// structure; the only difference is that 32-bit programs not
+// using __USE_FILE_OFFSET64 only see the low 32 bits of some
+// of the fields (specifically st_ino, st_size, and st_blocks).
+
+// Versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino64_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__pad1 X__dev_t
+ Fst_size X__off64_t
+ Fst_blksize X__blksize_t
+ F__pad2 int32
+ Fst_blocks X__blkcnt64_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ F__glibc_reserved [2]int32
+} /* stat.h:58:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_linux_s390x.go b/vendor/modernc.org/libc/fcntl/fcntl_linux_s390x.go
new file mode 100644
index 00000000..cbe884ce
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_linux_s390x.go
@@ -0,0 +1,1088 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_linux_s390x.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x200
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+ FAPPEND = 1024
+ FASYNC = 8192
+ FD_CLOEXEC = 1
+ FFSYNC = 1052672
+ FNDELAY = 2048
+ FNONBLOCK = 2048
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 1030
+ F_EXLCK = 4
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 5
+ F_GETLK64 = 5
+ F_GETOWN = 9
+ F_LOCK = 1
+ F_OK = 0
+ F_RDLCK = 0
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 6
+ F_SETLK64 = 6
+ F_SETLKW = 7
+ F_SETLKW64 = 7
+ F_SETOWN = 8
+ F_SHLCK = 8
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ F_UNLCK = 2
+ F_WRLCK = 1
+ LOCK_EX = 2
+ LOCK_NB = 4
+ LOCK_SH = 1
+ LOCK_UN = 8
+ O_ACCMODE = 0003
+ O_APPEND = 02000
+ O_ASYNC = 020000
+ O_CLOEXEC = 524288
+ O_CREAT = 0100
+ O_DIRECTORY = 65536
+ O_DSYNC = 4096
+ O_EXCL = 0200
+ O_FSYNC = 1052672
+ O_NDELAY = 2048
+ O_NOCTTY = 0400
+ O_NOFOLLOW = 131072
+ O_NONBLOCK = 04000
+ O_RDONLY = 00
+ O_RDWR = 02
+ O_RSYNC = 1052672
+ O_SYNC = 04010000
+ O_TRUNC = 01000
+ O_WRONLY = 01
+ POSIX_FADV_DONTNEED = 6
+ POSIX_FADV_NOREUSE = 7
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ 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_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_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ W_OK = 2
+ X_OK = 1
+ 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_FCNTL_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ 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 = 1
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 1
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 6.5 File Control Operations <fcntl.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// This must be early so <bits/fcntl.h> can define types winningly.
+
+// Get __mode_t, __dev_t and __off_t .
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Get the definitions of O_*, F_*, FD_*: all the
+// numbers and flag bits for `open', `fcntl', et al.
+// O_*, F_*, FD_* bit values for Linux.
+// 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
+// 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.
+
+// Not necessary, files are always with 64bit off_t.
+
+// Not necessary, we always have 64-bit offsets.
+
+type Flock = struct {
+ Fl_type int16
+ Fl_whence int16
+ F__ccgo_pad1 [4]byte
+ Fl_start X__off_t
+ Fl_len X__off_t
+ Fl_pid X__pid_t
+ F__ccgo_pad2 [4]byte
+} /* fcntl.h:37:1 */
+
+// Include generic Linux declarations.
+// O_*, F_*, FD_* bit values for Linux.
+// Copyright (C) 2001-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This file contains shared definitions between Linux architectures
+// and is included by <bits/fcntl.h> to declare them. The various
+// #ifndef cases allow the architecture specific file to define those
+// values with different values.
+//
+// A minimal <bits/fcntl.h> contains just:
+//
+// struct flock {...}
+// #ifdef __USE_LARGEFILE64
+// struct flock64 {...}
+// #endif
+// #include <bits/fcntl-linux.h>
+
+// open/fcntl.
+
+// open file description locks.
+//
+// Usually record locks held by a process are released on *any* close and are
+// not inherited across a fork.
+//
+// These cmd values will set locks that conflict with process-associated record
+// locks, but are "owned" by the opened file description, not the process.
+// This means that they are inherited across fork or clone with CLONE_FILES
+// like BSD (flock) locks, and they are only released automatically when the
+// last reference to the the file description against which they were acquired
+// is put.
+
+// For now, Linux has no separate synchronicity options for read
+// operations. We define O_RSYNC therefore as the same as O_SYNC
+// since this is a superset.
+
+// Values for the second argument to `fcntl'.
+
+// For F_[GET|SET]FD.
+
+// For posix fcntl() and `l_type' field of a `struct flock' for lockf().
+
+// For old implementation of BSD flock.
+
+// Operations for BSD flock, also used by the kernel implementation.
+
+// Define some more compatibility macros to be backward compatible with
+// BSD systems which did not managed to hide these kernel macros.
+
+// Advise to `posix_fadvise'.
+
+// Values for `*at' functions.
+
+// Detect if open needs mode as a third argument (or for openat as a fourth
+// argument).
+
+// POSIX.1-2001 specifies that these types are defined by <fcntl.h>.
+// Earlier POSIX standards permitted any type ending in `_t' to be defined
+// by any POSIX header, so we don't conditionalize the definitions here.
+type Mode_t = X__mode_t /* fcntl.h:50:18 */
+
+type Off_t = X__off64_t /* fcntl.h:58:19 */
+
+type Pid_t = X__pid_t /* fcntl.h:69:17 */
+
+// For XPG all symbols from <sys/stat.h> should also be available.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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
+// 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.
+
+// Versions of the `struct stat' data structure.
+
+// Versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino_t
+ Fst_nlink X__nlink_t
+ Fst_mode X__mode_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__glibc_reserved0 int32
+ Fst_rdev X__dev_t
+ Fst_size X__off_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt_t
+ F__glibc_reserved [3]int64
+} /* stat.h:50:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_netbsd_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_netbsd_amd64.go
new file mode 100644
index 00000000..37ef6e16
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_netbsd_amd64.go
@@ -0,0 +1,1481 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_netbsd_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x100
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x800
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x200
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FAPPEND = 8
+ FASYNC = 64
+ FD_CLOEXEC = 1
+ FD_SETSIZE = 256
+ FNDELAY = 4
+ FREAD = 0x00000001
+ FWRITE = 0x00000002
+ F_CLOSEM = 10
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 12
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 7
+ F_GETNOSIGPIPE = 13
+ F_GETOWN = 5
+ F_MAXFD = 11
+ F_PARAM_MASK = 0xfff
+ F_PARAM_MAX = 4095
+ F_RDLCK = 1
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 8
+ F_SETLKW = 9
+ F_SETNOSIGPIPE = 14
+ F_SETOWN = 6
+ F_UNLCK = 2
+ F_WRLCK = 3
+ 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
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ NBBY = 8
+ NFDBITS = 32
+ NODEVMAJOR = -1
+ O_ACCMODE = 0x00000003
+ O_ALT_IO = 0x00040000
+ O_APPEND = 0x00000008
+ O_ASYNC = 0x00000040
+ O_CLOEXEC = 0x00400000
+ O_CREAT = 0x00000200
+ O_DIRECT = 0x00080000
+ O_DIRECTORY = 0x00200000
+ O_DSYNC = 0x00010000
+ O_EXCL = 0x00000800
+ O_EXLOCK = 0x00000020
+ O_FSYNC = 128
+ O_NDELAY = 4
+ O_NOCTTY = 0x00008000
+ O_NOFOLLOW = 0x00000100
+ O_NONBLOCK = 0x00000004
+ O_NOSIGPIPE = 0x01000000
+ O_RDONLY = 0x00000000
+ O_RDWR = 0x00000002
+ O_REGULAR = 0x02000000
+ O_RSYNC = 0x00020000
+ O_SEARCH = 0x00800000
+ O_SHLOCK = 0x00000010
+ O_SYNC = 0x00000080
+ O_TRUNC = 0x00000400
+ O_WRONLY = 0x00000001
+ PDP_ENDIAN = 3412
+ POSIX_FADV_DONTNEED = 4
+ POSIX_FADV_NOREUSE = 5
+ POSIX_FADV_NORMAL = 0
+ POSIX_FADV_RANDOM = 1
+ POSIX_FADV_SEQUENTIAL = 2
+ POSIX_FADV_WILLNEED = 3
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ 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_FCNTL_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 */
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+// path component
+
+// defined by POSIX 1003.1; BSD default, but required to be bitwise distinct
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flags field
+// and for backward compatibility for fcntl.
+
+// Constants used for fcntl(2)
+
+// command values
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// Constants for fcntl's passed to the underlying fs - like ioctl's.
+
+// Define command macros for operations which, if implemented, must be
+// the same for all fs's.
+
+// Define command macros for fs-specific commands.
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start X__off_t
+ Fl_len X__off_t
+ Fl_pid X__pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:252:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go
new file mode 100644
index 00000000..f1b5b336
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go
@@ -0,0 +1,827 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_openbsd_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AT_EACCESS = 0x01
+ AT_FDCWD = -100
+ AT_REMOVEDIR = 0x08
+ AT_SYMLINK_FOLLOW = 0x04
+ AT_SYMLINK_NOFOLLOW = 0x02
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FAPPEND = 8
+ FASYNC = 64
+ FD_CLOEXEC = 1
+ FFSYNC = 128
+ FNDELAY = 4
+ FNONBLOCK = 4
+ FREAD = 0x0001
+ FWRITE = 0x0002
+ F_DUPFD = 0
+ F_DUPFD_CLOEXEC = 10
+ F_GETFD = 1
+ F_GETFL = 3
+ F_GETLK = 7
+ F_GETOWN = 5
+ F_ISATTY = 11
+ F_RDLCK = 1
+ F_SETFD = 2
+ F_SETFL = 4
+ F_SETLK = 8
+ F_SETLKW = 9
+ F_SETOWN = 6
+ F_UNLCK = 2
+ F_WRLCK = 3
+ LITTLE_ENDIAN = 1234
+ LOCK_EX = 0x02
+ LOCK_NB = 0x04
+ LOCK_SH = 0x01
+ LOCK_UN = 0x08
+ O_ACCMODE = 0x0003
+ O_APPEND = 0x0008
+ O_ASYNC = 0x0040
+ O_CLOEXEC = 0x10000
+ O_CREAT = 0x0200
+ O_DIRECTORY = 0x20000
+ O_DSYNC = 128
+ O_EXCL = 0x0800
+ O_EXLOCK = 0x0020
+ O_FSYNC = 0x0080
+ O_NDELAY = 4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x0100
+ O_NONBLOCK = 0x0004
+ O_RDONLY = 0x0000
+ O_RDWR = 0x0002
+ O_RSYNC = 128
+ O_SHLOCK = 0x0010
+ O_SYNC = 0x0080
+ O_TRUNC = 0x0400
+ O_WRONLY = 0x0001
+ PDP_ENDIAN = 3412
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_FCNTL_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: fcntl.h,v 1.22 2019/01/21 18:09:21 anton Exp $
+// $NetBSD: fcntl.h,v 1.8 1995/03/26 20:24:12 jtc Exp $
+
+// -
+// Copyright (c) 1983, 1990, 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.
+//
+// @(#)fcntl.h 8.3 (Berkeley) 1/21/94
+
+// This file includes the definitions for open and fcntl
+// described by POSIX for <fcntl.h>; it also includes
+// related kernel definitions.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// File status flags: these are used by open(2), fcntl(2).
+// They are also used (indirectly) in the kernel file structure f_flags,
+// which is a superset of the open/fcntl flags. Open flags and f_flags
+// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+// Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+// open-only flags
+
+// Kernel encoding of open mode; separate read and write bits that are
+// independently testable: 1 greater than the above.
+//
+// XXX
+// FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH,
+// which was documented to use FREAD/FWRITE, continues to work.
+
+// POSIX 1003.1 specifies a higher granularity for synchronous operations
+// than we support. Since synchronicity is all or nothing in OpenBSD
+// we just define these to be the same as O_SYNC.
+
+// defined by POSIX 1003.1; BSD default, this bit is not required
+
+// defined by POSIX Issue 7
+
+// The O_* flags used to have only F* names, which were used in the kernel
+// and by fcntl. We retain the F* names for the kernel f_flags field
+// and for backward compatibility for fcntl.
+
+// Constants used for fcntl(2)
+
+// command values
+
+// file descriptor flags (F_GETFD, F_SETFD)
+
+// record locking flags (F_GETLK, F_SETLK, F_SETLKW)
+
+// Advisory file segment locking data type -
+// information passed to system by user
+type Flock = struct {
+ Fl_start Off_t
+ Fl_len Off_t
+ Fl_pid Pid_t
+ Fl_type int16
+ Fl_whence int16
+} /* fcntl.h:180:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go b/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go
new file mode 100644
index 00000000..5218b5b6
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go
@@ -0,0 +1,422 @@
+// Code generated by 'ccgo fcntl/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 fcntl/fcntl_windows_386.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ F_OK = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ O_ACCMODE = 3
+ O_APPEND = 8
+ O_BINARY = 32768
+ O_CREAT = 256
+ O_EXCL = 1024
+ O_NOINHERIT = 128
+ O_RANDOM = 16
+ O_RAW = 32768
+ O_RDONLY = 0
+ O_RDWR = 2
+ O_SEQUENTIAL = 32
+ O_TEMPORARY = 64
+ O_TEXT = 16384
+ O_TRUNC = 512
+ O_WRONLY = 1
+ R_OK = 4
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ W_OK = 2
+ X_OK = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_A_ARCH = 0x20
+ X_A_HIDDEN = 0x02
+ X_A_NORMAL = 0x00
+ X_A_RDONLY = 0x01
+ X_A_SUBDIR = 0x10
+ X_A_SYSTEM = 0x04
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_MEMORY_DEFINED = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_LSEEK = 0
+ 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_FCNTL = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STRING = 0
+ X_INC_STRING_S = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IO_H_ = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_NLSCMPERROR = 2147483647
+ X_NLSCMP_DEFINED = 0
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_O_ACCMODE = 3
+ X_O_APPEND = 0x0008
+ X_O_BINARY = 0x8000
+ X_O_CREAT = 0x0100
+ X_O_EXCL = 0x0400
+ X_O_NOINHERIT = 0x0080
+ X_O_RANDOM = 0x0010
+ X_O_RAW = 32768
+ X_O_RDONLY = 0x0000
+ X_O_RDWR = 0x0002
+ X_O_SEQUENTIAL = 0x0020
+ X_O_SHORT_LIVED = 0x1000
+ X_O_TEMPORARY = 0x0040
+ X_O_TEXT = 0x4000
+ X_O_TRUNC = 0x0200
+ X_O_U16TEXT = 0x20000
+ X_O_U8TEXT = 0x40000
+ X_O_WRONLY = 0x0001
+ X_O_WTEXT = 0x10000
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WConst_return = 0
+ X_WFINDDATA_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WIO_DEFINED = 0
+ X_WSTRING_DEFINED = 0
+ X_WSTRING_S_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+type X_fsize_t = uint32 /* io.h:29:25 */
+
+type X_finddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]int8
+} /* io.h:35:3 */
+
+type X_finddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]int8
+ F__ccgo_pad1 [4]byte
+} /* io.h:44:3 */
+
+type X_finddata64i32_t = struct {
+ Fattrib uint32
+ 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]int8
+} /* io.h:53:3 */
+
+type X__finddata64_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:62:3 */
+
+type X_wfinddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]Wchar_t
+} /* io.h:94:3 */
+
+type X_wfinddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:103:3 */
+
+type X_wfinddata64i32_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:112:3 */
+
+type X_wfinddata64_t = struct {
+ Fattrib uint32
+ F__ccgo_pad1 [4]byte
+ Ftime_create X__time64_t
+ Ftime_access X__time64_t
+ Ftime_write X__time64_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:121:3 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fcntl/fcntl_windows_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_windows_amd64.go
new file mode 100644
index 00000000..55a33ff9
--- /dev/null
+++ b/vendor/modernc.org/libc/fcntl/fcntl_windows_amd64.go
@@ -0,0 +1,421 @@
+// Code generated by 'ccgo fcntl\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 fcntl\fcntl_windows_amd64.go -pkgname fcntl', DO NOT EDIT.
+
+package fcntl
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ 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
+ O_ACCMODE = 3
+ O_APPEND = 8
+ O_BINARY = 32768
+ O_CREAT = 256
+ O_EXCL = 1024
+ O_NOINHERIT = 128
+ O_RANDOM = 16
+ O_RAW = 32768
+ O_RDONLY = 0
+ O_RDWR = 2
+ O_SEQUENTIAL = 32
+ O_TEMPORARY = 64
+ O_TEXT = 16384
+ O_TRUNC = 512
+ O_WRONLY = 1
+ R_OK = 4
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ W_OK = 2
+ X_OK = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_A_ARCH = 0x20
+ X_A_HIDDEN = 0x02
+ X_A_NORMAL = 0x00
+ X_A_RDONLY = 0x01
+ X_A_SUBDIR = 0x10
+ X_A_SYSTEM = 0x04
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_MEMORY_DEFINED = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_LSEEK = 0
+ X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_FINDDATA_T_DEFINED = 0
+ X_FSIZE_T_DEFINED = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_FCNTL = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STRING = 0
+ X_INC_STRING_S = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IO_H_ = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_NLSCMPERROR = 2147483647
+ X_NLSCMP_DEFINED = 0
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_O_ACCMODE = 3
+ X_O_APPEND = 0x0008
+ X_O_BINARY = 0x8000
+ X_O_CREAT = 0x0100
+ X_O_EXCL = 0x0400
+ X_O_NOINHERIT = 0x0080
+ X_O_RANDOM = 0x0010
+ X_O_RAW = 32768
+ X_O_RDONLY = 0x0000
+ X_O_RDWR = 0x0002
+ X_O_SEQUENTIAL = 0x0020
+ X_O_SHORT_LIVED = 0x1000
+ X_O_TEMPORARY = 0x0040
+ X_O_TEXT = 0x4000
+ X_O_TRUNC = 0x0200
+ X_O_U16TEXT = 0x20000
+ X_O_U8TEXT = 0x40000
+ X_O_WRONLY = 0x0001
+ X_O_WTEXT = 0x10000
+ X_PGLOBAL = 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_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WConst_return = 0
+ X_WFINDDATA_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WIO_DEFINED = 0
+ X_WSTRING_DEFINED = 0
+ X_WSTRING_S_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+type X_fsize_t = uint32 /* io.h:29:25 */
+
+type X_finddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]int8
+} /* io.h:35:3 */
+
+type X_finddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]int8
+ F__ccgo_pad1 [4]byte
+} /* io.h:44:3 */
+
+type X_finddata64i32_t = struct {
+ Fattrib uint32
+ 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]int8
+} /* io.h:53:3 */
+
+type X__finddata64_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:62:3 */
+
+type X_wfinddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]Wchar_t
+} /* io.h:94:3 */
+
+type X_wfinddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:103:3 */
+
+type X_wfinddata64i32_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:112:3 */
+
+type X_wfinddata64_t = struct {
+ Fattrib uint32
+ F__ccgo_pad1 [4]byte
+ Ftime_create X__time64_t
+ Ftime_access X__time64_t
+ Ftime_write X__time64_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:121:3 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/fsync.go b/vendor/modernc.org/libc/fsync.go
new file mode 100644
index 00000000..dacf2528
--- /dev/null
+++ b/vendor/modernc.org/libc/fsync.go
@@ -0,0 +1,10 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !libc.nofsync
+// +build !libc.nofsync
+
+package libc // import "modernc.org/libc"
+
+const noFsync = false
diff --git a/vendor/modernc.org/libc/fts/capi_darwin_amd64.go b/vendor/modernc.org/libc/fts/capi_darwin_amd64.go
new file mode 100644
index 00000000..9cd5b61b
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo fts/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 fts/fts_darwin_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/fts/capi_darwin_arm64.go b/vendor/modernc.org/libc/fts/capi_darwin_arm64.go
new file mode 100644
index 00000000..c7094282
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_darwin_arm64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_freebsd_386.go b/vendor/modernc.org/libc/fts/capi_freebsd_386.go
new file mode 100644
index 00000000..f3012a42
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_freebsd_386.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_freebsd_amd64.go b/vendor/modernc.org/libc/fts/capi_freebsd_amd64.go
new file mode 100644
index 00000000..b5b97ba4
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_freebsd_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_linux_386.go b/vendor/modernc.org/libc/fts/capi_linux_386.go
new file mode 100644
index 00000000..864dbf8e
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_386.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_linux_amd64.go b/vendor/modernc.org/libc/fts/capi_linux_amd64.go
new file mode 100644
index 00000000..7c6e5848
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_linux_arm.go b/vendor/modernc.org/libc/fts/capi_linux_arm.go
new file mode 100644
index 00000000..5e721c12
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_arm.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_linux_arm64.go b/vendor/modernc.org/libc/fts/capi_linux_arm64.go
new file mode 100644
index 00000000..24a78a6c
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_arm64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_linux_s390x.go b/vendor/modernc.org/libc/fts/capi_linux_s390x.go
new file mode 100644
index 00000000..4d0ce9b2
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_s390x.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_netbsd_amd64.go b/vendor/modernc.org/libc/fts/capi_netbsd_amd64.go
new file mode 100644
index 00000000..c643a998
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_netbsd_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/capi_openbsd_amd64.go b/vendor/modernc.org/libc/fts/capi_openbsd_amd64.go
new file mode 100644
index 00000000..8e20d393
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo fts/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 fts/fts_openbsd_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/fts/fts_darwin_amd64.go b/vendor/modernc.org/libc/fts/fts_darwin_amd64.go
new file mode 100644
index 00000000..3e404c01
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_darwin_amd64.go
@@ -0,0 +1,5142 @@
+// Code generated by 'ccgo fts/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 fts/fts_darwin_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ DEFFILEMODE = 438
+ EF_IS_PURGEABLE = 0x00000008
+ EF_IS_SPARSE = 0x00000010
+ EF_IS_SYNC_ROOT = 0x00000004
+ EF_MAY_SHARE_BLOCKS = 0x00000001
+ EF_NO_XATTRS = 0x00000002
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x001
+ FTS_COMFOLLOWDIR = 0x400
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_ISW = 0x04
+ FTS_LOGICAL = 0x002
+ FTS_MAXLEVEL = 0x7fffffff
+ FTS_NAMEONLY = 0x100
+ FTS_NOCHDIR = 0x004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x008
+ FTS_NOSTAT_TYPE = 0x800
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0xcff
+ FTS_PHYSICAL = 0x010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x080
+ FTS_XDEV = 0x040
+ LITTLE_ENDIAN = 1234
+ NBBY = 8
+ PDP_ENDIAN = 3412
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_DATALESS = 0x40000000
+ SF_FIRMLINK = 0x00800000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_RESTRICTED = 0x00080000
+ SF_SETTABLE = 0x3fff0000
+ SF_SUPPORTED = 0x009f0000
+ SF_SYNTHETIC = 0xc0000000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ UF_APPEND = 0x00000004
+ UF_COMPRESSED = 0x00000020
+ UF_DATAVAULT = 0x00000080
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_OPAQUE = 0x00000008
+ UF_SETTABLE = 0x0000ffff
+ UF_TRACKED = 0x00000040
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_FTS_H_ = 0
+ X_GID_T = 0
+ X_I386__ENDIAN_H_ = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS__OSBYTEORDERI386_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_SUSECONDS_T = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// [XSI] The timespec structure may be defined as described in <time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+// gid_t, off_t, and time_t types shall be defined as described in
+// <sys/types.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX So deprecated, it would make your head spin
+//
+// The old stat structure. In fact, this is not used by the kernel at all,
+// and should not be used by user space, and should be removed from this
+// header file entirely (along with the unused cvtstat() prototype in
+// vnode_internal.h).
+type Ostat = struct {
+ Fst_dev X__uint16_t
+ 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
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+} /* stat.h:110:1 */
+
+// This structure is used as the second parameter to the fstat64(),
+// lstat64(), and stat64() functions, and for struct stat when
+// __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+// above, depending on whether we use struct timespec or the direct
+// components.
+//
+// This is simillar to stat except for 64bit inode number
+// number instead of 32bit ino_t and the addition of create(birth) time.
+
+// [XSI] This structure is used as the second parameter to the fstat(),
+// lstat(), and stat() functions.
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:182:1 */
+
+type Stat64 = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:221:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+// Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ F__ccgo_pad2 [2]byte
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad3 [7]byte
+} /* fts.h:72:2 */
+
+// Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ F__ccgo_pad1 [4]byte
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ F__ccgo_pad2 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad3 [4]byte
+} /* fts.h:111:3 */
+
+type FTSENT = X_ftsent /* fts.h:164:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_darwin_arm64.go b/vendor/modernc.org/libc/fts/fts_darwin_arm64.go
new file mode 100644
index 00000000..886f3b9e
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_darwin_arm64.go
@@ -0,0 +1,5920 @@
+// Code generated by 'ccgo fts/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 fts/fts_darwin_arm64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ DEFFILEMODE = 438
+ EF_IS_PURGEABLE = 0x00000008
+ EF_IS_SPARSE = 0x00000010
+ EF_IS_SYNC_ROOT = 0x00000004
+ EF_IS_SYNTHETIC = 0x00000020
+ EF_MAY_SHARE_BLOCKS = 0x00000001
+ EF_NO_XATTRS = 0x00000002
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_CHDIRFD = 0x08
+ FTS_COMFOLLOW = 0x001
+ FTS_COMFOLLOWDIR = 0x400
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_ISW = 0x04
+ FTS_LOGICAL = 0x002
+ FTS_MAXLEVEL = 0x7fffffff
+ FTS_NAMEONLY = 0x100
+ FTS_NOCHDIR = 0x004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x008
+ FTS_NOSTAT_TYPE = 0x800
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0xcff
+ FTS_PHYSICAL = 0x010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x080
+ FTS_XDEV = 0x040
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ NBBY = 8
+ PDP_ENDIAN = 3412
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_DATALESS = 0x40000000
+ SF_FIRMLINK = 0x00800000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_RESTRICTED = 0x00080000
+ SF_SETTABLE = 0x3fff0000
+ SF_SUPPORTED = 0x009f0000
+ SF_SYNTHETIC = 0xc0000000
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ UF_APPEND = 0x00000004
+ UF_COMPRESSED = 0x00000020
+ UF_DATAVAULT = 0x00000080
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_OPAQUE = 0x00000008
+ UF_SETTABLE = 0x0000ffff
+ UF_TRACKED = 0x00000040
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM__ENDIAN_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_FTS_H_ = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_STDINT_H_ = 0
+ X_SUSECONDS_T = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 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 */
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Define _NOQUAD if the compiler does NOT support 64-bit integers.
+// #define _NOQUAD
+
+// Define the order of 32-bit words in 64-bit words.
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Macros for network/external number representation conversion.
+
+// Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header is normally included from <libkern/OSByteOrder.h>. However,
+// <sys/_endian.h> also includes this in the case of little-endian
+// architectures, so that we can map OSByteOrder routines to the hton* and ntoh*
+// macros. This results in the asymmetry below; we only include
+// <libkern/arch/_OSByteOrder.h> for little-endian architectures.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Macros for swapping constant values in the preprocessing stage.
+
+// Copyright (c) 1999-2007 Apple Inc. All rights reserved.
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// [XSI] The timespec structure may be defined as described in <time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+// gid_t, off_t, and time_t types shall be defined as described in
+// <sys/types.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX So deprecated, it would make your head spin
+//
+// The old stat structure. In fact, this is not used by the kernel at all,
+// and should not be used by user space, and should be removed from this
+// header file entirely (along with the unused cvtstat() prototype in
+// vnode_internal.h).
+type Ostat = struct {
+ Fst_dev X__uint16_t
+ 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
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+} /* stat.h:110:1 */
+
+// This structure is used as the second parameter to the fstat64(),
+// lstat64(), and stat64() functions, and for struct stat when
+// __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+// above, depending on whether we use struct timespec or the direct
+// components.
+//
+// This is simillar to stat except for 64bit inode number
+// number instead of 32bit ino_t and the addition of create(birth) time.
+
+// [XSI] This structure is used as the second parameter to the fstat(),
+// lstat(), and stat() functions.
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:182:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+// Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ F__ccgo_pad2 [2]byte
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad3 [7]byte
+} /* fts.h:72:2 */
+
+// Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ F__ccgo_pad1 [4]byte
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ F__ccgo_pad2 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad3 [4]byte
+} /* fts.h:111:3 */
+
+type FTSENT = X_ftsent /* fts.h:165:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_freebsd_386.go b/vendor/modernc.org/libc/fts/fts_freebsd_386.go
new file mode 100644
index 00000000..d68f6aa6
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_freebsd_386.go
@@ -0,0 +1,2359 @@
+// Code generated by 'ccgo fts/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 fts/fts_freebsd_386.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_BOOTTIME = 5
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_COARSE = 12
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_COARSE = 10
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ CPUCLOCK_WHICH_PID = 0
+ CPUCLOCK_WHICH_TID = 1
+ DEFFILEMODE = 438
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_ISW = 0x04
+ FTS_LOGICAL = 0x002
+ FTS_NAMEONLY = 0x100
+ FTS_NOCHDIR = 0x004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x0ff
+ FTS_PHYSICAL = 0x010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x080
+ FTS_XDEV = 0x040
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ SBT_MAX = 0x7fffffffffffffff
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_SETTABLE = 0xffff0000
+ SF_SNAPSHOT = 0x00200000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 0001000
+ 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_ARCHIVE = 0x00000800
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_NOUNLINK = 0x00000010
+ UF_OFFLINE = 0x00000200
+ UF_OPAQUE = 0x00000008
+ UF_READONLY = 0x00001000
+ UF_REPARSE = 0x00000400
+ UF_SETTABLE = 0x0000ffff
+ UF_SPARSE = 0x00000100
+ UF_SYSTEM = 0x00000080
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_FTS_H_ = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED = 0
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKNOD_DECLARED = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_SYS__CLOCK_ID_H = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint32 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint32 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46: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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint32 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.12 (Berkeley) 6/16/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// XXX We get miscellaneous namespace pollution with this.
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// These macros are shared between time.h and sys/time.h.
+
+// Note: The values shown below as a comment for the __POSIX_VISIBLE values are
+// the ones FreeBSD traditionally used based on our reading of the POSIX
+// standards. However, glibc uses 199309 for all of them, even those many were
+// not defined there. To remain bug compatible with glibc means more software
+// that relied on the glibc behavior will compile easily on FreeBSD.
+//
+// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl
+// port until it can be updated properly. It incorrectly assumes that this was a
+// standard value. It will be moved back to the __BSD_VISIBLE section once the
+// issue is corrected.
+
+// FreeBSD-specific clocks.
+
+// Linux compatible names.
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:43:1 */
+
+type Bintime = struct {
+ Fsec Time_t
+ Ffrac Uint64_t
+} /* time.h:56:1 */
+
+// Operations on timespecs
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:459:1 */
+
+// Getkerninfo clock information structure
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fspare int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:467:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+// New in POSIX 1003.1b-1993.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* time.h:101:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_mode Mode_t
+ Fst_padding0 X__int16_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_padding1 X__int32_t
+ Fst_rdev Dev_t
+ Fst_atim_ext X__int32_t
+ Fst_atim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_mtim_ext X__int32_t
+ Fst_mtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_ctim_ext X__int32_t
+ Fst_ctim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_btim_ext X__int32_t
+ Fst_birthtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags Fflags_t
+ Fst_gen X__uint64_t
+ Fst_spare [10]X__uint64_t
+} /* stat.h:160:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen X__size_t
+ Ffts_namelen X__size_t
+ Ffts_ino X__ino_t
+ Ffts_dev X__dev_t
+ Ffts_nlink X__nlink_t
+ Ffts_level int32
+ Ffts_info int32
+ Ffts_flags uint32
+ Ffts_instr int32
+ Ffts_statp uintptr
+ Ffts_name uintptr
+ Ffts_fts uintptr
+} /* fts.h:41:2 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev X__dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen X__size_t
+ Ffts_nitems X__size_t
+ Ffts_compar uintptr
+ Ffts_options int32
+ Ffts_clientptr uintptr
+} /* fts.h:66:3 */
+
+type FTSENT = X_ftsent /* fts.h:120:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_freebsd_amd64.go b/vendor/modernc.org/libc/fts/fts_freebsd_amd64.go
new file mode 100644
index 00000000..95e7397f
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_freebsd_amd64.go
@@ -0,0 +1,2309 @@
+// Code generated by 'ccgo fts/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 fts/fts_freebsd_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ CPUCLOCK_WHICH_PID = 0
+ CPUCLOCK_WHICH_TID = 1
+ DEFFILEMODE = 438
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_ISW = 0x04
+ FTS_LOGICAL = 0x002
+ FTS_NAMEONLY = 0x100
+ FTS_NOCHDIR = 0x004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x0ff
+ FTS_PHYSICAL = 0x010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x080
+ FTS_XDEV = 0x040
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ SBT_MAX = 0x7fffffffffffffff
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_SETTABLE = 0xffff0000
+ SF_SNAPSHOT = 0x00200000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 0001000
+ 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_ARCHIVE = 0x00000800
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_NOUNLINK = 0x00000010
+ UF_OFFLINE = 0x00000200
+ UF_OPAQUE = 0x00000008
+ UF_READONLY = 0x00001000
+ UF_REPARSE = 0x00000400
+ UF_SETTABLE = 0x0000ffff
+ UF_SPARSE = 0x00000100
+ UF_SYSTEM = 0x00000080
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_FTS_H_ = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED = 0
+ X_LP64 = 1
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKNOD_DECLARED = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint64 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint64 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46: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
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint64 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [16]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.12 (Berkeley) 6/16/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// XXX We get miscellaneous namespace pollution with this.
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:42:1 */
+
+type Bintime = struct {
+ Fsec Time_t
+ Ffrac Uint64_t
+} /* time.h:55:1 */
+
+// Operations on timespecs
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:447:1 */
+
+// Getkerninfo clock information structure
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fspare int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:455:1 */
+
+// These macros are also in time.h.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+// New in POSIX 1003.1b-1993.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// 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
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:129:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_mode Mode_t
+ Fst_padding0 X__int16_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_padding1 X__int32_t
+ 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 Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags Fflags_t
+ Fst_gen X__uint64_t
+ Fst_spare [10]X__uint64_t
+} /* stat.h:160:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen X__size_t
+ Ffts_namelen X__size_t
+ Ffts_ino X__ino_t
+ Ffts_dev X__dev_t
+ Ffts_nlink X__nlink_t
+ Ffts_level int64
+ Ffts_info int32
+ Ffts_flags uint32
+ Ffts_instr int32
+ F__ccgo_pad1 [4]byte
+ Ffts_statp uintptr
+ Ffts_name uintptr
+ Ffts_fts uintptr
+} /* fts.h:41:2 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev X__dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ F__ccgo_pad1 [4]byte
+ Ffts_pathlen X__size_t
+ Ffts_nitems X__size_t
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad2 [4]byte
+ Ffts_clientptr uintptr
+} /* fts.h:66:3 */
+
+type FTSENT = X_ftsent /* fts.h:120:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_linux_386.go b/vendor/modernc.org/libc/fts/fts_linux_386.go
new file mode 100644
index 00000000..bccb4532
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_linux_386.go
@@ -0,0 +1,1880 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_386.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ DEFFILEMODE = 438
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x0001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_LOGICAL = 0x0002
+ FTS_NAMEONLY = 0x0100
+ FTS_NOCHDIR = 0x0004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x0008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x00ff
+ FTS_PHYSICAL = 0x0010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x0020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x0200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x0080
+ FTS_XDEV = 0x0040
+ 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_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_PTHREADTYPES_ARCH_H = 1
+ X_BITS_PTHREADTYPES_COMMON_H = 1
+ X_BITS_STAT_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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_FTS_H = 1
+ X_GCC_SIZE_T = 0
+ X_ILP32 = 1
+ X_MKNOD_VER = 1
+ X_MKNOD_VER_LINUX = 1
+ X_MKNOD_VER_SVR4 = 2
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STATBUF_ST_BLKSIZE = 0
+ X_STATBUF_ST_NSEC = 0
+ X_STATBUF_ST_RDEV = 0
+ X_STAT_VER = 3
+ X_STAT_VER_KERNEL = 1
+ X_STAT_VER_LINUX = 3
+ X_STAT_VER_LINUX_OLD = 1
+ X_STAT_VER_SVR4 = 2
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_STAT_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
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// The Single Unix specification says that some more types are
+// available here.
+
+// 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/>.
+
+// Versions of the `struct stat' data structure.
+
+// i386 versions of the `xmknod' interface.
+
+type Stat = 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
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ino X__ino64_t
+} /* stat.h:46:1 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int32
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad1 [3]byte
+} /* fts.h:58:2 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ Ffts_compar uintptr
+ Ffts_options int32
+} /* fts.h:81:3 */
+
+type FTSENT = X_ftsent /* fts.h:147:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_linux_amd64.go b/vendor/modernc.org/libc/fts/fts_linux_amd64.go
new file mode 100644
index 00000000..1f05acea
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_linux_amd64.go
@@ -0,0 +1,1895 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ DEFFILEMODE = 438
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x0001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_LOGICAL = 0x0002
+ FTS_NAMEONLY = 0x0100
+ FTS_NOCHDIR = 0x0004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x0008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x00ff
+ FTS_PHYSICAL = 0x0010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x0020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x0200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x0080
+ FTS_XDEV = 0x0040
+ 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_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_PTHREADTYPES_ARCH_H = 1
+ X_BITS_PTHREADTYPES_COMMON_H = 1
+ X_BITS_STAT_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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_FTS_H = 1
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_MKNOD_VER = 0
+ X_MKNOD_VER_LINUX = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STATBUF_ST_BLKSIZE = 0
+ X_STATBUF_ST_NSEC = 0
+ X_STATBUF_ST_RDEV = 0
+ X_STAT_VER = 1
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 1
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_STAT_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
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// The Single Unix specification says that some more types are
+// available here.
+
+// 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/>.
+
+// Versions of the `struct stat' data structure.
+
+// x86-64 versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino_t
+ Fst_nlink X__nlink_t
+ Fst_mode X__mode_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__pad0 int32
+ Fst_rdev X__dev_t
+ Fst_size X__off_t
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ F__glibc_reserved [3]X__syscall_slong_t
+} /* stat.h:46:1 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad2 [7]byte
+} /* fts.h:58:2 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ F__ccgo_pad1 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad2 [4]byte
+} /* fts.h:81:3 */
+
+type FTSENT = X_ftsent /* fts.h:147:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_linux_arm.go b/vendor/modernc.org/libc/fts/fts_linux_arm.go
new file mode 100644
index 00000000..8c7d18e6
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_linux_arm.go
@@ -0,0 +1,1992 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_arm.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ DEFFILEMODE = 438
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x0001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_LOGICAL = 0x0002
+ FTS_NAMEONLY = 0x0100
+ FTS_NOCHDIR = 0x0004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x0008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x00ff
+ FTS_PHYSICAL = 0x0010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x0020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x0200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x0080
+ FTS_XDEV = 0x0040
+ 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_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_PTHREADTYPES_ARCH_H = 1
+ X_BITS_PTHREADTYPES_COMMON_H = 1
+ X_BITS_STAT_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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_FTS_H = 1
+ X_GCC_SIZE_T = 0
+ X_MKNOD_VER = 1
+ X_MKNOD_VER_LINUX = 1
+ X_MKNOD_VER_SVR4 = 2
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STATBUF_ST_BLKSIZE = 0
+ X_STATBUF_ST_NSEC = 0
+ X_STATBUF_ST_RDEV = 0
+ X_STAT_VER = 3
+ X_STAT_VER_KERNEL = 1
+ X_STAT_VER_LINUX = 3
+ X_STAT_VER_LINUX_OLD = 1
+ X_STAT_VER_SVR4 = 2
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_STAT_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
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// The Single Unix specification says that some more types are
+// available here.
+
+// 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
+// <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
+ 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
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ino X__ino64_t
+} /* stat.h:38:1 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int32
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ Ffts_statp uintptr
+ Ffts_name [1]uint8
+ F__ccgo_pad1 [7]byte
+} /* fts.h:58:2 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ F__ccgo_pad1 [4]byte
+ Ffts_dev Dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ Ffts_compar uintptr
+ Ffts_options int32
+} /* fts.h:81:3 */
+
+type FTSENT = X_ftsent /* fts.h:147:3 */
+
+var _ uint8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_linux_arm64.go b/vendor/modernc.org/libc/fts/fts_linux_arm64.go
new file mode 100644
index 00000000..5935c72b
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_linux_arm64.go
@@ -0,0 +1,2044 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_arm64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ DEFFILEMODE = 438
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x0001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_LOGICAL = 0x0002
+ FTS_NAMEONLY = 0x0100
+ FTS_NOCHDIR = 0x0004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x0008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x00ff
+ FTS_PHYSICAL = 0x0010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x0020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x0200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x0080
+ FTS_XDEV = 0x0040
+ 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_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_PTHREADTYPES_ARCH_H = 1
+ X_BITS_PTHREADTYPES_COMMON_H = 1
+ X_BITS_STAT_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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_FTS_H = 1
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_MKNOD_VER = 0
+ X_MKNOD_VER_LINUX = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ 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_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_STAT_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
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// The Single Unix specification says that some more types are
+// available here.
+
+// 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.
+//
+// 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/>.
+
+// 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
+// APIs offered by libc use the kernel shape for their struct stat
+// structure; the only difference is that 32-bit programs not
+// using __USE_FILE_OFFSET64 only see the low 32 bits of some
+// of the fields (specifically st_ino, st_size, and st_blocks).
+
+// Versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino64_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__pad1 X__dev_t
+ Fst_size X__off64_t
+ Fst_blksize X__blksize_t
+ F__pad2 int32
+ Fst_blocks X__blkcnt64_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ F__glibc_reserved [2]int32
+} /* stat.h:58:1 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ F__ccgo_pad2 [4]byte
+ Ffts_statp uintptr
+ Ffts_name [1]uint8
+ F__ccgo_pad3 [7]byte
+} /* fts.h:58:2 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ F__ccgo_pad1 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad2 [4]byte
+} /* fts.h:81:3 */
+
+type FTSENT = X_ftsent /* fts.h:147:3 */
+
+var _ uint8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_linux_s390x.go b/vendor/modernc.org/libc/fts/fts_linux_s390x.go
new file mode 100644
index 00000000..7b76f765
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_linux_s390x.go
@@ -0,0 +1,1894 @@
+// Code generated by 'ccgo fts/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 fts/fts_linux_s390x.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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 = 4321
+ DEFFILEMODE = 438
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x0001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_LOGICAL = 0x0002
+ FTS_NAMEONLY = 0x0100
+ FTS_NOCHDIR = 0x0004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x0008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x00ff
+ FTS_PHYSICAL = 0x0010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x0020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x0200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x0080
+ FTS_XDEV = 0x0040
+ 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_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_PTHREADTYPES_ARCH_H = 1
+ X_BITS_PTHREADTYPES_COMMON_H = 1
+ X_BITS_STAT_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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_FTS_H = 1
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_MKNOD_VER = 0
+ X_MKNOD_VER_LINUX = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STATBUF_ST_BLKSIZE = 0
+ X_STATBUF_ST_NSEC = 0
+ X_STATBUF_ST_RDEV = 0
+ X_STAT_VER = 1
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 1
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_STAT_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
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// The Single Unix specification says that some more types are
+// available here.
+
+// 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
+// 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.
+
+// Versions of the `struct stat' data structure.
+
+// Versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino_t
+ Fst_nlink X__nlink_t
+ Fst_mode X__mode_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__glibc_reserved0 int32
+ Fst_rdev X__dev_t
+ Fst_size X__off_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt_t
+ F__glibc_reserved [3]int64
+} /* stat.h:50:1 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint16
+ Ffts_namelen uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int16
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ Ffts_statp uintptr
+ Ffts_name [1]uint8
+ F__ccgo_pad2 [7]byte
+} /* fts.h:58:2 */
+
+// File tree traversal functions declarations.
+// Copyright (C) 1994-2020 Free Software 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) 1989, 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.
+// 4. 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+// 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
+// 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) 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen int32
+ Ffts_nitems int32
+ F__ccgo_pad1 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad2 [4]byte
+} /* fts.h:81:3 */
+
+type FTSENT = X_ftsent /* fts.h:147:3 */
+
+var _ uint8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_netbsd_amd64.go b/vendor/modernc.org/libc/fts/fts_netbsd_amd64.go
new file mode 100644
index 00000000..3de385dd
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_netbsd_amd64.go
@@ -0,0 +1,2626 @@
+// Code generated by 'ccgo fts/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 fts/fts_netbsd_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_ISW = 0x04
+ FTS_LOGICAL = 0x002
+ FTS_NAMEONLY = 0x100
+ FTS_NOCHDIR = 0x004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x0ff
+ FTS_PHYSICAL = 0x010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x200
+ FTS_SYMFOLLOW = 0x02
+ FTS_W = 14
+ FTS_WHITEOUT = 0x080
+ FTS_XDEV = 0x040
+ 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_FTS_H_ = 0
+ 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 */
+
+// $NetBSD: stat.h,v 1.68 2013/10/17 18:01:11 njoly Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.12 (Berkeley) 8/17/94
+
+// $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
+
+// 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 */
+
+// $NetBSD: fts.h,v 1.19 2009/08/16 19:33:38 christos Exp $
+
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number Int64_t
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen uint32
+ Ffts_namelen uint32
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int32
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ F__ccgo_pad1 [2]byte
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad2 [7]byte
+} /* fts.h:60:2 */
+
+// $NetBSD: fts.h,v 1.19 2009/08/16 19:33:38 christos Exp $
+
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ Ffts_path uintptr
+ Ffts_rfd int32
+ Ffts_pathlen uint32
+ Ffts_nitems uint32
+ F__ccgo_pad1 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad2 [4]byte
+} /* fts.h:84:3 */
+
+type FTSENT = X_ftsent /* fts.h:136:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/fts/fts_openbsd_amd64.go b/vendor/modernc.org/libc/fts/fts_openbsd_amd64.go
new file mode 100644
index 00000000..44e7b789
--- /dev/null
+++ b/vendor/modernc.org/libc/fts/fts_openbsd_amd64.go
@@ -0,0 +1,1272 @@
+// Code generated by 'ccgo fts/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 fts/fts_openbsd_amd64.go -pkgname fts', DO NOT EDIT.
+
+package fts
+
+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
+ CLK_TCK = 100
+ CLOCKS_PER_SEC = 100
+ CLOCK_BOOTTIME = 6
+ CLOCK_MONOTONIC = 3
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 4
+ CLOCK_UPTIME = 5
+ DEFFILEMODE = 438
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ FD_SETSIZE = 1024
+ FTS_AGAIN = 1
+ FTS_COMFOLLOW = 0x0001
+ FTS_D = 1
+ FTS_DC = 2
+ FTS_DEFAULT = 3
+ FTS_DNR = 4
+ FTS_DONTCHDIR = 0x01
+ FTS_DOT = 5
+ FTS_DP = 6
+ FTS_ERR = 7
+ FTS_F = 8
+ FTS_FOLLOW = 2
+ FTS_INIT = 9
+ FTS_LOGICAL = 0x0002
+ FTS_MAXLEVEL = 0x7fffffff
+ FTS_NAMEONLY = 0x1000
+ FTS_NOCHDIR = 0x0004
+ FTS_NOINSTR = 3
+ FTS_NOSTAT = 0x0008
+ FTS_NS = 10
+ FTS_NSOK = 11
+ FTS_OPTIONMASK = 0x00ff
+ FTS_PHYSICAL = 0x0010
+ FTS_ROOTLEVEL = 0
+ FTS_ROOTPARENTLEVEL = -1
+ FTS_SEEDOT = 0x0020
+ FTS_SKIP = 4
+ FTS_SL = 12
+ FTS_SLNONE = 13
+ FTS_STOP = 0x2000
+ FTS_SYMFOLLOW = 0x02
+ FTS_XDEV = 0x0040
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ NBBY = 8
+ PDP_ENDIAN = 3412
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_SETTABLE = 0xffff0000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ 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 = 0001000
+ 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
+ UTIME_NOW = -2
+ UTIME_OMIT = -1
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FTS_H_ = 0
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SELECT_DEFINED_ = 0
+ X_SIGSET_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TIME_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIMESPEC_DECLARED = 0
+ X_TIMEVAL_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// $OpenBSD: stat.h,v 1.28 2015/04/04 18:06:08 jca Exp $
+// $NetBSD: stat.h,v 1.20 1996/05/16 22:17:49 cgd Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $
+// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft 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.2 (Berkeley) 7/10/94
+
+// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther 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
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* select.h:41:1 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* select.h:49:1 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+// We don't want to pollute the namespace with select(2) internals.
+// Non-underscore versions are exposed later #if __BSD_VISIBLE
+type X__fd_mask = Uint32_t /* select.h:70:18 */
+
+type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */
+
+type Fd_set = Fd_set1 /* select.h:76:3 */
+
+type Sigset_t = uint32 /* select.h:122:22 */
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:72:1 */
+
+// Operations on timevals.
+
+// Operations on timespecs.
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:148:1 */
+
+// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE})
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:157:1 */
+
+// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $
+// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $
+
+// Copyright (c) 1989 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 5.12 (Berkeley) 3/9/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha 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.
+
+// Per-process and per-thread clocks encode the PID or TID into the
+// high bits, with the type in the bottom bits
+
+// Structure defined by POSIX 1003.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:56:1 */
+
+type Locale_t = uintptr /* time.h:107:14 */
+
+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:111:1 */
+
+type Stat = struct {
+ Fst_mode Mode_t
+ Fst_dev Dev_t
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ 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_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags U_int32_t
+ Fst_gen U_int32_t
+ F__ccgo_pad1 [4]byte
+ F__st_birthtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+} /* stat.h:45:1 */
+
+// $OpenBSD: fts.h,v 1.14 2012/12/05 23:19:57 deraadt Exp $
+// $NetBSD: fts.h,v 1.5 1994/12/28 01:41:50 mycroft Exp $
+
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+type X_ftsent = struct {
+ Ffts_cycle uintptr
+ Ffts_parent uintptr
+ Ffts_link uintptr
+ Ffts_number int64
+ Ffts_pointer uintptr
+ Ffts_accpath uintptr
+ Ffts_path uintptr
+ Ffts_errno int32
+ Ffts_symfd int32
+ Ffts_pathlen Size_t
+ Ffts_namelen Size_t
+ Ffts_ino Ino_t
+ Ffts_dev Dev_t
+ Ffts_nlink Nlink_t
+ Ffts_level int32
+ Ffts_info uint16
+ Ffts_flags uint16
+ Ffts_instr uint16
+ Ffts_spare uint16
+ F__ccgo_pad1 [4]byte
+ Ffts_statp uintptr
+ Ffts_name [1]int8
+ F__ccgo_pad2 [7]byte
+} /* fts.h:39:2 */
+
+// $OpenBSD: fts.h,v 1.14 2012/12/05 23:19:57 deraadt Exp $
+// $NetBSD: fts.h,v 1.5 1994/12/28 01:41:50 mycroft Exp $
+
+// Copyright (c) 1989, 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.
+//
+// @(#)fts.h 8.3 (Berkeley) 8/14/94
+
+type FTS = struct {
+ Ffts_cur uintptr
+ Ffts_child uintptr
+ Ffts_array uintptr
+ Ffts_dev Dev_t
+ F__ccgo_pad1 [4]byte
+ Ffts_path uintptr
+ Ffts_rfd int32
+ F__ccgo_pad2 [4]byte
+ Ffts_pathlen Size_t
+ Ffts_nitems int32
+ F__ccgo_pad3 [4]byte
+ Ffts_compar uintptr
+ Ffts_options int32
+ F__ccgo_pad4 [4]byte
+} /* fts.h:61:3 */
+
+type FTSENT = X_ftsent /* fts.h:114:3 */
+
+var _ int8 /* gen.c:5:13: */
diff --git a/vendor/modernc.org/libc/grp/capi_darwin_amd64.go b/vendor/modernc.org/libc/grp/capi_darwin_amd64.go
new file mode 100644
index 00000000..3d10f9a0
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo grp/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 grp/grp_darwin_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/grp/capi_darwin_arm64.go b/vendor/modernc.org/libc/grp/capi_darwin_arm64.go
new file mode 100644
index 00000000..f0ca0522
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_darwin_arm64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_freebsd_386.go b/vendor/modernc.org/libc/grp/capi_freebsd_386.go
new file mode 100644
index 00000000..e0a2dd7b
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_freebsd_386.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_freebsd_amd64.go b/vendor/modernc.org/libc/grp/capi_freebsd_amd64.go
new file mode 100644
index 00000000..497b372f
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_freebsd_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_linux_386.go b/vendor/modernc.org/libc/grp/capi_linux_386.go
new file mode 100644
index 00000000..107535a6
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_386.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_linux_amd64.go b/vendor/modernc.org/libc/grp/capi_linux_amd64.go
new file mode 100644
index 00000000..f22fdd28
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_linux_arm.go b/vendor/modernc.org/libc/grp/capi_linux_arm.go
new file mode 100644
index 00000000..3badd214
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_arm.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_linux_arm64.go b/vendor/modernc.org/libc/grp/capi_linux_arm64.go
new file mode 100644
index 00000000..1d9f5cad
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_arm64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_linux_s390x.go b/vendor/modernc.org/libc/grp/capi_linux_s390x.go
new file mode 100644
index 00000000..69d68e1b
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_s390x.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_netbsd_amd64.go b/vendor/modernc.org/libc/grp/capi_netbsd_amd64.go
new file mode 100644
index 00000000..0641828c
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_netbsd_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/capi_openbsd_amd64.go b/vendor/modernc.org/libc/grp/capi_openbsd_amd64.go
new file mode 100644
index 00000000..31fc4902
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo grp/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 grp/grp_openbsd_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/grp/grp_darwin_amd64.go b/vendor/modernc.org/libc/grp/grp_darwin_amd64.go
new file mode 100644
index 00000000..e442ce22
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_darwin_amd64.go
@@ -0,0 +1,994 @@
+// Code generated by 'ccgo grp/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 grp/grp_darwin_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GID_T = 0
+ X_GRP_H_ = 0
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PATH_GROUP = "/etc/group"
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UUID_STRING_T = 0
+ X_UUID_T = 0
+ X_UUID_UUID_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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)grp.h 8.2 (Berkeley) 1/21/94
+/* Portions copyright (c) 2000-2018 Apple Inc. All rights reserved. */
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid Gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:53:1 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_darwin_arm64.go b/vendor/modernc.org/libc/grp/grp_darwin_arm64.go
new file mode 100644
index 00000000..a97a3335
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_darwin_arm64.go
@@ -0,0 +1,980 @@
+// Code generated by 'ccgo grp/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 grp/grp_darwin_arm64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GID_T = 0
+ X_GRP_H_ = 0
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PATH_GROUP = "/etc/group"
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UUID_STRING_T = 0
+ X_UUID_T = 0
+ X_UUID_UUID_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 */
+
+// -
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)grp.h 8.2 (Berkeley) 1/21/94
+/* Portions copyright (c) 2000-2018 Apple Inc. All rights reserved. */
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid Gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:53:1 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_freebsd_386.go b/vendor/modernc.org/libc/grp/grp_freebsd_386.go
new file mode 100644
index 00000000..4ab825d4
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_freebsd_386.go
@@ -0,0 +1,607 @@
+// Code generated by 'ccgo grp/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 grp/grp_freebsd_386.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T_DECLARED = 0
+ X_GRP_H_ = 0
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PATH_GROUP = "/etc/group"
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// @(#)grp.h 8.2 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Gid_t = X__gid_t /* grp.h:49:18 */
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid Gid_t
+ Fgr_mem uintptr
+} /* grp.h:58:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_freebsd_amd64.go b/vendor/modernc.org/libc/grp/grp_freebsd_amd64.go
new file mode 100644
index 00000000..1e491cd1
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_freebsd_amd64.go
@@ -0,0 +1,613 @@
+// Code generated by 'ccgo grp/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 grp/grp_freebsd_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T_DECLARED = 0
+ X_GRP_H_ = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PATH_GROUP = "/etc/group"
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// @(#)grp.h 8.2 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Gid_t = X__gid_t /* grp.h:49:18 */
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid Gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:58:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_linux_386.go b/vendor/modernc.org/libc/grp/grp_linux_386.go
new file mode 100644
index 00000000..8c140e9e
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_linux_386.go
@@ -0,0 +1,766 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_386.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_GROUP = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GRP_H = 1
+ X_ILP32 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 9.2.1 Group Database Access <grp.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// For the Single Unix specification we must define this type here.
+type Gid_t = X__gid_t /* grp.h:37:17 */
+
+// The group structure.
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid X__gid_t
+ Fgr_mem uintptr
+} /* grp.h:42:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_linux_amd64.go b/vendor/modernc.org/libc/grp/grp_linux_amd64.go
new file mode 100644
index 00000000..cfd9d848
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_linux_amd64.go
@@ -0,0 +1,781 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_GROUP = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GRP_H = 1
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 9.2.1 Group Database Access <grp.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// For the Single Unix specification we must define this type here.
+type Gid_t = X__gid_t /* grp.h:37:17 */
+
+// The group structure.
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid X__gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:42:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_linux_arm.go b/vendor/modernc.org/libc/grp/grp_linux_arm.go
new file mode 100644
index 00000000..c475790e
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_linux_arm.go
@@ -0,0 +1,825 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_arm.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_GROUP = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GRP_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 9.2.1 Group Database Access <grp.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// For the Single Unix specification we must define this type here.
+type Gid_t = X__gid_t /* grp.h:37:17 */
+
+// The group structure.
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid X__gid_t
+ Fgr_mem uintptr
+} /* grp.h:42:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_linux_arm64.go b/vendor/modernc.org/libc/grp/grp_linux_arm64.go
new file mode 100644
index 00000000..661be98c
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_linux_arm64.go
@@ -0,0 +1,849 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_arm64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_GROUP = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GRP_H = 1
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 9.2.1 Group Database Access <grp.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// For the Single Unix specification we must define this type here.
+type Gid_t = X__gid_t /* grp.h:37:17 */
+
+// The group structure.
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid X__gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:42:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_linux_s390x.go b/vendor/modernc.org/libc/grp/grp_linux_s390x.go
new file mode 100644
index 00000000..405cea31
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_linux_s390x.go
@@ -0,0 +1,780 @@
+// Code generated by 'ccgo grp/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 grp/grp_linux_s390x.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_GROUP = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GRP_H = 1
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 9.2.1 Group Database Access <grp.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// For the Single Unix specification we must define this type here.
+type Gid_t = X__gid_t /* grp.h:37:17 */
+
+// The group structure.
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid X__gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:42:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_netbsd_amd64.go b/vendor/modernc.org/libc/grp/grp_netbsd_amd64.go
new file mode 100644
index 00000000..3c665ee0
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_netbsd_amd64.go
@@ -0,0 +1,1596 @@
+// Code generated by 'ccgo grp/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 grp/grp_netbsd_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+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_GRP_H_ = 0
+ X_LIB_PTHREAD_TYPES_H = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_PATH_GROUP = "/etc/group"
+ 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: 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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+// $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 */
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid X__gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:50:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/grp/grp_openbsd_amd64.go b/vendor/modernc.org/libc/grp/grp_openbsd_amd64.go
new file mode 100644
index 00000000..685ea61c
--- /dev/null
+++ b/vendor/modernc.org/libc/grp/grp_openbsd_amd64.go
@@ -0,0 +1,700 @@
+// Code generated by 'ccgo grp/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 grp/grp_openbsd_amd64.go -pkgname grp', DO NOT EDIT.
+
+package grp
+
+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
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_GRP_H_ = 0
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PATH_GROUP = "/etc/group"
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: grp.h,v 1.13 2018/09/13 12:31:15 millert Exp $
+// $NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd 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.
+//
+// @(#)grp.h 8.2 (Berkeley) 1/21/94
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+type Group = struct {
+ Fgr_name uintptr
+ Fgr_passwd uintptr
+ Fgr_gid Gid_t
+ F__ccgo_pad1 [4]byte
+ Fgr_mem uintptr
+} /* grp.h:50:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/honnef.co/go/netdb/LICENSE b/vendor/modernc.org/libc/honnef.co/go/netdb/LICENSE
new file mode 100644
index 00000000..ddd6ddd7
--- /dev/null
+++ b/vendor/modernc.org/libc/honnef.co/go/netdb/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2012 Dominik Honnef
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/modernc.org/libc/honnef.co/go/netdb/README.md b/vendor/modernc.org/libc/honnef.co/go/netdb/README.md
new file mode 100644
index 00000000..6b9feaa8
--- /dev/null
+++ b/vendor/modernc.org/libc/honnef.co/go/netdb/README.md
@@ -0,0 +1,12 @@
+# netdb
+
+## Install
+
+```sh
+go get honnef.co/go/netdb
+```
+
+## Documentation
+
+Documentation can be found at
+[godoc.org](http://godoc.org/honnef.co/go/netdb).
diff --git a/vendor/modernc.org/libc/honnef.co/go/netdb/netdb.go b/vendor/modernc.org/libc/honnef.co/go/netdb/netdb.go
new file mode 100644
index 00000000..38467268
--- /dev/null
+++ b/vendor/modernc.org/libc/honnef.co/go/netdb/netdb.go
@@ -0,0 +1,859 @@
+// Package netdb provides a Go interface for the protoent and servent
+// structures as defined in netdb.h
+//
+// A pure Go implementation is used by parsing /etc/protocols and
+// /etc/services
+//
+// All return values are pointers that point to the entries in the
+// original list of protocols and services. Manipulating the entries
+// would affect the entire program.
+package netdb // import "modernc.org/libc/honnef.co/go/netdb"
+
+// Modifications Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import (
+ "io/ioutil"
+ "os"
+ "strconv"
+ "strings"
+)
+
+const (
+ protocols = `
+# Internet (IP) protocols
+#
+# Updated from http://www.iana.org/assignments/protocol-numbers and other
+# sources.
+# New protocols will be added on request if they have been officially
+# assigned by IANA and are not historical.
+# If you need a huge list of used numbers please install the nmap package.
+
+ip 0 IP # internet protocol, pseudo protocol number
+hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883]
+icmp 1 ICMP # internet control message protocol
+igmp 2 IGMP # Internet Group Management
+ggp 3 GGP # gateway-gateway protocol
+ipencap 4 IP-ENCAP # IP encapsulated in IP (officially "IP")
+st 5 ST # ST datagram mode
+tcp 6 TCP # transmission control protocol
+egp 8 EGP # exterior gateway protocol
+igp 9 IGP # any private interior gateway (Cisco)
+pup 12 PUP # PARC universal packet protocol
+udp 17 UDP # user datagram protocol
+hmp 20 HMP # host monitoring protocol
+xns-idp 22 XNS-IDP # Xerox NS IDP
+rdp 27 RDP # "reliable datagram" protocol
+iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905]
+dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340]
+xtp 36 XTP # Xpress Transfer Protocol
+ddp 37 DDP # Datagram Delivery Protocol
+idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport
+ipv6 41 IPv6 # Internet Protocol, version 6
+ipv6-route 43 IPv6-Route # Routing Header for IPv6
+ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6
+idrp 45 IDRP # Inter-Domain Routing Protocol
+rsvp 46 RSVP # Reservation Protocol
+gre 47 GRE # General Routing Encapsulation
+esp 50 IPSEC-ESP # Encap Security Payload [RFC2406]
+ah 51 IPSEC-AH # Authentication Header [RFC2402]
+skip 57 SKIP # SKIP
+ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6
+ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6
+ipv6-opts 60 IPv6-Opts # Destination Options for IPv6
+rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB)
+vmtp 81 VMTP # Versatile Message Transport
+eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco)
+ospf 89 OSPFIGP # Open Shortest Path First IGP
+ax.25 93 AX.25 # AX.25 frames
+ipip 94 IPIP # IP-within-IP Encapsulation Protocol
+etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378]
+encap 98 ENCAP # Yet Another IP encapsulation [RFC1241]
+# 99 # any private encryption scheme
+pim 103 PIM # Protocol Independent Multicast
+ipcomp 108 IPCOMP # IP Payload Compression Protocol
+vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798]
+l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661]
+isis 124 ISIS # IS-IS over IPv4
+sctp 132 SCTP # Stream Control Transmission Protocol
+fc 133 FC # Fibre Channel
+mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775]
+udplite 136 UDPLite # UDP-Lite [RFC3828]
+mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023]
+manet 138 # MANET Protocols [RFC5498]
+hip 139 HIP # Host Identity Protocol
+shim6 140 Shim6 # Shim6 Protocol [RFC5533]
+wesp 141 WESP # Wrapped Encapsulating Security Payload
+rohc 142 ROHC # Robust Header Compression
+`
+
+ services = `
+# Network services, Internet style
+#
+# Note that it is presently the policy of IANA to assign a single well-known
+# port number for both TCP and UDP; hence, officially ports have two entries
+# even if the protocol doesn't support UDP operations.
+#
+# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
+#
+# New ports will be added on request if they have been officially assigned
+# by IANA and used in the real-world or are needed by a debian package.
+# If you need a huge list of used numbers please install the nmap package.
+
+tcpmux 1/tcp # TCP port service multiplexer
+echo 7/tcp
+echo 7/udp
+discard 9/tcp sink null
+discard 9/udp sink null
+systat 11/tcp users
+daytime 13/tcp
+daytime 13/udp
+netstat 15/tcp
+qotd 17/tcp quote
+msp 18/tcp # message send protocol
+msp 18/udp
+chargen 19/tcp ttytst source
+chargen 19/udp ttytst source
+ftp-data 20/tcp
+ftp 21/tcp
+fsp 21/udp fspd
+ssh 22/tcp # SSH Remote Login Protocol
+telnet 23/tcp
+smtp 25/tcp mail
+time 37/tcp timserver
+time 37/udp timserver
+rlp 39/udp resource # resource location
+nameserver 42/tcp name # IEN 116
+whois 43/tcp nicname
+tacacs 49/tcp # Login Host Protocol (TACACS)
+tacacs 49/udp
+domain 53/tcp # Domain Name Server
+domain 53/udp
+bootps 67/udp
+bootpc 68/udp
+tftp 69/udp
+gopher 70/tcp # Internet Gopher
+finger 79/tcp
+http 80/tcp www # WorldWideWeb HTTP
+link 87/tcp ttylink
+kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5
+kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5
+iso-tsap 102/tcp tsap # part of ISODE
+acr-nema 104/tcp dicom # Digital Imag. & Comm. 300
+pop3 110/tcp pop-3 # POP version 3
+sunrpc 111/tcp portmapper # RPC 4.0 portmapper
+sunrpc 111/udp portmapper
+auth 113/tcp authentication tap ident
+sftp 115/tcp
+nntp 119/tcp readnews untp # USENET News Transfer Protocol
+ntp 123/udp # Network Time Protocol
+epmap 135/tcp loc-srv # DCE endpoint resolution
+epmap 135/udp loc-srv
+netbios-ns 137/tcp # NETBIOS Name Service
+netbios-ns 137/udp
+netbios-dgm 138/tcp # NETBIOS Datagram Service
+netbios-dgm 138/udp
+netbios-ssn 139/tcp # NETBIOS session service
+netbios-ssn 139/udp
+imap2 143/tcp imap # Interim Mail Access P 2 and 4
+snmp 161/tcp # Simple Net Mgmt Protocol
+snmp 161/udp
+snmp-trap 162/tcp snmptrap # Traps for SNMP
+snmp-trap 162/udp snmptrap
+cmip-man 163/tcp # ISO mgmt over IP (CMOT)
+cmip-man 163/udp
+cmip-agent 164/tcp
+cmip-agent 164/udp
+mailq 174/tcp # Mailer transport queue for Zmailer
+mailq 174/udp
+xdmcp 177/tcp # X Display Mgr. Control Proto
+xdmcp 177/udp
+nextstep 178/tcp NeXTStep NextStep # NeXTStep window
+nextstep 178/udp NeXTStep NextStep # server
+bgp 179/tcp # Border Gateway Protocol
+irc 194/tcp # Internet Relay Chat
+irc 194/udp
+smux 199/tcp # SNMP Unix Multiplexer
+smux 199/udp
+at-rtmp 201/tcp # AppleTalk routing
+at-rtmp 201/udp
+at-nbp 202/tcp # AppleTalk name binding
+at-nbp 202/udp
+at-echo 204/tcp # AppleTalk echo
+at-echo 204/udp
+at-zis 206/tcp # AppleTalk zone information
+at-zis 206/udp
+qmtp 209/tcp # Quick Mail Transfer Protocol
+qmtp 209/udp
+z3950 210/tcp wais # NISO Z39.50 database
+z3950 210/udp wais
+ipx 213/tcp # IPX
+ipx 213/udp
+ptp-event 319/udp
+ptp-general 320/udp
+pawserv 345/tcp # Perf Analysis Workbench
+pawserv 345/udp
+zserv 346/tcp # Zebra server
+zserv 346/udp
+fatserv 347/tcp # Fatmen Server
+fatserv 347/udp
+rpc2portmap 369/tcp
+rpc2portmap 369/udp # Coda portmapper
+codaauth2 370/tcp
+codaauth2 370/udp # Coda authentication server
+clearcase 371/tcp Clearcase
+clearcase 371/udp Clearcase
+ulistserv 372/tcp # UNIX Listserv
+ulistserv 372/udp
+ldap 389/tcp # Lightweight Directory Access Protocol
+ldap 389/udp
+imsp 406/tcp # Interactive Mail Support Protocol
+imsp 406/udp
+svrloc 427/tcp # Server Location
+svrloc 427/udp
+https 443/tcp # http protocol over TLS/SSL
+snpp 444/tcp # Simple Network Paging Protocol
+snpp 444/udp
+microsoft-ds 445/tcp # Microsoft Naked CIFS
+microsoft-ds 445/udp
+kpasswd 464/tcp
+kpasswd 464/udp
+submissions 465/tcp ssmtp smtps urd # Submission over TLS [RFC8314]
+saft 487/tcp # Simple Asynchronous File Transfer
+saft 487/udp
+isakmp 500/tcp # IPsec - Internet Security Association
+isakmp 500/udp # and Key Management Protocol
+rtsp 554/tcp # Real Time Stream Control Protocol
+rtsp 554/udp
+nqs 607/tcp # Network Queuing system
+nqs 607/udp
+npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS
+npmp-local 610/udp dqs313_qmaster
+npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS
+npmp-gui 611/udp dqs313_execd
+hmmp-ind 612/tcp dqs313_intercell # HMMP Indication / DQS
+hmmp-ind 612/udp dqs313_intercell
+asf-rmcp 623/udp # ASF Remote Management and Control Protocol
+qmqp 628/tcp
+qmqp 628/udp
+ipp 631/tcp # Internet Printing Protocol
+ipp 631/udp
+#
+# UNIX specific services
+#
+exec 512/tcp
+biff 512/udp comsat
+login 513/tcp
+who 513/udp whod
+shell 514/tcp cmd # no passwords used
+syslog 514/udp
+printer 515/tcp spooler # line printer spooler
+talk 517/udp
+ntalk 518/udp
+route 520/udp router routed # RIP
+timed 525/udp timeserver
+tempo 526/tcp newdate
+courier 530/tcp rpc
+conference 531/tcp chat
+netnews 532/tcp readnews
+netwall 533/udp # for emergency broadcasts
+gdomap 538/tcp # GNUstep distributed objects
+gdomap 538/udp
+uucp 540/tcp uucpd # uucp daemon
+klogin 543/tcp # Kerberized 'rlogin' (v5)
+kshell 544/tcp krcmd # Kerberized 'rsh' (v5)
+dhcpv6-client 546/tcp
+dhcpv6-client 546/udp
+dhcpv6-server 547/tcp
+dhcpv6-server 547/udp
+afpovertcp 548/tcp # AFP over TCP
+afpovertcp 548/udp
+idfp 549/tcp
+idfp 549/udp
+remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
+nntps 563/tcp snntp # NNTP over SSL
+submission 587/tcp # Submission [RFC4409]
+ldaps 636/tcp # LDAP over SSL
+ldaps 636/udp
+tinc 655/tcp # tinc control port
+tinc 655/udp
+silc 706/tcp
+silc 706/udp
+kerberos-adm 749/tcp # Kerberos 'kadmin' (v5)
+#
+webster 765/tcp # Network dictionary
+webster 765/udp
+domain-s 853/tcp # DNS over TLS [RFC7858]
+domain-s 853/udp # DNS over DTLS [RFC8094]
+rsync 873/tcp
+ftps-data 989/tcp # FTP over SSL (data)
+ftps 990/tcp
+telnets 992/tcp # Telnet over SSL
+imaps 993/tcp # IMAP over SSL
+pop3s 995/tcp # POP-3 over SSL
+#
+# From "ssigned Numbers":
+#
+#> The Registered Ports are not controlled by the IANA and on most systems
+#> can be used by ordinary user processes or programs executed by ordinary
+#> users.
+#
+#> Ports are used in the TCP [45,106] to name the ends of logical
+#> connections which carry long term conversations. For the purpose of
+#> providing services to unknown callers, a service contact port is
+#> defined. This list specifies the port used by the server process as its
+#> contact port. While the IANA can not control uses of these ports it
+#> does register or list uses of these ports as a convienence to the
+#> community.
+#
+socks 1080/tcp # socks proxy server
+socks 1080/udp
+proofd 1093/tcp
+proofd 1093/udp
+rootd 1094/tcp
+rootd 1094/udp
+openvpn 1194/tcp
+openvpn 1194/udp
+rmiregistry 1099/tcp # Java RMI Registry
+rmiregistry 1099/udp
+kazaa 1214/tcp
+kazaa 1214/udp
+nessus 1241/tcp # Nessus vulnerability
+nessus 1241/udp # assessment scanner
+lotusnote 1352/tcp lotusnotes # Lotus Note
+lotusnote 1352/udp lotusnotes
+ms-sql-s 1433/tcp # Microsoft SQL Server
+ms-sql-s 1433/udp
+ms-sql-m 1434/tcp # Microsoft SQL Monitor
+ms-sql-m 1434/udp
+ingreslock 1524/tcp
+ingreslock 1524/udp
+datametrics 1645/tcp old-radius
+datametrics 1645/udp old-radius
+sa-msg-port 1646/tcp old-radacct
+sa-msg-port 1646/udp old-radacct
+kermit 1649/tcp
+kermit 1649/udp
+groupwise 1677/tcp
+groupwise 1677/udp
+l2f 1701/tcp l2tp
+l2f 1701/udp l2tp
+radius 1812/tcp
+radius 1812/udp
+radius-acct 1813/tcp radacct # Radius Accounting
+radius-acct 1813/udp radacct
+msnp 1863/tcp # MSN Messenger
+msnp 1863/udp
+unix-status 1957/tcp # remstats unix-status server
+log-server 1958/tcp # remstats log server
+remoteping 1959/tcp # remstats remoteping server
+cisco-sccp 2000/tcp # Cisco SCCP
+cisco-sccp 2000/udp
+search 2010/tcp ndtp
+pipe-server 2010/tcp pipe_server
+nfs 2049/tcp # Network File System
+nfs 2049/udp # Network File System
+gnunet 2086/tcp
+gnunet 2086/udp
+rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99
+rtcm-sc104 2101/udp
+gsigatekeeper 2119/tcp
+gsigatekeeper 2119/udp
+gris 2135/tcp # Grid Resource Information Server
+gris 2135/udp
+cvspserver 2401/tcp # CVS client/server operations
+cvspserver 2401/udp
+venus 2430/tcp # codacon port
+venus 2430/udp # Venus callback/wbc interface
+venus-se 2431/tcp # tcp side effects
+venus-se 2431/udp # udp sftp side effect
+codasrv 2432/tcp # not used
+codasrv 2432/udp # server port
+codasrv-se 2433/tcp # tcp side effects
+codasrv-se 2433/udp # udp sftp side effect
+mon 2583/tcp # MON traps
+mon 2583/udp
+dict 2628/tcp # Dictionary server
+dict 2628/udp
+f5-globalsite 2792/tcp
+f5-globalsite 2792/udp
+gsiftp 2811/tcp
+gsiftp 2811/udp
+gpsd 2947/tcp
+gpsd 2947/udp
+gds-db 3050/tcp gds_db # InterBase server
+gds-db 3050/udp gds_db
+icpv2 3130/tcp icp # Internet Cache Protocol
+icpv2 3130/udp icp
+isns 3205/tcp # iSNS Server Port
+isns 3205/udp # iSNS Server Port
+iscsi-target 3260/tcp
+mysql 3306/tcp
+mysql 3306/udp
+nut 3493/tcp # Network UPS Tools
+nut 3493/udp
+distcc 3632/tcp # distributed compiler
+distcc 3632/udp
+daap 3689/tcp # Digital Audio Access Protocol
+daap 3689/udp
+svn 3690/tcp subversion # Subversion protocol
+svn 3690/udp subversion
+suucp 4031/tcp # UUCP over SSL
+suucp 4031/udp
+sysrqd 4094/tcp # sysrq daemon
+sysrqd 4094/udp
+sieve 4190/tcp # ManageSieve Protocol
+epmd 4369/tcp # Erlang Port Mapper Daemon
+epmd 4369/udp
+remctl 4373/tcp # Remote Authenticated Command Service
+remctl 4373/udp
+f5-iquery 4353/tcp # F5 iQuery
+f5-iquery 4353/udp
+ipsec-nat-t 4500/udp # IPsec NAT-Traversal [RFC3947]
+iax 4569/tcp # Inter-Asterisk eXchange
+iax 4569/udp
+mtn 4691/tcp # monotone Netsync Protocol
+mtn 4691/udp
+radmin-port 4899/tcp # RAdmin Port
+radmin-port 4899/udp
+rfe 5002/udp # Radio Free Ethernet
+rfe 5002/tcp
+mmcc 5050/tcp # multimedia conference control tool (Yahoo IM)
+mmcc 5050/udp
+sip 5060/tcp # Session Initiation Protocol
+sip 5060/udp
+sip-tls 5061/tcp
+sip-tls 5061/udp
+aol 5190/tcp # AIM
+aol 5190/udp
+xmpp-client 5222/tcp jabber-client # Jabber Client Connection
+xmpp-client 5222/udp jabber-client
+xmpp-server 5269/tcp jabber-server # Jabber Server Connection
+xmpp-server 5269/udp jabber-server
+cfengine 5308/tcp
+cfengine 5308/udp
+mdns 5353/tcp # Multicast DNS
+mdns 5353/udp
+postgresql 5432/tcp postgres # PostgreSQL Database
+postgresql 5432/udp postgres
+freeciv 5556/tcp rptp # Freeciv gameplay
+freeciv 5556/udp
+amqps 5671/tcp # AMQP protocol over TLS/SSL
+amqp 5672/tcp
+amqp 5672/udp
+amqp 5672/sctp
+ggz 5688/tcp # GGZ Gaming Zone
+ggz 5688/udp
+x11 6000/tcp x11-0 # X Window System
+x11 6000/udp x11-0
+x11-1 6001/tcp
+x11-1 6001/udp
+x11-2 6002/tcp
+x11-2 6002/udp
+x11-3 6003/tcp
+x11-3 6003/udp
+x11-4 6004/tcp
+x11-4 6004/udp
+x11-5 6005/tcp
+x11-5 6005/udp
+x11-6 6006/tcp
+x11-6 6006/udp
+x11-7 6007/tcp
+x11-7 6007/udp
+gnutella-svc 6346/tcp # gnutella
+gnutella-svc 6346/udp
+gnutella-rtr 6347/tcp # gnutella
+gnutella-rtr 6347/udp
+sge-qmaster 6444/tcp sge_qmaster # Grid Engine Qmaster Service
+sge-qmaster 6444/udp sge_qmaster
+sge-execd 6445/tcp sge_execd # Grid Engine Execution Service
+sge-execd 6445/udp sge_execd
+mysql-proxy 6446/tcp # MySQL Proxy
+mysql-proxy 6446/udp
+babel 6696/udp # Babel Routing Protocol
+ircs-u 6697/tcp # Internet Relay Chat via TLS/SSL
+afs3-fileserver 7000/tcp bbs # file server itself
+afs3-fileserver 7000/udp bbs
+afs3-callback 7001/tcp # callbacks to cache managers
+afs3-callback 7001/udp
+afs3-prserver 7002/tcp # users & groups database
+afs3-prserver 7002/udp
+afs3-vlserver 7003/tcp # volume location database
+afs3-vlserver 7003/udp
+afs3-kaserver 7004/tcp # AFS/Kerberos authentication
+afs3-kaserver 7004/udp
+afs3-volser 7005/tcp # volume managment server
+afs3-volser 7005/udp
+afs3-errors 7006/tcp # error interpretation service
+afs3-errors 7006/udp
+afs3-bos 7007/tcp # basic overseer process
+afs3-bos 7007/udp
+afs3-update 7008/tcp # server-to-server updater
+afs3-update 7008/udp
+afs3-rmtsys 7009/tcp # remote cache manager service
+afs3-rmtsys 7009/udp
+font-service 7100/tcp xfs # X Font Service
+font-service 7100/udp xfs
+http-alt 8080/tcp webcache # WWW caching service
+http-alt 8080/udp
+puppet 8140/tcp # The Puppet master service
+bacula-dir 9101/tcp # Bacula Director
+bacula-dir 9101/udp
+bacula-fd 9102/tcp # Bacula File Daemon
+bacula-fd 9102/udp
+bacula-sd 9103/tcp # Bacula Storage Daemon
+bacula-sd 9103/udp
+xmms2 9667/tcp # Cross-platform Music Multiplexing System
+xmms2 9667/udp
+nbd 10809/tcp # Linux Network Block Device
+zabbix-agent 10050/tcp # Zabbix Agent
+zabbix-agent 10050/udp
+zabbix-trapper 10051/tcp # Zabbix Trapper
+zabbix-trapper 10051/udp
+amanda 10080/tcp # amanda backup services
+amanda 10080/udp
+dicom 11112/tcp
+hkp 11371/tcp # OpenPGP HTTP Keyserver
+hkp 11371/udp
+bprd 13720/tcp # VERITAS NetBackup
+bprd 13720/udp
+bpdbm 13721/tcp # VERITAS NetBackup
+bpdbm 13721/udp
+bpjava-msvc 13722/tcp # BP Java MSVC Protocol
+bpjava-msvc 13722/udp
+vnetd 13724/tcp # Veritas Network Utility
+vnetd 13724/udp
+bpcd 13782/tcp # VERITAS NetBackup
+bpcd 13782/udp
+vopied 13783/tcp # VERITAS NetBackup
+vopied 13783/udp
+db-lsp 17500/tcp # Dropbox LanSync Protocol
+dcap 22125/tcp # dCache Access Protocol
+gsidcap 22128/tcp # GSI dCache Access Protocol
+wnn6 22273/tcp # wnn6
+wnn6 22273/udp
+
+#
+# Datagram Delivery Protocol services
+#
+rtmp 1/ddp # Routing Table Maintenance Protocol
+nbp 2/ddp # Name Binding Protocol
+echo 4/ddp # AppleTalk Echo Protocol
+zip 6/ddp # Zone Information Protocol
+
+#=========================================================================
+# The remaining port numbers are not as allocated by IANA.
+#=========================================================================
+
+# Kerberos (Project Athena/MIT) services
+# Note that these are for Kerberos v4, and are unofficial. Sites running
+# v4 should uncomment these and comment out the v5 entries above.
+#
+kerberos4 750/udp kerberos-iv kdc # Kerberos (server)
+kerberos4 750/tcp kerberos-iv kdc
+kerberos-master 751/udp kerberos_master # Kerberos authentication
+kerberos-master 751/tcp
+passwd-server 752/udp passwd_server # Kerberos passwd server
+krb-prop 754/tcp krb_prop krb5_prop hprop # Kerberos slave propagation
+krbupdate 760/tcp kreg # Kerberos registration
+swat 901/tcp # swat
+kpop 1109/tcp # Pop with Kerberos
+knetd 2053/tcp # Kerberos de-multiplexor
+zephyr-srv 2102/udp # Zephyr server
+zephyr-clt 2103/udp # Zephyr serv-hm connection
+zephyr-hm 2104/udp # Zephyr hostmanager
+eklogin 2105/tcp # Kerberos encrypted rlogin
+# Hmmm. Are we using Kv4 or Kv5 now? Worrying.
+# The following is probably Kerberos v5 --- ajt@debian.org (11/02/2000)
+kx 2111/tcp # X over Kerberos
+iprop 2121/tcp # incremental propagation
+#
+# Unofficial but necessary (for NetBSD) services
+#
+supfilesrv 871/tcp # SUP server
+supfiledbg 1127/tcp # SUP debugging
+
+#
+# Services added for the Debian GNU/Linux distribution
+#
+poppassd 106/tcp # Eudora
+poppassd 106/udp
+moira-db 775/tcp moira_db # Moira database
+moira-update 777/tcp moira_update # Moira update protocol
+moira-ureg 779/udp moira_ureg # Moira user registration
+spamd 783/tcp # spamassassin daemon
+omirr 808/tcp omirrd # online mirror
+omirr 808/udp omirrd
+customs 1001/tcp # pmake customs server
+customs 1001/udp
+skkserv 1178/tcp # skk jisho server port
+predict 1210/udp # predict -- satellite tracking
+rmtcfg 1236/tcp # Gracilis Packeten remote config server
+wipld 1300/tcp # Wipl network monitor
+xtel 1313/tcp # french minitel
+xtelw 1314/tcp # french minitel
+support 1529/tcp # GNATS
+cfinger 2003/tcp # GNU Finger
+frox 2121/tcp # frox: caching ftp proxy
+ninstall 2150/tcp # ninstall service
+ninstall 2150/udp
+zebrasrv 2600/tcp # zebra service
+zebra 2601/tcp # zebra vty
+ripd 2602/tcp # ripd vty (zebra)
+ripngd 2603/tcp # ripngd vty (zebra)
+ospfd 2604/tcp # ospfd vty (zebra)
+bgpd 2605/tcp # bgpd vty (zebra)
+ospf6d 2606/tcp # ospf6d vty (zebra)
+ospfapi 2607/tcp # OSPF-API
+isisd 2608/tcp # ISISd vty (zebra)
+afbackup 2988/tcp # Afbackup system
+afbackup 2988/udp
+afmbackup 2989/tcp # Afmbackup system
+afmbackup 2989/udp
+xtell 4224/tcp # xtell server
+fax 4557/tcp # FAX transmission service (old)
+hylafax 4559/tcp # HylaFAX client-server protocol (new)
+distmp3 4600/tcp # distmp3host daemon
+munin 4949/tcp lrrd # Munin
+enbd-cstatd 5051/tcp # ENBD client statd
+enbd-sstatd 5052/tcp # ENBD server statd
+pcrd 5151/tcp # PCR-1000 Daemon
+noclog 5354/tcp # noclogd with TCP (nocol)
+noclog 5354/udp # noclogd with UDP (nocol)
+hostmon 5355/tcp # hostmon uses TCP (nocol)
+hostmon 5355/udp # hostmon uses UDP (nocol)
+rplay 5555/udp # RPlay audio service
+nrpe 5666/tcp # Nagios Remote Plugin Executor
+nsca 5667/tcp # Nagios Agent - NSCA
+mrtd 5674/tcp # MRT Routing Daemon
+bgpsim 5675/tcp # MRT Routing Simulator
+canna 5680/tcp # cannaserver
+syslog-tls 6514/tcp # Syslog over TLS [RFC5425]
+sane-port 6566/tcp sane saned # SANE network scanner daemon
+ircd 6667/tcp # Internet Relay Chat
+zope-ftp 8021/tcp # zope management by ftp
+tproxy 8081/tcp # Transparent Proxy
+omniorb 8088/tcp # OmniORB
+omniorb 8088/udp
+clc-build-daemon 8990/tcp # Common lisp build daemon
+xinetd 9098/tcp
+mandelspawn 9359/udp mandelbrot # network mandelbrot
+git 9418/tcp # Git Version Control System
+zope 9673/tcp # zope server
+webmin 10000/tcp
+kamanda 10081/tcp # amanda backup services (Kerberos)
+kamanda 10081/udp
+amandaidx 10082/tcp # amanda backup services
+amidxtape 10083/tcp # amanda backup services
+smsqp 11201/tcp # Alamin SMS gateway
+smsqp 11201/udp
+xpilot 15345/tcp # XPilot Contact Port
+xpilot 15345/udp
+sgi-cmsd 17001/udp # Cluster membership services daemon
+sgi-crsd 17002/udp
+sgi-gcd 17003/udp # SGI Group membership daemon
+sgi-cad 17004/tcp # Cluster Admin daemon
+isdnlog 20011/tcp # isdn logging system
+isdnlog 20011/udp
+vboxd 20012/tcp # voice box system
+vboxd 20012/udp
+binkp 24554/tcp # binkp fidonet protocol
+asp 27374/tcp # Address Search Protocol
+asp 27374/udp
+csync2 30865/tcp # cluster synchronization tool
+dircproxy 57000/tcp # Detachable IRC Proxy
+tfido 60177/tcp # fidonet EMSI over telnet
+fido 60179/tcp # fidonet EMSI over TCP
+
+# Local services
+`
+)
+
+type Protoent struct {
+ Name string
+ Aliases []string
+ Number int
+}
+
+type Servent struct {
+ Name string
+ Aliases []string
+ Port int
+ Protocol *Protoent
+}
+
+// These variables get populated from /etc/protocols and /etc/services
+// respectively.
+var (
+ Protocols []*Protoent
+ Services []*Servent
+)
+
+func init() {
+ protoMap := make(map[string]*Protoent)
+
+ // Load protocols
+ data, err := ioutil.ReadFile("/etc/protocols")
+ if err != nil {
+ if !os.IsNotExist(err) {
+ panic(err)
+ }
+
+ data = []byte(protocols)
+ }
+
+ for _, line := range strings.Split(string(data), "\n") {
+ line = strings.TrimSpace(line)
+ split := strings.SplitN(line, "#", 2)
+ fields := strings.Fields(split[0])
+ if len(fields) < 2 {
+ continue
+ }
+
+ num, err := strconv.ParseInt(fields[1], 10, 32)
+ if err != nil {
+ panic(err)
+ }
+
+ protoent := &Protoent{
+ Name: fields[0],
+ Aliases: fields[2:],
+ Number: int(num),
+ }
+ Protocols = append(Protocols, protoent)
+
+ protoMap[fields[0]] = protoent
+ }
+
+ // Load services
+ data, err = ioutil.ReadFile("/etc/services")
+ if err != nil {
+ if !os.IsNotExist(err) {
+ panic(err)
+ }
+
+ data = []byte(services)
+ }
+
+ for _, line := range strings.Split(string(data), "\n") {
+ line = strings.TrimSpace(line)
+ split := strings.SplitN(line, "#", 2)
+ fields := strings.Fields(split[0])
+ if len(fields) < 2 {
+ continue
+ }
+
+ name := fields[0]
+ portproto := strings.SplitN(fields[1], "/", 2)
+ port, err := strconv.ParseInt(portproto[0], 10, 32)
+ if err != nil {
+ panic(err)
+ }
+
+ proto := portproto[1]
+ aliases := fields[2:]
+
+ Services = append(Services, &Servent{
+ Name: name,
+ Aliases: aliases,
+ Port: int(port),
+ Protocol: protoMap[proto],
+ })
+ }
+}
+
+// Equal checks if two Protoents are the same, which is the case if
+// their protocol numbers are identical or when both Protoents are
+// nil.
+func (this *Protoent) Equal(other *Protoent) bool {
+ if this == nil && other == nil {
+ return true
+ }
+
+ if this == nil || other == nil {
+ return false
+ }
+
+ return this.Number == other.Number
+}
+
+// Equal checks if two Servents are the same, which is the case if
+// their port numbers and protocols are identical or when both
+// Servents are nil.
+func (this *Servent) Equal(other *Servent) bool {
+ if this == nil && other == nil {
+ return true
+ }
+
+ if this == nil || other == nil {
+ return false
+ }
+
+ return this.Port == other.Port &&
+ this.Protocol.Equal(other.Protocol)
+}
+
+// GetProtoByNumber returns the Protoent for a given protocol number.
+func GetProtoByNumber(num int) (protoent *Protoent) {
+ for _, protoent := range Protocols {
+ if protoent.Number == num {
+ return protoent
+ }
+ }
+ return nil
+}
+
+// GetProtoByName returns the Protoent whose name or any of its
+// aliases matches the argument.
+func GetProtoByName(name string) (protoent *Protoent) {
+ for _, protoent := range Protocols {
+ if protoent.Name == name {
+ return protoent
+ }
+
+ for _, alias := range protoent.Aliases {
+ if alias == name {
+ return protoent
+ }
+ }
+ }
+
+ return nil
+}
+
+// GetServByName returns the Servent for a given service name or alias
+// and protocol. If the protocol is nil, the first service matching
+// the service name is returned.
+func GetServByName(name string, protocol *Protoent) (servent *Servent) {
+ for _, servent := range Services {
+ if !servent.Protocol.Equal(protocol) {
+ continue
+ }
+
+ if servent.Name == name {
+ return servent
+ }
+
+ for _, alias := range servent.Aliases {
+ if alias == name {
+ return servent
+ }
+ }
+ }
+
+ return nil
+}
+
+// GetServByPort returns the Servent for a given port number and
+// protocol. If the protocol is nil, the first service matching the
+// port number is returned.
+func GetServByPort(port int, protocol *Protoent) *Servent {
+ for _, servent := range Services {
+ if servent.Port == port && servent.Protocol.Equal(protocol) {
+ return servent
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/modernc.org/libc/int128.go b/vendor/modernc.org/libc/int128.go
new file mode 100644
index 00000000..7995f084
--- /dev/null
+++ b/vendor/modernc.org/libc/int128.go
@@ -0,0 +1,331 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Some code is copied and adjusted from
+// https://github.com/lukechampine/uint128, the original LICENSE file
+// reproduced below in full as of 2021-01-19:
+
+/*
+The MIT License (MIT)
+
+Copyright (c) 2019 Luke Champine
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+package libc // import "modernc.org/libc"
+
+import (
+ mbits "math/bits"
+
+ "modernc.org/mathutil"
+)
+
+type Int128 mathutil.Int128
+
+var (
+ int128Minus1 = Int128{-1, -1}
+ int128Plus1 = Int128{Lo: 1}
+)
+
+func Int128FromFloat32(n float32) Int128 { return Int128(mathutil.NewInt128FromFloat32(n)) }
+func Int128FromFloat64(n float64) Int128 { return Int128(mathutil.NewInt128FromFloat64(n)) }
+func Int128FromInt16(n int16) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromInt32(n int32) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromInt64(n int64) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromInt8(n int8) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromUint16(n uint16) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromUint32(n uint32) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromUint64(n uint64) Int128 { return Int128(mathutil.NewInt128FromUint64(n)) }
+func Int128FromUint8(n uint8) Int128 { return Int128(mathutil.NewInt128FromInt64(int64(n))) }
+func Int128FromUint128(n Uint128) Int128 { return Int128{Lo: int64(n.Lo), Hi: int64(n.Hi)} }
+
+func (n *Int128) LValueDec() { *n = n.Add(int128Minus1) }
+func (n *Int128) LValueInc() { *n = n.Add(int128Plus1) }
+func (n *Int128) LValueShl(c int32) { *n = n.Shl(c) }
+func (n *Int128) LValueShr(c int32) { *n = n.Shr(c) }
+func (n Int128) And(v Int128) Int128 { return Int128{n.Lo & v.Lo, n.Hi & v.Hi} }
+func (n Int128) Cmp(y Int128) int { return mathutil.Int128(n).Cmp(mathutil.Int128(y)) }
+func (n Int128) Int16() int16 { return int16(n.Lo) }
+func (n Int128) Int32() int32 { return int32(n.Lo) }
+func (n Int128) Int64() int64 { return int64(n.Lo) }
+func (n Int128) Int8() int8 { return int8(n.Lo) }
+func (n Int128) Or(v Int128) Int128 { return Int128{n.Lo | v.Lo, n.Hi | v.Hi} }
+func (n Int128) Uint128() (r Uint128) { return Uint128{uint64(n.Lo), uint64(n.Hi)} }
+func (n Int128) Uint16() uint16 { return uint16(n.Lo) }
+func (n Int128) Uint32() uint32 { return uint32(n.Lo) }
+func (n Int128) Uint64() uint64 { return uint64(n.Lo) }
+func (n Int128) Uint8() uint8 { return uint8(n.Lo) }
+func (n Int128) Xor(v Int128) Int128 { return Int128{n.Lo ^ v.Lo, n.Hi ^ v.Hi} }
+
+func (n Int128) Neg() Int128 {
+ n.Lo ^= -1
+ n.Hi ^= -1
+ return n.Add(int128Plus1)
+}
+
+func (n Int128) Float32() float32 {
+ switch n.Hi {
+ case 0:
+ return float32(uint64(n.Lo))
+ case -1:
+ return -float32(uint64(n.Lo))
+ }
+
+ if n.Hi < 0 {
+ n = n.Neg()
+ return -float32(n.Hi)*(1<<64) + float32(uint64(n.Lo))
+ }
+
+ return -float32(n.Hi)*(1<<64) + float32(uint64(n.Lo))
+}
+
+func (n Int128) Float64() float64 {
+ switch n.Hi {
+ case 0:
+ return float64(uint64(n.Lo))
+ case -1:
+ return -float64(uint64(n.Lo))
+ }
+
+ if n.Hi < 0 {
+ n = n.Neg()
+ return -float64(n.Hi)*(1<<64) + float64(uint64(n.Lo))
+ }
+
+ return float64(n.Hi)*(1<<64) + float64(uint64(n.Lo))
+}
+
+func (n Int128) Add(m Int128) (r Int128) {
+ r.Lo = n.Lo + m.Lo
+ r.Hi = n.Hi + m.Hi
+ if uint64(r.Lo) < uint64(n.Lo) {
+ r.Hi++
+ }
+ return r
+}
+
+func (n Int128) Mul(m Int128) Int128 {
+ hi, lo := mbits.Mul64(uint64(n.Lo), uint64(m.Lo))
+ _, p1 := mbits.Mul64(uint64(n.Hi), uint64(m.Lo))
+ _, p3 := mbits.Mul64(uint64(n.Lo), uint64(m.Hi))
+ hi, _ = mbits.Add64(hi, p1, 0)
+ hi, _ = mbits.Add64(hi, p3, 0)
+ return Int128{int64(lo), int64(hi)}
+}
+
+func (n Int128) Shl(c int32) (r Int128) {
+ if c > 64 {
+ r.Lo = 0
+ r.Hi = n.Lo << (c - 64)
+ } else {
+ r.Lo = n.Lo << c
+ r.Hi = n.Hi<<c | n.Lo>>(64-c)
+ }
+ return r
+}
+
+func (n Int128) Shr(c int32) (r Int128) {
+ if c > 64 {
+ r.Lo = n.Hi >> (c - 64)
+ switch {
+ case n.Hi < 0:
+ r.Hi = -1
+ default:
+ r.Hi = 0
+ }
+ } else {
+ r.Lo = n.Lo>>c | n.Hi<<(64-c)
+ r.Hi = n.Hi >> c
+ }
+ return r
+}
+
+type Uint128 mathutil.Uint128
+
+func Uint128FromFloat32(n float32) Uint128 { return Uint128(mathutil.NewUint128FromFloat32(n)) }
+func Uint128FromFloat64(n float64) Uint128 { return Uint128(mathutil.NewUint128FromFloat64(n)) }
+func Uint128FromInt128(n Int128) Uint128 { return Uint128{Lo: uint64(n.Lo), Hi: uint64(n.Hi)} }
+func Uint128FromInt16(n int16) Uint128 { return Uint128FromInt64(int64(n)) }
+func Uint128FromInt32(n int32) Uint128 { return Uint128FromInt64(int64(n)) }
+func Uint128FromInt8(n int8) Uint128 { return Uint128FromInt64(int64(n)) }
+func Uint128FromUint16(n uint16) Uint128 { return Uint128{Lo: uint64(n)} }
+func Uint128FromUint32(n uint32) Uint128 { return Uint128{Lo: uint64(n)} }
+func Uint128FromUint64(n uint64) Uint128 { return Uint128{Lo: n} }
+func Uint128FromUint8(n uint8) Uint128 { return Uint128{Lo: uint64(n)} }
+
+func Uint128FromInt64(n int64) (r Uint128) {
+ r.Lo = uint64(n)
+ if n < 0 {
+ r.Hi = ^uint64(0)
+ }
+ return r
+}
+
+func (n *Uint128) LValueShl(c int32) { *n = n.Shl(c) }
+func (n *Uint128) LValueShr(c int32) { *n = n.Shr(c) }
+func (n Uint128) And(m Uint128) Uint128 { return Uint128{n.Lo & m.Lo, n.Hi & m.Hi} }
+func (n Uint128) Int128() Int128 { return Int128{int64(n.Lo), int64(n.Hi)} }
+func (n Uint128) Int16() int16 { return int16(n.Lo) }
+func (n Uint128) Int32() int32 { return int32(n.Lo) }
+func (n Uint128) Int64() int64 { return int64(n.Lo) }
+func (n Uint128) Int8() int8 { return int8(n.Lo) }
+func (n Uint128) Or(m Uint128) Uint128 { return Uint128{n.Lo | m.Lo, n.Hi | m.Hi} }
+func (n Uint128) Uint16() uint16 { return uint16(n.Lo) }
+func (n Uint128) Uint32() uint32 { return uint32(n.Lo) }
+func (n Uint128) Uint64() uint64 { return n.Lo }
+func (n Uint128) Uint8() uint8 { return uint8(n.Lo) }
+func (n Uint128) Xor(m Uint128) Uint128 { return Uint128{n.Lo ^ m.Lo, n.Hi ^ m.Hi} }
+
+func (n Uint128) Add(m Uint128) (r Uint128) {
+ var carry uint64
+ r.Lo, carry = mbits.Add64(n.Lo, m.Lo, 0)
+ r.Hi, _ = mbits.Add64(n.Hi, m.Hi, carry)
+ return r
+}
+
+func (n Uint128) Mul(m Uint128) Uint128 {
+ hi, lo := mbits.Mul64(n.Lo, m.Lo)
+ _, p1 := mbits.Mul64(n.Hi, m.Lo)
+ _, p3 := mbits.Mul64(n.Lo, m.Hi)
+ hi, _ = mbits.Add64(hi, p1, 0)
+ hi, _ = mbits.Add64(hi, p3, 0)
+ return Uint128{lo, hi}
+}
+
+func (n Uint128) Shr(c int32) (r Uint128) {
+ if c > 64 {
+ r.Lo = n.Hi >> (c - 64)
+ r.Hi = 0
+ } else {
+ r.Lo = n.Lo>>c | n.Hi<<(64-c)
+ r.Hi = n.Hi >> c
+ }
+ return r
+}
+
+func (n Uint128) mulOvf(m Uint128) (_ Uint128, ovf bool) {
+ hi, lo := mbits.Mul64(n.Lo, m.Lo)
+ p0, p1 := mbits.Mul64(n.Hi, m.Lo)
+ p2, p3 := mbits.Mul64(n.Lo, m.Hi)
+ hi, c0 := mbits.Add64(hi, p1, 0)
+ hi, c1 := mbits.Add64(hi, p3, 0)
+ ovf = p0 != 0 || p2 != 0 || c0 != 0 || c1 != 0
+ return Uint128{lo, hi}, ovf
+}
+
+func (n Uint128) quoRem(m Uint128) (q, r Uint128) {
+ if m.Hi == 0 {
+ var r64 uint64
+ q, r64 = n.quoRem64(m.Lo)
+ r = Uint128FromUint64(r64)
+ } else {
+ // generate a "trial quotient," guaranteed to be within 1 of the actual
+ // quotient, then adjust.
+ nz := mbits.LeadingZeros64(m.Hi)
+ v1 := m.Shl(int32(nz))
+ u1 := n.Shr(1)
+ tq, _ := mbits.Div64(u1.Hi, u1.Lo, v1.Hi)
+ tq >>= 63 - nz
+ if tq != 0 {
+ tq--
+ }
+ q = Uint128FromUint64(tq)
+ // calculate remainder using trial quotient, then adjust if remainder is
+ // greater than divisor
+ r = n.Sub(m.mul64(tq))
+ if r.Cmp(m) >= 0 {
+ q = q.add64(1)
+ r = r.Sub(m)
+ }
+ }
+ return
+}
+
+func (n Uint128) quoRem64(m uint64) (q Uint128, r uint64) {
+ if n.Hi < m {
+ q.Lo, r = mbits.Div64(n.Hi, n.Lo, m)
+ } else {
+ q.Hi, r = mbits.Div64(0, n.Hi, m)
+ q.Lo, r = mbits.Div64(r, n.Lo, m)
+ }
+ return
+}
+
+func (n Uint128) Div(m Uint128) (r Uint128) {
+ r, _ = n.quoRem(m)
+ return r
+}
+
+func (n Uint128) Shl(c int32) (r Uint128) {
+ if c > 64 {
+ r.Lo = 0
+ r.Hi = n.Lo << (c - 64)
+ } else {
+ r.Lo = n.Lo << c
+ r.Hi = n.Hi<<c | n.Lo>>(64-c)
+ }
+ return
+}
+
+func (n Uint128) Sub(m Uint128) Uint128 {
+ lo, borrow := mbits.Sub64(n.Lo, m.Lo, 0)
+ hi, _ := mbits.Sub64(n.Hi, m.Hi, borrow)
+ return Uint128{lo, hi}
+}
+
+func (n Uint128) mul64(m uint64) Uint128 {
+ hi, lo := mbits.Mul64(n.Lo, m)
+ _, p1 := mbits.Mul64(n.Hi, m)
+ hi, _ = mbits.Add64(hi, p1, 0)
+ return Uint128{lo, hi}
+}
+
+func (n Uint128) Cmp(m Uint128) int {
+ if n == m {
+ return 0
+ } else if n.Hi < m.Hi || (n.Hi == m.Hi && n.Lo < m.Lo) {
+ return -1
+ } else {
+ return 1
+ }
+}
+
+func (n Uint128) add64(m uint64) Uint128 {
+ lo, carry := mbits.Add64(n.Lo, m, 0)
+ hi, _ := mbits.Add64(n.Hi, 0, carry)
+ return Uint128{lo, hi}
+}
+
+func (n Uint128) Float32() float32 {
+ if n.Hi == 0 {
+ return float32(uint64(n.Lo))
+ }
+
+ return float32(n.Hi)*(1<<64) + float32(uint64(n.Lo))
+}
+
+func (n Uint128) Float64() float64 {
+ if n.Hi == 0 {
+ return float64(uint64(n.Lo))
+ }
+
+ return float64(n.Hi)*(1<<64) + float64(uint64(n.Lo))
+}
diff --git a/vendor/modernc.org/libc/ioutil_darwin.go b/vendor/modernc.org/libc/ioutil_darwin.go
new file mode 100644
index 00000000..40ca5ed0
--- /dev/null
+++ b/vendor/modernc.org/libc/ioutil_darwin.go
@@ -0,0 +1,65 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE-GO file.
+
+// Modifications Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "os"
+ "sync"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+)
+
+// Random number state.
+// We generate random temporary file names so that there's a good
+// chance the file doesn't exist yet - keeps the number of tries in
+// TempFile to a minimum.
+var randState uint32
+var randStateMu sync.Mutex
+
+func reseed() uint32 {
+ return uint32(time.Now().UnixNano() + int64(os.Getpid()))
+}
+
+func nextRandom(x uintptr) {
+ randStateMu.Lock()
+ r := randState
+ if r == 0 {
+ r = reseed()
+ }
+ r = r*1664525 + 1013904223 // constants from Numerical Recipes
+ randState = r
+ randStateMu.Unlock()
+ copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6))
+}
+
+func tempFile(s, x uintptr, _ int32) (fd int, err error) {
+ const maxTry = 10000
+ nconflict := 0
+ for i := 0; i < maxTry; i++ {
+ nextRandom(x)
+ if fd, err = unix.Open(GoString(s), os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600); err == nil {
+ return fd, nil
+ }
+
+ if !os.IsExist(err) {
+ return -1, err
+ }
+
+ if nconflict++; nconflict > 10 {
+ randStateMu.Lock()
+ randState = reseed()
+ nconflict = 0
+ randStateMu.Unlock()
+ }
+ }
+ return -1, err
+}
diff --git a/vendor/modernc.org/libc/ioutil_freebsd.go b/vendor/modernc.org/libc/ioutil_freebsd.go
new file mode 100644
index 00000000..40ca5ed0
--- /dev/null
+++ b/vendor/modernc.org/libc/ioutil_freebsd.go
@@ -0,0 +1,65 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE-GO file.
+
+// Modifications Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "os"
+ "sync"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+)
+
+// Random number state.
+// We generate random temporary file names so that there's a good
+// chance the file doesn't exist yet - keeps the number of tries in
+// TempFile to a minimum.
+var randState uint32
+var randStateMu sync.Mutex
+
+func reseed() uint32 {
+ return uint32(time.Now().UnixNano() + int64(os.Getpid()))
+}
+
+func nextRandom(x uintptr) {
+ randStateMu.Lock()
+ r := randState
+ if r == 0 {
+ r = reseed()
+ }
+ r = r*1664525 + 1013904223 // constants from Numerical Recipes
+ randState = r
+ randStateMu.Unlock()
+ copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6))
+}
+
+func tempFile(s, x uintptr, _ int32) (fd int, err error) {
+ const maxTry = 10000
+ nconflict := 0
+ for i := 0; i < maxTry; i++ {
+ nextRandom(x)
+ if fd, err = unix.Open(GoString(s), os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600); err == nil {
+ return fd, nil
+ }
+
+ if !os.IsExist(err) {
+ return -1, err
+ }
+
+ if nconflict++; nconflict > 10 {
+ randStateMu.Lock()
+ randState = reseed()
+ nconflict = 0
+ randStateMu.Unlock()
+ }
+ }
+ return -1, err
+}
diff --git a/vendor/modernc.org/libc/ioutil_linux.go b/vendor/modernc.org/libc/ioutil_linux.go
new file mode 100644
index 00000000..db90f559
--- /dev/null
+++ b/vendor/modernc.org/libc/ioutil_linux.go
@@ -0,0 +1,70 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE-GO file.
+
+// Modifications Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "os"
+ "sync"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+)
+
+// Random number state.
+// We generate random temporary file names so that there's a good
+// chance the file doesn't exist yet - keeps the number of tries in
+// TempFile to a minimum.
+var randState uint32
+var randStateMu sync.Mutex
+
+func reseed() uint32 {
+ return uint32(time.Now().UnixNano() + int64(os.Getpid()))
+}
+
+func nextRandom(x uintptr) {
+ randStateMu.Lock()
+ r := randState
+ if r == 0 {
+ r = reseed()
+ }
+ r = r*1664525 + 1013904223 // constants from Numerical Recipes
+ randState = r
+ randStateMu.Unlock()
+ copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6))
+}
+
+func tempFile(s, x uintptr, flags int32) (fd int, err error) {
+ const maxTry = 10000
+ nconflict := 0
+ flags |= int32(os.O_RDWR | os.O_CREATE | os.O_EXCL | unix.O_LARGEFILE)
+ for i := 0; i < maxTry; i++ {
+ nextRandom(x)
+ fdcwd := fcntl.AT_FDCWD
+ n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), s, uintptr(flags), 0600, 0, 0)
+ if err == 0 {
+ return int(n), nil
+ }
+
+ if err != errno.EEXIST {
+ return -1, err
+ }
+
+ if nconflict++; nconflict > 10 {
+ randStateMu.Lock()
+ randState = reseed()
+ nconflict = 0
+ randStateMu.Unlock()
+ }
+ }
+ return -1, unix.Errno(errno.EEXIST)
+}
diff --git a/vendor/modernc.org/libc/ioutil_netbsd.go b/vendor/modernc.org/libc/ioutil_netbsd.go
new file mode 100644
index 00000000..40ca5ed0
--- /dev/null
+++ b/vendor/modernc.org/libc/ioutil_netbsd.go
@@ -0,0 +1,65 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE-GO file.
+
+// Modifications Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "os"
+ "sync"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+)
+
+// Random number state.
+// We generate random temporary file names so that there's a good
+// chance the file doesn't exist yet - keeps the number of tries in
+// TempFile to a minimum.
+var randState uint32
+var randStateMu sync.Mutex
+
+func reseed() uint32 {
+ return uint32(time.Now().UnixNano() + int64(os.Getpid()))
+}
+
+func nextRandom(x uintptr) {
+ randStateMu.Lock()
+ r := randState
+ if r == 0 {
+ r = reseed()
+ }
+ r = r*1664525 + 1013904223 // constants from Numerical Recipes
+ randState = r
+ randStateMu.Unlock()
+ copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6))
+}
+
+func tempFile(s, x uintptr, _ int32) (fd int, err error) {
+ const maxTry = 10000
+ nconflict := 0
+ for i := 0; i < maxTry; i++ {
+ nextRandom(x)
+ if fd, err = unix.Open(GoString(s), os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600); err == nil {
+ return fd, nil
+ }
+
+ if !os.IsExist(err) {
+ return -1, err
+ }
+
+ if nconflict++; nconflict > 10 {
+ randStateMu.Lock()
+ randState = reseed()
+ nconflict = 0
+ randStateMu.Unlock()
+ }
+ }
+ return -1, err
+}
diff --git a/vendor/modernc.org/libc/ioutil_openbsd.go b/vendor/modernc.org/libc/ioutil_openbsd.go
new file mode 100644
index 00000000..40ca5ed0
--- /dev/null
+++ b/vendor/modernc.org/libc/ioutil_openbsd.go
@@ -0,0 +1,65 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE-GO file.
+
+// Modifications Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "os"
+ "sync"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+)
+
+// Random number state.
+// We generate random temporary file names so that there's a good
+// chance the file doesn't exist yet - keeps the number of tries in
+// TempFile to a minimum.
+var randState uint32
+var randStateMu sync.Mutex
+
+func reseed() uint32 {
+ return uint32(time.Now().UnixNano() + int64(os.Getpid()))
+}
+
+func nextRandom(x uintptr) {
+ randStateMu.Lock()
+ r := randState
+ if r == 0 {
+ r = reseed()
+ }
+ r = r*1664525 + 1013904223 // constants from Numerical Recipes
+ randState = r
+ randStateMu.Unlock()
+ copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6))
+}
+
+func tempFile(s, x uintptr, _ int32) (fd int, err error) {
+ const maxTry = 10000
+ nconflict := 0
+ for i := 0; i < maxTry; i++ {
+ nextRandom(x)
+ if fd, err = unix.Open(GoString(s), os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600); err == nil {
+ return fd, nil
+ }
+
+ if !os.IsExist(err) {
+ return -1, err
+ }
+
+ if nconflict++; nconflict > 10 {
+ randStateMu.Lock()
+ randState = reseed()
+ nconflict = 0
+ randStateMu.Unlock()
+ }
+ }
+ return -1, err
+}
diff --git a/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go b/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go
new file mode 100644
index 00000000..8189cc44
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_darwin_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go b/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go
new file mode 100644
index 00000000..d619422c
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_darwin_arm64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_freebsd_386.go b/vendor/modernc.org/libc/langinfo/capi_freebsd_386.go
new file mode 100644
index 00000000..8ca766b2
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_freebsd_386.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_freebsd_amd64.go b/vendor/modernc.org/libc/langinfo/capi_freebsd_amd64.go
new file mode 100644
index 00000000..c20d84c6
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_freebsd_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_linux_386.go b/vendor/modernc.org/libc/langinfo/capi_linux_386.go
new file mode 100644
index 00000000..5cc0cfba
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_386.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_linux_amd64.go b/vendor/modernc.org/libc/langinfo/capi_linux_amd64.go
new file mode 100644
index 00000000..27a2c4be
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_linux_arm.go b/vendor/modernc.org/libc/langinfo/capi_linux_arm.go
new file mode 100644
index 00000000..dd4ff49b
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_arm.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_linux_arm64.go b/vendor/modernc.org/libc/langinfo/capi_linux_arm64.go
new file mode 100644
index 00000000..de9629ff
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_arm64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_linux_s390x.go b/vendor/modernc.org/libc/langinfo/capi_linux_s390x.go
new file mode 100644
index 00000000..9e5b8d1e
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_s390x.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_netbsd_amd64.go b/vendor/modernc.org/libc/langinfo/capi_netbsd_amd64.go
new file mode 100644
index 00000000..c6887839
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_netbsd_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go b/vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go
new file mode 100644
index 00000000..b3f262e0
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_openbsd_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go
new file mode 100644
index 00000000..2635dc6d
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go
@@ -0,0 +1,909 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_darwin_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ABDAY_1 = 14
+ ABDAY_2 = 15
+ ABDAY_3 = 16
+ ABDAY_4 = 17
+ ABDAY_5 = 18
+ ABDAY_6 = 19
+ ABDAY_7 = 20
+ ABMON_1 = 33
+ ABMON_10 = 42
+ ABMON_11 = 43
+ ABMON_12 = 44
+ ABMON_2 = 34
+ ABMON_3 = 35
+ ABMON_4 = 36
+ ABMON_5 = 37
+ ABMON_6 = 38
+ ABMON_7 = 39
+ ABMON_8 = 40
+ ABMON_9 = 41
+ ALT_DIGITS = 49
+ AM_STR = 5
+ CODESET = 0
+ CRNCYSTR = 56
+ DAY_1 = 7
+ DAY_2 = 8
+ DAY_3 = 9
+ DAY_4 = 10
+ DAY_5 = 11
+ DAY_6 = 12
+ DAY_7 = 13
+ D_FMT = 2
+ D_MD_ORDER = 57
+ D_T_FMT = 1
+ ERA = 45
+ ERA_D_FMT = 46
+ ERA_D_T_FMT = 47
+ ERA_T_FMT = 48
+ MON_1 = 21
+ MON_10 = 30
+ MON_11 = 31
+ MON_12 = 32
+ MON_2 = 22
+ MON_3 = 23
+ MON_4 = 24
+ MON_5 = 25
+ MON_6 = 26
+ MON_7 = 27
+ MON_8 = 28
+ MON_9 = 29
+ NOEXPR = 53
+ NOSTR = 55
+ PM_STR = 6
+ RADIXCHAR = 50
+ THOUSEP = 51
+ T_FMT = 3
+ T_FMT_AMPM = 4
+ YESEXPR = 52
+ YESSTR = 54
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_LANGINFO_H_ = 0
+ X_LP64 = 1
+ X_NL_ITEM = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD: /repoman/r/ncvs/src/include/langinfo.h,v 1.6 2002/09/18 05:54:25 mike Exp $
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Nl_item = X__darwin_nl_item /* _nl_item.h:32:26 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go b/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go
new file mode 100644
index 00000000..27559730
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go
@@ -0,0 +1,895 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_darwin_arm64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ABDAY_1 = 14
+ ABDAY_2 = 15
+ ABDAY_3 = 16
+ ABDAY_4 = 17
+ ABDAY_5 = 18
+ ABDAY_6 = 19
+ ABDAY_7 = 20
+ ABMON_1 = 33
+ ABMON_10 = 42
+ ABMON_11 = 43
+ ABMON_12 = 44
+ ABMON_2 = 34
+ ABMON_3 = 35
+ ABMON_4 = 36
+ ABMON_5 = 37
+ ABMON_6 = 38
+ ABMON_7 = 39
+ ABMON_8 = 40
+ ABMON_9 = 41
+ ALT_DIGITS = 49
+ AM_STR = 5
+ CODESET = 0
+ CRNCYSTR = 56
+ DAY_1 = 7
+ DAY_2 = 8
+ DAY_3 = 9
+ DAY_4 = 10
+ DAY_5 = 11
+ DAY_6 = 12
+ DAY_7 = 13
+ D_FMT = 2
+ D_MD_ORDER = 57
+ D_T_FMT = 1
+ ERA = 45
+ ERA_D_FMT = 46
+ ERA_D_T_FMT = 47
+ ERA_T_FMT = 48
+ MON_1 = 21
+ MON_10 = 30
+ MON_11 = 31
+ MON_12 = 32
+ MON_2 = 22
+ MON_3 = 23
+ MON_4 = 24
+ MON_5 = 25
+ MON_6 = 26
+ MON_7 = 27
+ MON_8 = 28
+ MON_9 = 29
+ NOEXPR = 53
+ NOSTR = 55
+ PM_STR = 6
+ RADIXCHAR = 50
+ THOUSEP = 51
+ T_FMT = 3
+ T_FMT_AMPM = 4
+ YESEXPR = 52
+ YESSTR = 54
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_LANGINFO_H_ = 0
+ X_LP64 = 1
+ X_NL_ITEM = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__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 */
+
+// -
+// Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD: /repoman/r/ncvs/src/include/langinfo.h,v 1.6 2002/09/18 05:54:25 mike Exp $
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Nl_item = X__darwin_nl_item /* _nl_item.h:32:26 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go b/vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go
new file mode 100644
index 00000000..2b3e8d5c
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go
@@ -0,0 +1,695 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_freebsd_386.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ABDAY_1 = 14
+ ABDAY_2 = 15
+ ABDAY_3 = 16
+ ABDAY_4 = 17
+ ABDAY_5 = 18
+ ABDAY_6 = 19
+ ABDAY_7 = 20
+ ABMON_1 = 33
+ ABMON_10 = 42
+ ABMON_11 = 43
+ ABMON_12 = 44
+ ABMON_2 = 34
+ ABMON_3 = 35
+ ABMON_4 = 36
+ ABMON_5 = 37
+ ABMON_6 = 38
+ ABMON_7 = 39
+ ABMON_8 = 40
+ ABMON_9 = 41
+ ALTMON_1 = 58
+ ALTMON_10 = 67
+ ALTMON_11 = 68
+ ALTMON_12 = 69
+ ALTMON_2 = 59
+ ALTMON_3 = 60
+ ALTMON_4 = 61
+ ALTMON_5 = 62
+ ALTMON_6 = 63
+ ALTMON_7 = 64
+ ALTMON_8 = 65
+ ALTMON_9 = 66
+ ALT_DIGITS = 49
+ AM_STR = 5
+ CODESET = 0
+ CRNCYSTR = 56
+ DAY_1 = 7
+ DAY_2 = 8
+ DAY_3 = 9
+ DAY_4 = 10
+ DAY_5 = 11
+ DAY_6 = 12
+ DAY_7 = 13
+ D_FMT = 2
+ D_MD_ORDER = 57
+ D_T_FMT = 1
+ ERA = 45
+ ERA_D_FMT = 46
+ ERA_D_T_FMT = 47
+ ERA_T_FMT = 48
+ MON_1 = 21
+ MON_10 = 30
+ MON_11 = 31
+ MON_12 = 32
+ MON_2 = 22
+ MON_3 = 23
+ MON_4 = 24
+ MON_5 = 25
+ MON_6 = 26
+ MON_7 = 27
+ MON_8 = 28
+ MON_9 = 29
+ NOEXPR = 53
+ NOSTR = 55
+ PM_STR = 6
+ RADIXCHAR = 50
+ THOUSEP = 51
+ T_FMT = 3
+ T_FMT_AMPM = 4
+ YESEXPR = 52
+ YESSTR = 54
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_LANGINFO_H_ = 0
+ X_LOCALE_T_DEFINED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_NL_ITEM_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_XLOCALE_LANGINFO_H = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Nl_item = X__nl_item /* langinfo.h:38:19 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _langinfo.h:39:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_freebsd_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_freebsd_amd64.go
new file mode 100644
index 00000000..7616b6d8
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_freebsd_amd64.go
@@ -0,0 +1,700 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_freebsd_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ABDAY_1 = 14
+ ABDAY_2 = 15
+ ABDAY_3 = 16
+ ABDAY_4 = 17
+ ABDAY_5 = 18
+ ABDAY_6 = 19
+ ABDAY_7 = 20
+ ABMON_1 = 33
+ ABMON_10 = 42
+ ABMON_11 = 43
+ ABMON_12 = 44
+ ABMON_2 = 34
+ ABMON_3 = 35
+ ABMON_4 = 36
+ ABMON_5 = 37
+ ABMON_6 = 38
+ ABMON_7 = 39
+ ABMON_8 = 40
+ ABMON_9 = 41
+ ALTMON_1 = 58
+ ALTMON_10 = 67
+ ALTMON_11 = 68
+ ALTMON_12 = 69
+ ALTMON_2 = 59
+ ALTMON_3 = 60
+ ALTMON_4 = 61
+ ALTMON_5 = 62
+ ALTMON_6 = 63
+ ALTMON_7 = 64
+ ALTMON_8 = 65
+ ALTMON_9 = 66
+ ALT_DIGITS = 49
+ AM_STR = 5
+ CODESET = 0
+ CRNCYSTR = 56
+ DAY_1 = 7
+ DAY_2 = 8
+ DAY_3 = 9
+ DAY_4 = 10
+ DAY_5 = 11
+ DAY_6 = 12
+ DAY_7 = 13
+ D_FMT = 2
+ D_MD_ORDER = 57
+ D_T_FMT = 1
+ ERA = 45
+ ERA_D_FMT = 46
+ ERA_D_T_FMT = 47
+ ERA_T_FMT = 48
+ MON_1 = 21
+ MON_10 = 30
+ MON_11 = 31
+ MON_12 = 32
+ MON_2 = 22
+ MON_3 = 23
+ MON_4 = 24
+ MON_5 = 25
+ MON_6 = 26
+ MON_7 = 27
+ MON_8 = 28
+ MON_9 = 29
+ NOEXPR = 53
+ NOSTR = 55
+ PM_STR = 6
+ RADIXCHAR = 50
+ THOUSEP = 51
+ T_FMT = 3
+ T_FMT_AMPM = 4
+ YESEXPR = 52
+ YESSTR = 54
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H_ = 0
+ X_LOCALE_T_DEFINED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_NL_ITEM_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_XLOCALE_LANGINFO_H = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Nl_item = X__nl_item /* langinfo.h:38:19 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _langinfo.h:39:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_linux_386.go b/vendor/modernc.org/libc/langinfo/langinfo_linux_386.go
new file mode 100644
index 00000000..522bf5e6
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_linux_386.go
@@ -0,0 +1,1049 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_386.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_LOCALE_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_LANGINFO_H = 1
+ X_NL_TYPES_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Definition of locale category symbol values.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+// Construct an `nl_item' value for `nl_langinfo' from a locale category
+// (LC_*) and an item index within the category. Some code may depend on
+// the item values within a category increasing monotonically with the
+// indices.
+
+// Extract the category and item index from a constructed `nl_item' value.
+
+// Enumeration of locale items that can be queried with `nl_langinfo'.
+const ( /* langinfo.h:41:1: */
+ // LC_TIME category: date and time formatting.
+
+ // Abbreviated days of the week.
+ ABDAY_1 = 131072 // Sun
+ ABDAY_2 = 131073
+ ABDAY_3 = 131074
+ ABDAY_4 = 131075
+ ABDAY_5 = 131076
+ ABDAY_6 = 131077
+ ABDAY_7 = 131078
+
+ // Long-named days of the week.
+ DAY_1 = 131079 // Sunday
+ DAY_2 = 131080 // Monday
+ DAY_3 = 131081 // Tuesday
+ DAY_4 = 131082 // Wednesday
+ DAY_5 = 131083 // Thursday
+ DAY_6 = 131084 // Friday
+ DAY_7 = 131085 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ ABMON_1 = 131086 // Jan
+ ABMON_2 = 131087
+ ABMON_3 = 131088
+ ABMON_4 = 131089
+ ABMON_5 = 131090
+ ABMON_6 = 131091
+ ABMON_7 = 131092
+ ABMON_8 = 131093
+ ABMON_9 = 131094
+ ABMON_10 = 131095
+ ABMON_11 = 131096
+ ABMON_12 = 131097
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ MON_1 = 131098 // January
+ MON_2 = 131099
+ MON_3 = 131100
+ MON_4 = 131101
+ MON_5 = 131102
+ MON_6 = 131103
+ MON_7 = 131104
+ MON_8 = 131105
+ MON_9 = 131106
+ MON_10 = 131107
+ MON_11 = 131108
+ MON_12 = 131109
+
+ AM_STR = 131110 // Ante meridiem string.
+ PM_STR = 131111 // Post meridiem string.
+
+ D_T_FMT = 131112 // Date and time format for strftime.
+ D_FMT = 131113 // Date format for strftime.
+ T_FMT = 131114 // Time format for strftime.
+ T_FMT_AMPM = 131115 // 12-hour time format for strftime.
+
+ ERA = 131116 // Alternate era.
+ X__ERA_YEAR = 131117 // Year in alternate era format.
+ ERA_D_FMT = 131118 // Date in alternate era format.
+ ALT_DIGITS = 131119 // Alternate symbols for digits.
+ ERA_D_T_FMT = 131120 // Date and time in alternate era format.
+ ERA_T_FMT = 131121 // Time in alternate era format.
+
+ X_NL_TIME_ERA_NUM_ENTRIES = 131122 // Number entries in the era arrays.
+ X_NL_TIME_ERA_ENTRIES = 131123 // Structure with era entries in usable form.
+
+ X_NL_WABDAY_1 = 131124 // Sun
+ X_NL_WABDAY_2 = 131125
+ X_NL_WABDAY_3 = 131126
+ X_NL_WABDAY_4 = 131127
+ X_NL_WABDAY_5 = 131128
+ X_NL_WABDAY_6 = 131129
+ X_NL_WABDAY_7 = 131130
+
+ // Long-named days of the week.
+ X_NL_WDAY_1 = 131131 // Sunday
+ X_NL_WDAY_2 = 131132 // Monday
+ X_NL_WDAY_3 = 131133 // Tuesday
+ X_NL_WDAY_4 = 131134 // Wednesday
+ X_NL_WDAY_5 = 131135 // Thursday
+ X_NL_WDAY_6 = 131136 // Friday
+ X_NL_WDAY_7 = 131137 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WABMON_1 = 131138 // Jan
+ X_NL_WABMON_2 = 131139
+ X_NL_WABMON_3 = 131140
+ X_NL_WABMON_4 = 131141
+ X_NL_WABMON_5 = 131142
+ X_NL_WABMON_6 = 131143
+ X_NL_WABMON_7 = 131144
+ X_NL_WABMON_8 = 131145
+ X_NL_WABMON_9 = 131146
+ X_NL_WABMON_10 = 131147
+ X_NL_WABMON_11 = 131148
+ X_NL_WABMON_12 = 131149
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WMON_1 = 131150 // January
+ X_NL_WMON_2 = 131151
+ X_NL_WMON_3 = 131152
+ X_NL_WMON_4 = 131153
+ X_NL_WMON_5 = 131154
+ X_NL_WMON_6 = 131155
+ X_NL_WMON_7 = 131156
+ X_NL_WMON_8 = 131157
+ X_NL_WMON_9 = 131158
+ X_NL_WMON_10 = 131159
+ X_NL_WMON_11 = 131160
+ X_NL_WMON_12 = 131161
+
+ X_NL_WAM_STR = 131162 // Ante meridiem string.
+ X_NL_WPM_STR = 131163 // Post meridiem string.
+
+ X_NL_WD_T_FMT = 131164 // Date and time format for strftime.
+ X_NL_WD_FMT = 131165 // Date format for strftime.
+ X_NL_WT_FMT = 131166 // Time format for strftime.
+ X_NL_WT_FMT_AMPM = 131167 // 12-hour time format for strftime.
+
+ X_NL_WERA_YEAR = 131168 // Year in alternate era format.
+ X_NL_WERA_D_FMT = 131169 // Date in alternate era format.
+ X_NL_WALT_DIGITS = 131170 // Alternate symbols for digits.
+ X_NL_WERA_D_T_FMT = 131171 // Date and time in alternate era format.
+ X_NL_WERA_T_FMT = 131172 // Time in alternate era format.
+
+ X_NL_TIME_WEEK_NDAYS = 131173
+ X_NL_TIME_WEEK_1STDAY = 131174
+ X_NL_TIME_WEEK_1STWEEK = 131175
+ X_NL_TIME_FIRST_WEEKDAY = 131176
+ X_NL_TIME_FIRST_WORKDAY = 131177
+ X_NL_TIME_CAL_DIRECTION = 131178
+ X_NL_TIME_TIMEZONE = 131179
+
+ X_DATE_FMT = 131180 // strftime format for date.
+ X_NL_W_DATE_FMT = 131181
+
+ X_NL_TIME_CODESET = 131182
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X__ALTMON_1 = 131183 // January
+ X__ALTMON_2 = 131184
+ X__ALTMON_3 = 131185
+ X__ALTMON_4 = 131186
+ X__ALTMON_5 = 131187
+ X__ALTMON_6 = 131188
+ X__ALTMON_7 = 131189
+ X__ALTMON_8 = 131190
+ X__ALTMON_9 = 131191
+ X__ALTMON_10 = 131192
+ X__ALTMON_11 = 131193
+ X__ALTMON_12 = 131194
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WALTMON_1 = 131195 // January
+ X_NL_WALTMON_2 = 131196
+ X_NL_WALTMON_3 = 131197
+ X_NL_WALTMON_4 = 131198
+ X_NL_WALTMON_5 = 131199
+ X_NL_WALTMON_6 = 131200
+ X_NL_WALTMON_7 = 131201
+ X_NL_WALTMON_8 = 131202
+ X_NL_WALTMON_9 = 131203
+ X_NL_WALTMON_10 = 131204
+ X_NL_WALTMON_11 = 131205
+ X_NL_WALTMON_12 = 131206
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_ABALTMON_1 = 131207 // Jan
+ X_NL_ABALTMON_2 = 131208
+ X_NL_ABALTMON_3 = 131209
+ X_NL_ABALTMON_4 = 131210
+ X_NL_ABALTMON_5 = 131211
+ X_NL_ABALTMON_6 = 131212
+ X_NL_ABALTMON_7 = 131213
+ X_NL_ABALTMON_8 = 131214
+ X_NL_ABALTMON_9 = 131215
+ X_NL_ABALTMON_10 = 131216
+ X_NL_ABALTMON_11 = 131217
+ X_NL_ABALTMON_12 = 131218
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WABALTMON_1 = 131219 // Jan
+ X_NL_WABALTMON_2 = 131220
+ X_NL_WABALTMON_3 = 131221
+ X_NL_WABALTMON_4 = 131222
+ X_NL_WABALTMON_5 = 131223
+ X_NL_WABALTMON_6 = 131224
+ X_NL_WABALTMON_7 = 131225
+ X_NL_WABALTMON_8 = 131226
+ X_NL_WABALTMON_9 = 131227
+ X_NL_WABALTMON_10 = 131228
+ X_NL_WABALTMON_11 = 131229
+ X_NL_WABALTMON_12 = 131230
+
+ X_NL_NUM_LC_TIME = 131231 // Number of indices in LC_TIME category.
+
+ // LC_COLLATE category: text sorting.
+ // This information is accessed by the strcoll and strxfrm functions.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_COLLATE_NRULES = 196608
+ X_NL_COLLATE_RULESETS = 196609
+ X_NL_COLLATE_TABLEMB = 196610
+ X_NL_COLLATE_WEIGHTMB = 196611
+ X_NL_COLLATE_EXTRAMB = 196612
+ X_NL_COLLATE_INDIRECTMB = 196613
+ X_NL_COLLATE_GAP1 = 196614
+ X_NL_COLLATE_GAP2 = 196615
+ X_NL_COLLATE_GAP3 = 196616
+ X_NL_COLLATE_TABLEWC = 196617
+ X_NL_COLLATE_WEIGHTWC = 196618
+ X_NL_COLLATE_EXTRAWC = 196619
+ X_NL_COLLATE_INDIRECTWC = 196620
+ X_NL_COLLATE_SYMB_HASH_SIZEMB = 196621
+ X_NL_COLLATE_SYMB_TABLEMB = 196622
+ X_NL_COLLATE_SYMB_EXTRAMB = 196623
+ X_NL_COLLATE_COLLSEQMB = 196624
+ X_NL_COLLATE_COLLSEQWC = 196625
+ X_NL_COLLATE_CODESET = 196626
+ X_NL_NUM_LC_COLLATE = 196627
+
+ // LC_CTYPE category: character classification.
+ // This information is accessed by the functions in <ctype.h>.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_CTYPE_CLASS = 0
+ X_NL_CTYPE_TOUPPER = 1
+ X_NL_CTYPE_GAP1 = 2
+ X_NL_CTYPE_TOLOWER = 3
+ X_NL_CTYPE_GAP2 = 4
+ X_NL_CTYPE_CLASS32 = 5
+ X_NL_CTYPE_GAP3 = 6
+ X_NL_CTYPE_GAP4 = 7
+ X_NL_CTYPE_GAP5 = 8
+ X_NL_CTYPE_GAP6 = 9
+ X_NL_CTYPE_CLASS_NAMES = 10
+ X_NL_CTYPE_MAP_NAMES = 11
+ X_NL_CTYPE_WIDTH = 12
+ X_NL_CTYPE_MB_CUR_MAX = 13
+ X_NL_CTYPE_CODESET_NAME = 14
+ CODESET = 14
+ X_NL_CTYPE_TOUPPER32 = 15
+ X_NL_CTYPE_TOLOWER32 = 16
+ X_NL_CTYPE_CLASS_OFFSET = 17
+ X_NL_CTYPE_MAP_OFFSET = 18
+ X_NL_CTYPE_INDIGITS_MB_LEN = 19
+ X_NL_CTYPE_INDIGITS0_MB = 20
+ X_NL_CTYPE_INDIGITS1_MB = 21
+ X_NL_CTYPE_INDIGITS2_MB = 22
+ X_NL_CTYPE_INDIGITS3_MB = 23
+ X_NL_CTYPE_INDIGITS4_MB = 24
+ X_NL_CTYPE_INDIGITS5_MB = 25
+ X_NL_CTYPE_INDIGITS6_MB = 26
+ X_NL_CTYPE_INDIGITS7_MB = 27
+ X_NL_CTYPE_INDIGITS8_MB = 28
+ X_NL_CTYPE_INDIGITS9_MB = 29
+ X_NL_CTYPE_INDIGITS_WC_LEN = 30
+ X_NL_CTYPE_INDIGITS0_WC = 31
+ X_NL_CTYPE_INDIGITS1_WC = 32
+ X_NL_CTYPE_INDIGITS2_WC = 33
+ X_NL_CTYPE_INDIGITS3_WC = 34
+ X_NL_CTYPE_INDIGITS4_WC = 35
+ X_NL_CTYPE_INDIGITS5_WC = 36
+ X_NL_CTYPE_INDIGITS6_WC = 37
+ X_NL_CTYPE_INDIGITS7_WC = 38
+ X_NL_CTYPE_INDIGITS8_WC = 39
+ X_NL_CTYPE_INDIGITS9_WC = 40
+ X_NL_CTYPE_OUTDIGIT0_MB = 41
+ X_NL_CTYPE_OUTDIGIT1_MB = 42
+ X_NL_CTYPE_OUTDIGIT2_MB = 43
+ X_NL_CTYPE_OUTDIGIT3_MB = 44
+ X_NL_CTYPE_OUTDIGIT4_MB = 45
+ X_NL_CTYPE_OUTDIGIT5_MB = 46
+ X_NL_CTYPE_OUTDIGIT6_MB = 47
+ X_NL_CTYPE_OUTDIGIT7_MB = 48
+ X_NL_CTYPE_OUTDIGIT8_MB = 49
+ X_NL_CTYPE_OUTDIGIT9_MB = 50
+ X_NL_CTYPE_OUTDIGIT0_WC = 51
+ X_NL_CTYPE_OUTDIGIT1_WC = 52
+ X_NL_CTYPE_OUTDIGIT2_WC = 53
+ X_NL_CTYPE_OUTDIGIT3_WC = 54
+ X_NL_CTYPE_OUTDIGIT4_WC = 55
+ X_NL_CTYPE_OUTDIGIT5_WC = 56
+ X_NL_CTYPE_OUTDIGIT6_WC = 57
+ X_NL_CTYPE_OUTDIGIT7_WC = 58
+ X_NL_CTYPE_OUTDIGIT8_WC = 59
+ X_NL_CTYPE_OUTDIGIT9_WC = 60
+ X_NL_CTYPE_TRANSLIT_TAB_SIZE = 61
+ X_NL_CTYPE_TRANSLIT_FROM_IDX = 62
+ X_NL_CTYPE_TRANSLIT_FROM_TBL = 63
+ X_NL_CTYPE_TRANSLIT_TO_IDX = 64
+ X_NL_CTYPE_TRANSLIT_TO_TBL = 65
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN = 66
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING = 67
+ X_NL_CTYPE_TRANSLIT_IGNORE_LEN = 68
+ X_NL_CTYPE_TRANSLIT_IGNORE = 69
+ X_NL_CTYPE_MAP_TO_NONASCII = 70
+ X_NL_CTYPE_NONASCII_CASE = 71
+ X_NL_CTYPE_EXTRA_MAP_1 = 72
+ X_NL_CTYPE_EXTRA_MAP_2 = 73
+ X_NL_CTYPE_EXTRA_MAP_3 = 74
+ X_NL_CTYPE_EXTRA_MAP_4 = 75
+ X_NL_CTYPE_EXTRA_MAP_5 = 76
+ X_NL_CTYPE_EXTRA_MAP_6 = 77
+ X_NL_CTYPE_EXTRA_MAP_7 = 78
+ X_NL_CTYPE_EXTRA_MAP_8 = 79
+ X_NL_CTYPE_EXTRA_MAP_9 = 80
+ X_NL_CTYPE_EXTRA_MAP_10 = 81
+ X_NL_CTYPE_EXTRA_MAP_11 = 82
+ X_NL_CTYPE_EXTRA_MAP_12 = 83
+ X_NL_CTYPE_EXTRA_MAP_13 = 84
+ X_NL_CTYPE_EXTRA_MAP_14 = 85
+ X_NL_NUM_LC_CTYPE = 86
+
+ // LC_MONETARY category: formatting of monetary quantities.
+ // These items each correspond to a member of `struct lconv',
+ // defined in <locale.h>.
+ X__INT_CURR_SYMBOL = 262144
+ X__CURRENCY_SYMBOL = 262145
+ X__MON_DECIMAL_POINT = 262146
+ X__MON_THOUSANDS_SEP = 262147
+ X__MON_GROUPING = 262148
+ X__POSITIVE_SIGN = 262149
+ X__NEGATIVE_SIGN = 262150
+ X__INT_FRAC_DIGITS = 262151
+ X__FRAC_DIGITS = 262152
+ X__P_CS_PRECEDES = 262153
+ X__P_SEP_BY_SPACE = 262154
+ X__N_CS_PRECEDES = 262155
+ X__N_SEP_BY_SPACE = 262156
+ X__P_SIGN_POSN = 262157
+ X__N_SIGN_POSN = 262158
+ X_NL_MONETARY_CRNCYSTR = 262159
+ X__INT_P_CS_PRECEDES = 262160
+ X__INT_P_SEP_BY_SPACE = 262161
+ X__INT_N_CS_PRECEDES = 262162
+ X__INT_N_SEP_BY_SPACE = 262163
+ X__INT_P_SIGN_POSN = 262164
+ X__INT_N_SIGN_POSN = 262165
+ X_NL_MONETARY_DUO_INT_CURR_SYMBOL = 262166
+ X_NL_MONETARY_DUO_CURRENCY_SYMBOL = 262167
+ X_NL_MONETARY_DUO_INT_FRAC_DIGITS = 262168
+ X_NL_MONETARY_DUO_FRAC_DIGITS = 262169
+ X_NL_MONETARY_DUO_P_CS_PRECEDES = 262170
+ X_NL_MONETARY_DUO_P_SEP_BY_SPACE = 262171
+ X_NL_MONETARY_DUO_N_CS_PRECEDES = 262172
+ X_NL_MONETARY_DUO_N_SEP_BY_SPACE = 262173
+ X_NL_MONETARY_DUO_INT_P_CS_PRECEDES = 262174
+ X_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE = 262175
+ X_NL_MONETARY_DUO_INT_N_CS_PRECEDES = 262176
+ X_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE = 262177
+ X_NL_MONETARY_DUO_P_SIGN_POSN = 262178
+ X_NL_MONETARY_DUO_N_SIGN_POSN = 262179
+ X_NL_MONETARY_DUO_INT_P_SIGN_POSN = 262180
+ X_NL_MONETARY_DUO_INT_N_SIGN_POSN = 262181
+ X_NL_MONETARY_UNO_VALID_FROM = 262182
+ X_NL_MONETARY_UNO_VALID_TO = 262183
+ X_NL_MONETARY_DUO_VALID_FROM = 262184
+ X_NL_MONETARY_DUO_VALID_TO = 262185
+ X_NL_MONETARY_CONVERSION_RATE = 262186
+ X_NL_MONETARY_DECIMAL_POINT_WC = 262187
+ X_NL_MONETARY_THOUSANDS_SEP_WC = 262188
+ X_NL_MONETARY_CODESET = 262189
+ X_NL_NUM_LC_MONETARY = 262190
+
+ // LC_NUMERIC category: formatting of numbers.
+ // These also correspond to members of `struct lconv'; see <locale.h>.
+ X__DECIMAL_POINT = 65536
+ RADIXCHAR = 65536
+ X__THOUSANDS_SEP = 65537
+ THOUSEP = 65537
+ X__GROUPING = 65538
+ X_NL_NUMERIC_DECIMAL_POINT_WC = 65539
+ X_NL_NUMERIC_THOUSANDS_SEP_WC = 65540
+ X_NL_NUMERIC_CODESET = 65541
+ X_NL_NUM_LC_NUMERIC = 65542
+
+ X__YESEXPR = 327680 // Regex matching ``yes'' input.
+ X__NOEXPR = 327681 // Regex matching ``no'' input.
+ X__YESSTR = 327682 // Output string for ``yes''.
+ X__NOSTR = 327683 // Output string for ``no''.
+ X_NL_MESSAGES_CODESET = 327684
+ X_NL_NUM_LC_MESSAGES = 327685
+
+ X_NL_PAPER_HEIGHT = 458752
+ X_NL_PAPER_WIDTH = 458753
+ X_NL_PAPER_CODESET = 458754
+ X_NL_NUM_LC_PAPER = 458755
+
+ X_NL_NAME_NAME_FMT = 524288
+ X_NL_NAME_NAME_GEN = 524289
+ X_NL_NAME_NAME_MR = 524290
+ X_NL_NAME_NAME_MRS = 524291
+ X_NL_NAME_NAME_MISS = 524292
+ X_NL_NAME_NAME_MS = 524293
+ X_NL_NAME_CODESET = 524294
+ X_NL_NUM_LC_NAME = 524295
+
+ X_NL_ADDRESS_POSTAL_FMT = 589824
+ X_NL_ADDRESS_COUNTRY_NAME = 589825
+ X_NL_ADDRESS_COUNTRY_POST = 589826
+ X_NL_ADDRESS_COUNTRY_AB2 = 589827
+ X_NL_ADDRESS_COUNTRY_AB3 = 589828
+ X_NL_ADDRESS_COUNTRY_CAR = 589829
+ X_NL_ADDRESS_COUNTRY_NUM = 589830
+ X_NL_ADDRESS_COUNTRY_ISBN = 589831
+ X_NL_ADDRESS_LANG_NAME = 589832
+ X_NL_ADDRESS_LANG_AB = 589833
+ X_NL_ADDRESS_LANG_TERM = 589834
+ X_NL_ADDRESS_LANG_LIB = 589835
+ X_NL_ADDRESS_CODESET = 589836
+ X_NL_NUM_LC_ADDRESS = 589837
+
+ X_NL_TELEPHONE_TEL_INT_FMT = 655360
+ X_NL_TELEPHONE_TEL_DOM_FMT = 655361
+ X_NL_TELEPHONE_INT_SELECT = 655362
+ X_NL_TELEPHONE_INT_PREFIX = 655363
+ X_NL_TELEPHONE_CODESET = 655364
+ X_NL_NUM_LC_TELEPHONE = 655365
+
+ X_NL_MEASUREMENT_MEASUREMENT = 720896
+ X_NL_MEASUREMENT_CODESET = 720897
+ X_NL_NUM_LC_MEASUREMENT = 720898
+
+ X_NL_IDENTIFICATION_TITLE = 786432
+ X_NL_IDENTIFICATION_SOURCE = 786433
+ X_NL_IDENTIFICATION_ADDRESS = 786434
+ X_NL_IDENTIFICATION_CONTACT = 786435
+ X_NL_IDENTIFICATION_EMAIL = 786436
+ X_NL_IDENTIFICATION_TEL = 786437
+ X_NL_IDENTIFICATION_FAX = 786438
+ X_NL_IDENTIFICATION_LANGUAGE = 786439
+ X_NL_IDENTIFICATION_TERRITORY = 786440
+ X_NL_IDENTIFICATION_AUDIENCE = 786441
+ X_NL_IDENTIFICATION_APPLICATION = 786442
+ X_NL_IDENTIFICATION_ABBREVIATION = 786443
+ X_NL_IDENTIFICATION_REVISION = 786444
+ X_NL_IDENTIFICATION_DATE = 786445
+ X_NL_IDENTIFICATION_CATEGORY = 786446
+ X_NL_IDENTIFICATION_CODESET = 786447
+ X_NL_NUM_LC_IDENTIFICATION = 786448
+
+ // This marks the highest value used.
+ X_NL_NUM = 786449
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Access to locale-dependent parameters.
+// 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
+// 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/>.
+
+// Get the type definition.
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// The default message set used by the gencat program.
+
+// Value for FLAG parameter of `catgets' to say we want XPG4 compliance.
+
+// Message catalog descriptor type.
+type Nl_catd = uintptr /* nl_types.h:33:14 */
+
+// Type used by `nl_langinfo'.
+type Nl_item = int32 /* nl_types.h:36:13 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_linux_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_linux_amd64.go
new file mode 100644
index 00000000..a368a0d4
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_linux_amd64.go
@@ -0,0 +1,1058 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_LOCALE_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H = 1
+ X_LP64 = 1
+ X_NL_TYPES_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Definition of locale category symbol values.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+// Construct an `nl_item' value for `nl_langinfo' from a locale category
+// (LC_*) and an item index within the category. Some code may depend on
+// the item values within a category increasing monotonically with the
+// indices.
+
+// Extract the category and item index from a constructed `nl_item' value.
+
+// Enumeration of locale items that can be queried with `nl_langinfo'.
+const ( /* langinfo.h:41:1: */
+ // LC_TIME category: date and time formatting.
+
+ // Abbreviated days of the week.
+ ABDAY_1 = 131072 // Sun
+ ABDAY_2 = 131073
+ ABDAY_3 = 131074
+ ABDAY_4 = 131075
+ ABDAY_5 = 131076
+ ABDAY_6 = 131077
+ ABDAY_7 = 131078
+
+ // Long-named days of the week.
+ DAY_1 = 131079 // Sunday
+ DAY_2 = 131080 // Monday
+ DAY_3 = 131081 // Tuesday
+ DAY_4 = 131082 // Wednesday
+ DAY_5 = 131083 // Thursday
+ DAY_6 = 131084 // Friday
+ DAY_7 = 131085 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ ABMON_1 = 131086 // Jan
+ ABMON_2 = 131087
+ ABMON_3 = 131088
+ ABMON_4 = 131089
+ ABMON_5 = 131090
+ ABMON_6 = 131091
+ ABMON_7 = 131092
+ ABMON_8 = 131093
+ ABMON_9 = 131094
+ ABMON_10 = 131095
+ ABMON_11 = 131096
+ ABMON_12 = 131097
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ MON_1 = 131098 // January
+ MON_2 = 131099
+ MON_3 = 131100
+ MON_4 = 131101
+ MON_5 = 131102
+ MON_6 = 131103
+ MON_7 = 131104
+ MON_8 = 131105
+ MON_9 = 131106
+ MON_10 = 131107
+ MON_11 = 131108
+ MON_12 = 131109
+
+ AM_STR = 131110 // Ante meridiem string.
+ PM_STR = 131111 // Post meridiem string.
+
+ D_T_FMT = 131112 // Date and time format for strftime.
+ D_FMT = 131113 // Date format for strftime.
+ T_FMT = 131114 // Time format for strftime.
+ T_FMT_AMPM = 131115 // 12-hour time format for strftime.
+
+ ERA = 131116 // Alternate era.
+ X__ERA_YEAR = 131117 // Year in alternate era format.
+ ERA_D_FMT = 131118 // Date in alternate era format.
+ ALT_DIGITS = 131119 // Alternate symbols for digits.
+ ERA_D_T_FMT = 131120 // Date and time in alternate era format.
+ ERA_T_FMT = 131121 // Time in alternate era format.
+
+ X_NL_TIME_ERA_NUM_ENTRIES = 131122 // Number entries in the era arrays.
+ X_NL_TIME_ERA_ENTRIES = 131123 // Structure with era entries in usable form.
+
+ X_NL_WABDAY_1 = 131124 // Sun
+ X_NL_WABDAY_2 = 131125
+ X_NL_WABDAY_3 = 131126
+ X_NL_WABDAY_4 = 131127
+ X_NL_WABDAY_5 = 131128
+ X_NL_WABDAY_6 = 131129
+ X_NL_WABDAY_7 = 131130
+
+ // Long-named days of the week.
+ X_NL_WDAY_1 = 131131 // Sunday
+ X_NL_WDAY_2 = 131132 // Monday
+ X_NL_WDAY_3 = 131133 // Tuesday
+ X_NL_WDAY_4 = 131134 // Wednesday
+ X_NL_WDAY_5 = 131135 // Thursday
+ X_NL_WDAY_6 = 131136 // Friday
+ X_NL_WDAY_7 = 131137 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WABMON_1 = 131138 // Jan
+ X_NL_WABMON_2 = 131139
+ X_NL_WABMON_3 = 131140
+ X_NL_WABMON_4 = 131141
+ X_NL_WABMON_5 = 131142
+ X_NL_WABMON_6 = 131143
+ X_NL_WABMON_7 = 131144
+ X_NL_WABMON_8 = 131145
+ X_NL_WABMON_9 = 131146
+ X_NL_WABMON_10 = 131147
+ X_NL_WABMON_11 = 131148
+ X_NL_WABMON_12 = 131149
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WMON_1 = 131150 // January
+ X_NL_WMON_2 = 131151
+ X_NL_WMON_3 = 131152
+ X_NL_WMON_4 = 131153
+ X_NL_WMON_5 = 131154
+ X_NL_WMON_6 = 131155
+ X_NL_WMON_7 = 131156
+ X_NL_WMON_8 = 131157
+ X_NL_WMON_9 = 131158
+ X_NL_WMON_10 = 131159
+ X_NL_WMON_11 = 131160
+ X_NL_WMON_12 = 131161
+
+ X_NL_WAM_STR = 131162 // Ante meridiem string.
+ X_NL_WPM_STR = 131163 // Post meridiem string.
+
+ X_NL_WD_T_FMT = 131164 // Date and time format for strftime.
+ X_NL_WD_FMT = 131165 // Date format for strftime.
+ X_NL_WT_FMT = 131166 // Time format for strftime.
+ X_NL_WT_FMT_AMPM = 131167 // 12-hour time format for strftime.
+
+ X_NL_WERA_YEAR = 131168 // Year in alternate era format.
+ X_NL_WERA_D_FMT = 131169 // Date in alternate era format.
+ X_NL_WALT_DIGITS = 131170 // Alternate symbols for digits.
+ X_NL_WERA_D_T_FMT = 131171 // Date and time in alternate era format.
+ X_NL_WERA_T_FMT = 131172 // Time in alternate era format.
+
+ X_NL_TIME_WEEK_NDAYS = 131173
+ X_NL_TIME_WEEK_1STDAY = 131174
+ X_NL_TIME_WEEK_1STWEEK = 131175
+ X_NL_TIME_FIRST_WEEKDAY = 131176
+ X_NL_TIME_FIRST_WORKDAY = 131177
+ X_NL_TIME_CAL_DIRECTION = 131178
+ X_NL_TIME_TIMEZONE = 131179
+
+ X_DATE_FMT = 131180 // strftime format for date.
+ X_NL_W_DATE_FMT = 131181
+
+ X_NL_TIME_CODESET = 131182
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X__ALTMON_1 = 131183 // January
+ X__ALTMON_2 = 131184
+ X__ALTMON_3 = 131185
+ X__ALTMON_4 = 131186
+ X__ALTMON_5 = 131187
+ X__ALTMON_6 = 131188
+ X__ALTMON_7 = 131189
+ X__ALTMON_8 = 131190
+ X__ALTMON_9 = 131191
+ X__ALTMON_10 = 131192
+ X__ALTMON_11 = 131193
+ X__ALTMON_12 = 131194
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WALTMON_1 = 131195 // January
+ X_NL_WALTMON_2 = 131196
+ X_NL_WALTMON_3 = 131197
+ X_NL_WALTMON_4 = 131198
+ X_NL_WALTMON_5 = 131199
+ X_NL_WALTMON_6 = 131200
+ X_NL_WALTMON_7 = 131201
+ X_NL_WALTMON_8 = 131202
+ X_NL_WALTMON_9 = 131203
+ X_NL_WALTMON_10 = 131204
+ X_NL_WALTMON_11 = 131205
+ X_NL_WALTMON_12 = 131206
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_ABALTMON_1 = 131207 // Jan
+ X_NL_ABALTMON_2 = 131208
+ X_NL_ABALTMON_3 = 131209
+ X_NL_ABALTMON_4 = 131210
+ X_NL_ABALTMON_5 = 131211
+ X_NL_ABALTMON_6 = 131212
+ X_NL_ABALTMON_7 = 131213
+ X_NL_ABALTMON_8 = 131214
+ X_NL_ABALTMON_9 = 131215
+ X_NL_ABALTMON_10 = 131216
+ X_NL_ABALTMON_11 = 131217
+ X_NL_ABALTMON_12 = 131218
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WABALTMON_1 = 131219 // Jan
+ X_NL_WABALTMON_2 = 131220
+ X_NL_WABALTMON_3 = 131221
+ X_NL_WABALTMON_4 = 131222
+ X_NL_WABALTMON_5 = 131223
+ X_NL_WABALTMON_6 = 131224
+ X_NL_WABALTMON_7 = 131225
+ X_NL_WABALTMON_8 = 131226
+ X_NL_WABALTMON_9 = 131227
+ X_NL_WABALTMON_10 = 131228
+ X_NL_WABALTMON_11 = 131229
+ X_NL_WABALTMON_12 = 131230
+
+ X_NL_NUM_LC_TIME = 131231 // Number of indices in LC_TIME category.
+
+ // LC_COLLATE category: text sorting.
+ // This information is accessed by the strcoll and strxfrm functions.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_COLLATE_NRULES = 196608
+ X_NL_COLLATE_RULESETS = 196609
+ X_NL_COLLATE_TABLEMB = 196610
+ X_NL_COLLATE_WEIGHTMB = 196611
+ X_NL_COLLATE_EXTRAMB = 196612
+ X_NL_COLLATE_INDIRECTMB = 196613
+ X_NL_COLLATE_GAP1 = 196614
+ X_NL_COLLATE_GAP2 = 196615
+ X_NL_COLLATE_GAP3 = 196616
+ X_NL_COLLATE_TABLEWC = 196617
+ X_NL_COLLATE_WEIGHTWC = 196618
+ X_NL_COLLATE_EXTRAWC = 196619
+ X_NL_COLLATE_INDIRECTWC = 196620
+ X_NL_COLLATE_SYMB_HASH_SIZEMB = 196621
+ X_NL_COLLATE_SYMB_TABLEMB = 196622
+ X_NL_COLLATE_SYMB_EXTRAMB = 196623
+ X_NL_COLLATE_COLLSEQMB = 196624
+ X_NL_COLLATE_COLLSEQWC = 196625
+ X_NL_COLLATE_CODESET = 196626
+ X_NL_NUM_LC_COLLATE = 196627
+
+ // LC_CTYPE category: character classification.
+ // This information is accessed by the functions in <ctype.h>.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_CTYPE_CLASS = 0
+ X_NL_CTYPE_TOUPPER = 1
+ X_NL_CTYPE_GAP1 = 2
+ X_NL_CTYPE_TOLOWER = 3
+ X_NL_CTYPE_GAP2 = 4
+ X_NL_CTYPE_CLASS32 = 5
+ X_NL_CTYPE_GAP3 = 6
+ X_NL_CTYPE_GAP4 = 7
+ X_NL_CTYPE_GAP5 = 8
+ X_NL_CTYPE_GAP6 = 9
+ X_NL_CTYPE_CLASS_NAMES = 10
+ X_NL_CTYPE_MAP_NAMES = 11
+ X_NL_CTYPE_WIDTH = 12
+ X_NL_CTYPE_MB_CUR_MAX = 13
+ X_NL_CTYPE_CODESET_NAME = 14
+ CODESET = 14
+ X_NL_CTYPE_TOUPPER32 = 15
+ X_NL_CTYPE_TOLOWER32 = 16
+ X_NL_CTYPE_CLASS_OFFSET = 17
+ X_NL_CTYPE_MAP_OFFSET = 18
+ X_NL_CTYPE_INDIGITS_MB_LEN = 19
+ X_NL_CTYPE_INDIGITS0_MB = 20
+ X_NL_CTYPE_INDIGITS1_MB = 21
+ X_NL_CTYPE_INDIGITS2_MB = 22
+ X_NL_CTYPE_INDIGITS3_MB = 23
+ X_NL_CTYPE_INDIGITS4_MB = 24
+ X_NL_CTYPE_INDIGITS5_MB = 25
+ X_NL_CTYPE_INDIGITS6_MB = 26
+ X_NL_CTYPE_INDIGITS7_MB = 27
+ X_NL_CTYPE_INDIGITS8_MB = 28
+ X_NL_CTYPE_INDIGITS9_MB = 29
+ X_NL_CTYPE_INDIGITS_WC_LEN = 30
+ X_NL_CTYPE_INDIGITS0_WC = 31
+ X_NL_CTYPE_INDIGITS1_WC = 32
+ X_NL_CTYPE_INDIGITS2_WC = 33
+ X_NL_CTYPE_INDIGITS3_WC = 34
+ X_NL_CTYPE_INDIGITS4_WC = 35
+ X_NL_CTYPE_INDIGITS5_WC = 36
+ X_NL_CTYPE_INDIGITS6_WC = 37
+ X_NL_CTYPE_INDIGITS7_WC = 38
+ X_NL_CTYPE_INDIGITS8_WC = 39
+ X_NL_CTYPE_INDIGITS9_WC = 40
+ X_NL_CTYPE_OUTDIGIT0_MB = 41
+ X_NL_CTYPE_OUTDIGIT1_MB = 42
+ X_NL_CTYPE_OUTDIGIT2_MB = 43
+ X_NL_CTYPE_OUTDIGIT3_MB = 44
+ X_NL_CTYPE_OUTDIGIT4_MB = 45
+ X_NL_CTYPE_OUTDIGIT5_MB = 46
+ X_NL_CTYPE_OUTDIGIT6_MB = 47
+ X_NL_CTYPE_OUTDIGIT7_MB = 48
+ X_NL_CTYPE_OUTDIGIT8_MB = 49
+ X_NL_CTYPE_OUTDIGIT9_MB = 50
+ X_NL_CTYPE_OUTDIGIT0_WC = 51
+ X_NL_CTYPE_OUTDIGIT1_WC = 52
+ X_NL_CTYPE_OUTDIGIT2_WC = 53
+ X_NL_CTYPE_OUTDIGIT3_WC = 54
+ X_NL_CTYPE_OUTDIGIT4_WC = 55
+ X_NL_CTYPE_OUTDIGIT5_WC = 56
+ X_NL_CTYPE_OUTDIGIT6_WC = 57
+ X_NL_CTYPE_OUTDIGIT7_WC = 58
+ X_NL_CTYPE_OUTDIGIT8_WC = 59
+ X_NL_CTYPE_OUTDIGIT9_WC = 60
+ X_NL_CTYPE_TRANSLIT_TAB_SIZE = 61
+ X_NL_CTYPE_TRANSLIT_FROM_IDX = 62
+ X_NL_CTYPE_TRANSLIT_FROM_TBL = 63
+ X_NL_CTYPE_TRANSLIT_TO_IDX = 64
+ X_NL_CTYPE_TRANSLIT_TO_TBL = 65
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN = 66
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING = 67
+ X_NL_CTYPE_TRANSLIT_IGNORE_LEN = 68
+ X_NL_CTYPE_TRANSLIT_IGNORE = 69
+ X_NL_CTYPE_MAP_TO_NONASCII = 70
+ X_NL_CTYPE_NONASCII_CASE = 71
+ X_NL_CTYPE_EXTRA_MAP_1 = 72
+ X_NL_CTYPE_EXTRA_MAP_2 = 73
+ X_NL_CTYPE_EXTRA_MAP_3 = 74
+ X_NL_CTYPE_EXTRA_MAP_4 = 75
+ X_NL_CTYPE_EXTRA_MAP_5 = 76
+ X_NL_CTYPE_EXTRA_MAP_6 = 77
+ X_NL_CTYPE_EXTRA_MAP_7 = 78
+ X_NL_CTYPE_EXTRA_MAP_8 = 79
+ X_NL_CTYPE_EXTRA_MAP_9 = 80
+ X_NL_CTYPE_EXTRA_MAP_10 = 81
+ X_NL_CTYPE_EXTRA_MAP_11 = 82
+ X_NL_CTYPE_EXTRA_MAP_12 = 83
+ X_NL_CTYPE_EXTRA_MAP_13 = 84
+ X_NL_CTYPE_EXTRA_MAP_14 = 85
+ X_NL_NUM_LC_CTYPE = 86
+
+ // LC_MONETARY category: formatting of monetary quantities.
+ // These items each correspond to a member of `struct lconv',
+ // defined in <locale.h>.
+ X__INT_CURR_SYMBOL = 262144
+ X__CURRENCY_SYMBOL = 262145
+ X__MON_DECIMAL_POINT = 262146
+ X__MON_THOUSANDS_SEP = 262147
+ X__MON_GROUPING = 262148
+ X__POSITIVE_SIGN = 262149
+ X__NEGATIVE_SIGN = 262150
+ X__INT_FRAC_DIGITS = 262151
+ X__FRAC_DIGITS = 262152
+ X__P_CS_PRECEDES = 262153
+ X__P_SEP_BY_SPACE = 262154
+ X__N_CS_PRECEDES = 262155
+ X__N_SEP_BY_SPACE = 262156
+ X__P_SIGN_POSN = 262157
+ X__N_SIGN_POSN = 262158
+ X_NL_MONETARY_CRNCYSTR = 262159
+ X__INT_P_CS_PRECEDES = 262160
+ X__INT_P_SEP_BY_SPACE = 262161
+ X__INT_N_CS_PRECEDES = 262162
+ X__INT_N_SEP_BY_SPACE = 262163
+ X__INT_P_SIGN_POSN = 262164
+ X__INT_N_SIGN_POSN = 262165
+ X_NL_MONETARY_DUO_INT_CURR_SYMBOL = 262166
+ X_NL_MONETARY_DUO_CURRENCY_SYMBOL = 262167
+ X_NL_MONETARY_DUO_INT_FRAC_DIGITS = 262168
+ X_NL_MONETARY_DUO_FRAC_DIGITS = 262169
+ X_NL_MONETARY_DUO_P_CS_PRECEDES = 262170
+ X_NL_MONETARY_DUO_P_SEP_BY_SPACE = 262171
+ X_NL_MONETARY_DUO_N_CS_PRECEDES = 262172
+ X_NL_MONETARY_DUO_N_SEP_BY_SPACE = 262173
+ X_NL_MONETARY_DUO_INT_P_CS_PRECEDES = 262174
+ X_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE = 262175
+ X_NL_MONETARY_DUO_INT_N_CS_PRECEDES = 262176
+ X_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE = 262177
+ X_NL_MONETARY_DUO_P_SIGN_POSN = 262178
+ X_NL_MONETARY_DUO_N_SIGN_POSN = 262179
+ X_NL_MONETARY_DUO_INT_P_SIGN_POSN = 262180
+ X_NL_MONETARY_DUO_INT_N_SIGN_POSN = 262181
+ X_NL_MONETARY_UNO_VALID_FROM = 262182
+ X_NL_MONETARY_UNO_VALID_TO = 262183
+ X_NL_MONETARY_DUO_VALID_FROM = 262184
+ X_NL_MONETARY_DUO_VALID_TO = 262185
+ X_NL_MONETARY_CONVERSION_RATE = 262186
+ X_NL_MONETARY_DECIMAL_POINT_WC = 262187
+ X_NL_MONETARY_THOUSANDS_SEP_WC = 262188
+ X_NL_MONETARY_CODESET = 262189
+ X_NL_NUM_LC_MONETARY = 262190
+
+ // LC_NUMERIC category: formatting of numbers.
+ // These also correspond to members of `struct lconv'; see <locale.h>.
+ X__DECIMAL_POINT = 65536
+ RADIXCHAR = 65536
+ X__THOUSANDS_SEP = 65537
+ THOUSEP = 65537
+ X__GROUPING = 65538
+ X_NL_NUMERIC_DECIMAL_POINT_WC = 65539
+ X_NL_NUMERIC_THOUSANDS_SEP_WC = 65540
+ X_NL_NUMERIC_CODESET = 65541
+ X_NL_NUM_LC_NUMERIC = 65542
+
+ X__YESEXPR = 327680 // Regex matching ``yes'' input.
+ X__NOEXPR = 327681 // Regex matching ``no'' input.
+ X__YESSTR = 327682 // Output string for ``yes''.
+ X__NOSTR = 327683 // Output string for ``no''.
+ X_NL_MESSAGES_CODESET = 327684
+ X_NL_NUM_LC_MESSAGES = 327685
+
+ X_NL_PAPER_HEIGHT = 458752
+ X_NL_PAPER_WIDTH = 458753
+ X_NL_PAPER_CODESET = 458754
+ X_NL_NUM_LC_PAPER = 458755
+
+ X_NL_NAME_NAME_FMT = 524288
+ X_NL_NAME_NAME_GEN = 524289
+ X_NL_NAME_NAME_MR = 524290
+ X_NL_NAME_NAME_MRS = 524291
+ X_NL_NAME_NAME_MISS = 524292
+ X_NL_NAME_NAME_MS = 524293
+ X_NL_NAME_CODESET = 524294
+ X_NL_NUM_LC_NAME = 524295
+
+ X_NL_ADDRESS_POSTAL_FMT = 589824
+ X_NL_ADDRESS_COUNTRY_NAME = 589825
+ X_NL_ADDRESS_COUNTRY_POST = 589826
+ X_NL_ADDRESS_COUNTRY_AB2 = 589827
+ X_NL_ADDRESS_COUNTRY_AB3 = 589828
+ X_NL_ADDRESS_COUNTRY_CAR = 589829
+ X_NL_ADDRESS_COUNTRY_NUM = 589830
+ X_NL_ADDRESS_COUNTRY_ISBN = 589831
+ X_NL_ADDRESS_LANG_NAME = 589832
+ X_NL_ADDRESS_LANG_AB = 589833
+ X_NL_ADDRESS_LANG_TERM = 589834
+ X_NL_ADDRESS_LANG_LIB = 589835
+ X_NL_ADDRESS_CODESET = 589836
+ X_NL_NUM_LC_ADDRESS = 589837
+
+ X_NL_TELEPHONE_TEL_INT_FMT = 655360
+ X_NL_TELEPHONE_TEL_DOM_FMT = 655361
+ X_NL_TELEPHONE_INT_SELECT = 655362
+ X_NL_TELEPHONE_INT_PREFIX = 655363
+ X_NL_TELEPHONE_CODESET = 655364
+ X_NL_NUM_LC_TELEPHONE = 655365
+
+ X_NL_MEASUREMENT_MEASUREMENT = 720896
+ X_NL_MEASUREMENT_CODESET = 720897
+ X_NL_NUM_LC_MEASUREMENT = 720898
+
+ X_NL_IDENTIFICATION_TITLE = 786432
+ X_NL_IDENTIFICATION_SOURCE = 786433
+ X_NL_IDENTIFICATION_ADDRESS = 786434
+ X_NL_IDENTIFICATION_CONTACT = 786435
+ X_NL_IDENTIFICATION_EMAIL = 786436
+ X_NL_IDENTIFICATION_TEL = 786437
+ X_NL_IDENTIFICATION_FAX = 786438
+ X_NL_IDENTIFICATION_LANGUAGE = 786439
+ X_NL_IDENTIFICATION_TERRITORY = 786440
+ X_NL_IDENTIFICATION_AUDIENCE = 786441
+ X_NL_IDENTIFICATION_APPLICATION = 786442
+ X_NL_IDENTIFICATION_ABBREVIATION = 786443
+ X_NL_IDENTIFICATION_REVISION = 786444
+ X_NL_IDENTIFICATION_DATE = 786445
+ X_NL_IDENTIFICATION_CATEGORY = 786446
+ X_NL_IDENTIFICATION_CODESET = 786447
+ X_NL_NUM_LC_IDENTIFICATION = 786448
+
+ // This marks the highest value used.
+ X_NL_NUM = 786449
+)
+
+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 */
+
+// Access to locale-dependent parameters.
+// 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
+// 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/>.
+
+// Get the type definition.
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// The default message set used by the gencat program.
+
+// Value for FLAG parameter of `catgets' to say we want XPG4 compliance.
+
+// Message catalog descriptor type.
+type Nl_catd = uintptr /* nl_types.h:33:14 */
+
+// Type used by `nl_langinfo'.
+type Nl_item = int32 /* nl_types.h:36:13 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_linux_arm.go b/vendor/modernc.org/libc/langinfo/langinfo_linux_arm.go
new file mode 100644
index 00000000..b05ebc91
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_linux_arm.go
@@ -0,0 +1,1078 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_arm.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_LOCALE_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H = 1
+ X_NL_TYPES_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Definition of locale category symbol values.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+// Construct an `nl_item' value for `nl_langinfo' from a locale category
+// (LC_*) and an item index within the category. Some code may depend on
+// the item values within a category increasing monotonically with the
+// indices.
+
+// Extract the category and item index from a constructed `nl_item' value.
+
+// Enumeration of locale items that can be queried with `nl_langinfo'.
+const ( /* langinfo.h:41:1: */
+ // LC_TIME category: date and time formatting.
+
+ // Abbreviated days of the week.
+ ABDAY_1 = 131072 // Sun
+ ABDAY_2 = 131073
+ ABDAY_3 = 131074
+ ABDAY_4 = 131075
+ ABDAY_5 = 131076
+ ABDAY_6 = 131077
+ ABDAY_7 = 131078
+
+ // Long-named days of the week.
+ DAY_1 = 131079 // Sunday
+ DAY_2 = 131080 // Monday
+ DAY_3 = 131081 // Tuesday
+ DAY_4 = 131082 // Wednesday
+ DAY_5 = 131083 // Thursday
+ DAY_6 = 131084 // Friday
+ DAY_7 = 131085 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ ABMON_1 = 131086 // Jan
+ ABMON_2 = 131087
+ ABMON_3 = 131088
+ ABMON_4 = 131089
+ ABMON_5 = 131090
+ ABMON_6 = 131091
+ ABMON_7 = 131092
+ ABMON_8 = 131093
+ ABMON_9 = 131094
+ ABMON_10 = 131095
+ ABMON_11 = 131096
+ ABMON_12 = 131097
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ MON_1 = 131098 // January
+ MON_2 = 131099
+ MON_3 = 131100
+ MON_4 = 131101
+ MON_5 = 131102
+ MON_6 = 131103
+ MON_7 = 131104
+ MON_8 = 131105
+ MON_9 = 131106
+ MON_10 = 131107
+ MON_11 = 131108
+ MON_12 = 131109
+
+ AM_STR = 131110 // Ante meridiem string.
+ PM_STR = 131111 // Post meridiem string.
+
+ D_T_FMT = 131112 // Date and time format for strftime.
+ D_FMT = 131113 // Date format for strftime.
+ T_FMT = 131114 // Time format for strftime.
+ T_FMT_AMPM = 131115 // 12-hour time format for strftime.
+
+ ERA = 131116 // Alternate era.
+ X__ERA_YEAR = 131117 // Year in alternate era format.
+ ERA_D_FMT = 131118 // Date in alternate era format.
+ ALT_DIGITS = 131119 // Alternate symbols for digits.
+ ERA_D_T_FMT = 131120 // Date and time in alternate era format.
+ ERA_T_FMT = 131121 // Time in alternate era format.
+
+ X_NL_TIME_ERA_NUM_ENTRIES = 131122 // Number entries in the era arrays.
+ X_NL_TIME_ERA_ENTRIES = 131123 // Structure with era entries in usable form.
+
+ X_NL_WABDAY_1 = 131124 // Sun
+ X_NL_WABDAY_2 = 131125
+ X_NL_WABDAY_3 = 131126
+ X_NL_WABDAY_4 = 131127
+ X_NL_WABDAY_5 = 131128
+ X_NL_WABDAY_6 = 131129
+ X_NL_WABDAY_7 = 131130
+
+ // Long-named days of the week.
+ X_NL_WDAY_1 = 131131 // Sunday
+ X_NL_WDAY_2 = 131132 // Monday
+ X_NL_WDAY_3 = 131133 // Tuesday
+ X_NL_WDAY_4 = 131134 // Wednesday
+ X_NL_WDAY_5 = 131135 // Thursday
+ X_NL_WDAY_6 = 131136 // Friday
+ X_NL_WDAY_7 = 131137 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WABMON_1 = 131138 // Jan
+ X_NL_WABMON_2 = 131139
+ X_NL_WABMON_3 = 131140
+ X_NL_WABMON_4 = 131141
+ X_NL_WABMON_5 = 131142
+ X_NL_WABMON_6 = 131143
+ X_NL_WABMON_7 = 131144
+ X_NL_WABMON_8 = 131145
+ X_NL_WABMON_9 = 131146
+ X_NL_WABMON_10 = 131147
+ X_NL_WABMON_11 = 131148
+ X_NL_WABMON_12 = 131149
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WMON_1 = 131150 // January
+ X_NL_WMON_2 = 131151
+ X_NL_WMON_3 = 131152
+ X_NL_WMON_4 = 131153
+ X_NL_WMON_5 = 131154
+ X_NL_WMON_6 = 131155
+ X_NL_WMON_7 = 131156
+ X_NL_WMON_8 = 131157
+ X_NL_WMON_9 = 131158
+ X_NL_WMON_10 = 131159
+ X_NL_WMON_11 = 131160
+ X_NL_WMON_12 = 131161
+
+ X_NL_WAM_STR = 131162 // Ante meridiem string.
+ X_NL_WPM_STR = 131163 // Post meridiem string.
+
+ X_NL_WD_T_FMT = 131164 // Date and time format for strftime.
+ X_NL_WD_FMT = 131165 // Date format for strftime.
+ X_NL_WT_FMT = 131166 // Time format for strftime.
+ X_NL_WT_FMT_AMPM = 131167 // 12-hour time format for strftime.
+
+ X_NL_WERA_YEAR = 131168 // Year in alternate era format.
+ X_NL_WERA_D_FMT = 131169 // Date in alternate era format.
+ X_NL_WALT_DIGITS = 131170 // Alternate symbols for digits.
+ X_NL_WERA_D_T_FMT = 131171 // Date and time in alternate era format.
+ X_NL_WERA_T_FMT = 131172 // Time in alternate era format.
+
+ X_NL_TIME_WEEK_NDAYS = 131173
+ X_NL_TIME_WEEK_1STDAY = 131174
+ X_NL_TIME_WEEK_1STWEEK = 131175
+ X_NL_TIME_FIRST_WEEKDAY = 131176
+ X_NL_TIME_FIRST_WORKDAY = 131177
+ X_NL_TIME_CAL_DIRECTION = 131178
+ X_NL_TIME_TIMEZONE = 131179
+
+ X_DATE_FMT = 131180 // strftime format for date.
+ X_NL_W_DATE_FMT = 131181
+
+ X_NL_TIME_CODESET = 131182
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X__ALTMON_1 = 131183 // January
+ X__ALTMON_2 = 131184
+ X__ALTMON_3 = 131185
+ X__ALTMON_4 = 131186
+ X__ALTMON_5 = 131187
+ X__ALTMON_6 = 131188
+ X__ALTMON_7 = 131189
+ X__ALTMON_8 = 131190
+ X__ALTMON_9 = 131191
+ X__ALTMON_10 = 131192
+ X__ALTMON_11 = 131193
+ X__ALTMON_12 = 131194
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WALTMON_1 = 131195 // January
+ X_NL_WALTMON_2 = 131196
+ X_NL_WALTMON_3 = 131197
+ X_NL_WALTMON_4 = 131198
+ X_NL_WALTMON_5 = 131199
+ X_NL_WALTMON_6 = 131200
+ X_NL_WALTMON_7 = 131201
+ X_NL_WALTMON_8 = 131202
+ X_NL_WALTMON_9 = 131203
+ X_NL_WALTMON_10 = 131204
+ X_NL_WALTMON_11 = 131205
+ X_NL_WALTMON_12 = 131206
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_ABALTMON_1 = 131207 // Jan
+ X_NL_ABALTMON_2 = 131208
+ X_NL_ABALTMON_3 = 131209
+ X_NL_ABALTMON_4 = 131210
+ X_NL_ABALTMON_5 = 131211
+ X_NL_ABALTMON_6 = 131212
+ X_NL_ABALTMON_7 = 131213
+ X_NL_ABALTMON_8 = 131214
+ X_NL_ABALTMON_9 = 131215
+ X_NL_ABALTMON_10 = 131216
+ X_NL_ABALTMON_11 = 131217
+ X_NL_ABALTMON_12 = 131218
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WABALTMON_1 = 131219 // Jan
+ X_NL_WABALTMON_2 = 131220
+ X_NL_WABALTMON_3 = 131221
+ X_NL_WABALTMON_4 = 131222
+ X_NL_WABALTMON_5 = 131223
+ X_NL_WABALTMON_6 = 131224
+ X_NL_WABALTMON_7 = 131225
+ X_NL_WABALTMON_8 = 131226
+ X_NL_WABALTMON_9 = 131227
+ X_NL_WABALTMON_10 = 131228
+ X_NL_WABALTMON_11 = 131229
+ X_NL_WABALTMON_12 = 131230
+
+ X_NL_NUM_LC_TIME = 131231 // Number of indices in LC_TIME category.
+
+ // LC_COLLATE category: text sorting.
+ // This information is accessed by the strcoll and strxfrm functions.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_COLLATE_NRULES = 196608
+ X_NL_COLLATE_RULESETS = 196609
+ X_NL_COLLATE_TABLEMB = 196610
+ X_NL_COLLATE_WEIGHTMB = 196611
+ X_NL_COLLATE_EXTRAMB = 196612
+ X_NL_COLLATE_INDIRECTMB = 196613
+ X_NL_COLLATE_GAP1 = 196614
+ X_NL_COLLATE_GAP2 = 196615
+ X_NL_COLLATE_GAP3 = 196616
+ X_NL_COLLATE_TABLEWC = 196617
+ X_NL_COLLATE_WEIGHTWC = 196618
+ X_NL_COLLATE_EXTRAWC = 196619
+ X_NL_COLLATE_INDIRECTWC = 196620
+ X_NL_COLLATE_SYMB_HASH_SIZEMB = 196621
+ X_NL_COLLATE_SYMB_TABLEMB = 196622
+ X_NL_COLLATE_SYMB_EXTRAMB = 196623
+ X_NL_COLLATE_COLLSEQMB = 196624
+ X_NL_COLLATE_COLLSEQWC = 196625
+ X_NL_COLLATE_CODESET = 196626
+ X_NL_NUM_LC_COLLATE = 196627
+
+ // LC_CTYPE category: character classification.
+ // This information is accessed by the functions in <ctype.h>.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_CTYPE_CLASS = 0
+ X_NL_CTYPE_TOUPPER = 1
+ X_NL_CTYPE_GAP1 = 2
+ X_NL_CTYPE_TOLOWER = 3
+ X_NL_CTYPE_GAP2 = 4
+ X_NL_CTYPE_CLASS32 = 5
+ X_NL_CTYPE_GAP3 = 6
+ X_NL_CTYPE_GAP4 = 7
+ X_NL_CTYPE_GAP5 = 8
+ X_NL_CTYPE_GAP6 = 9
+ X_NL_CTYPE_CLASS_NAMES = 10
+ X_NL_CTYPE_MAP_NAMES = 11
+ X_NL_CTYPE_WIDTH = 12
+ X_NL_CTYPE_MB_CUR_MAX = 13
+ X_NL_CTYPE_CODESET_NAME = 14
+ CODESET = 14
+ X_NL_CTYPE_TOUPPER32 = 15
+ X_NL_CTYPE_TOLOWER32 = 16
+ X_NL_CTYPE_CLASS_OFFSET = 17
+ X_NL_CTYPE_MAP_OFFSET = 18
+ X_NL_CTYPE_INDIGITS_MB_LEN = 19
+ X_NL_CTYPE_INDIGITS0_MB = 20
+ X_NL_CTYPE_INDIGITS1_MB = 21
+ X_NL_CTYPE_INDIGITS2_MB = 22
+ X_NL_CTYPE_INDIGITS3_MB = 23
+ X_NL_CTYPE_INDIGITS4_MB = 24
+ X_NL_CTYPE_INDIGITS5_MB = 25
+ X_NL_CTYPE_INDIGITS6_MB = 26
+ X_NL_CTYPE_INDIGITS7_MB = 27
+ X_NL_CTYPE_INDIGITS8_MB = 28
+ X_NL_CTYPE_INDIGITS9_MB = 29
+ X_NL_CTYPE_INDIGITS_WC_LEN = 30
+ X_NL_CTYPE_INDIGITS0_WC = 31
+ X_NL_CTYPE_INDIGITS1_WC = 32
+ X_NL_CTYPE_INDIGITS2_WC = 33
+ X_NL_CTYPE_INDIGITS3_WC = 34
+ X_NL_CTYPE_INDIGITS4_WC = 35
+ X_NL_CTYPE_INDIGITS5_WC = 36
+ X_NL_CTYPE_INDIGITS6_WC = 37
+ X_NL_CTYPE_INDIGITS7_WC = 38
+ X_NL_CTYPE_INDIGITS8_WC = 39
+ X_NL_CTYPE_INDIGITS9_WC = 40
+ X_NL_CTYPE_OUTDIGIT0_MB = 41
+ X_NL_CTYPE_OUTDIGIT1_MB = 42
+ X_NL_CTYPE_OUTDIGIT2_MB = 43
+ X_NL_CTYPE_OUTDIGIT3_MB = 44
+ X_NL_CTYPE_OUTDIGIT4_MB = 45
+ X_NL_CTYPE_OUTDIGIT5_MB = 46
+ X_NL_CTYPE_OUTDIGIT6_MB = 47
+ X_NL_CTYPE_OUTDIGIT7_MB = 48
+ X_NL_CTYPE_OUTDIGIT8_MB = 49
+ X_NL_CTYPE_OUTDIGIT9_MB = 50
+ X_NL_CTYPE_OUTDIGIT0_WC = 51
+ X_NL_CTYPE_OUTDIGIT1_WC = 52
+ X_NL_CTYPE_OUTDIGIT2_WC = 53
+ X_NL_CTYPE_OUTDIGIT3_WC = 54
+ X_NL_CTYPE_OUTDIGIT4_WC = 55
+ X_NL_CTYPE_OUTDIGIT5_WC = 56
+ X_NL_CTYPE_OUTDIGIT6_WC = 57
+ X_NL_CTYPE_OUTDIGIT7_WC = 58
+ X_NL_CTYPE_OUTDIGIT8_WC = 59
+ X_NL_CTYPE_OUTDIGIT9_WC = 60
+ X_NL_CTYPE_TRANSLIT_TAB_SIZE = 61
+ X_NL_CTYPE_TRANSLIT_FROM_IDX = 62
+ X_NL_CTYPE_TRANSLIT_FROM_TBL = 63
+ X_NL_CTYPE_TRANSLIT_TO_IDX = 64
+ X_NL_CTYPE_TRANSLIT_TO_TBL = 65
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN = 66
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING = 67
+ X_NL_CTYPE_TRANSLIT_IGNORE_LEN = 68
+ X_NL_CTYPE_TRANSLIT_IGNORE = 69
+ X_NL_CTYPE_MAP_TO_NONASCII = 70
+ X_NL_CTYPE_NONASCII_CASE = 71
+ X_NL_CTYPE_EXTRA_MAP_1 = 72
+ X_NL_CTYPE_EXTRA_MAP_2 = 73
+ X_NL_CTYPE_EXTRA_MAP_3 = 74
+ X_NL_CTYPE_EXTRA_MAP_4 = 75
+ X_NL_CTYPE_EXTRA_MAP_5 = 76
+ X_NL_CTYPE_EXTRA_MAP_6 = 77
+ X_NL_CTYPE_EXTRA_MAP_7 = 78
+ X_NL_CTYPE_EXTRA_MAP_8 = 79
+ X_NL_CTYPE_EXTRA_MAP_9 = 80
+ X_NL_CTYPE_EXTRA_MAP_10 = 81
+ X_NL_CTYPE_EXTRA_MAP_11 = 82
+ X_NL_CTYPE_EXTRA_MAP_12 = 83
+ X_NL_CTYPE_EXTRA_MAP_13 = 84
+ X_NL_CTYPE_EXTRA_MAP_14 = 85
+ X_NL_NUM_LC_CTYPE = 86
+
+ // LC_MONETARY category: formatting of monetary quantities.
+ // These items each correspond to a member of `struct lconv',
+ // defined in <locale.h>.
+ X__INT_CURR_SYMBOL = 262144
+ X__CURRENCY_SYMBOL = 262145
+ X__MON_DECIMAL_POINT = 262146
+ X__MON_THOUSANDS_SEP = 262147
+ X__MON_GROUPING = 262148
+ X__POSITIVE_SIGN = 262149
+ X__NEGATIVE_SIGN = 262150
+ X__INT_FRAC_DIGITS = 262151
+ X__FRAC_DIGITS = 262152
+ X__P_CS_PRECEDES = 262153
+ X__P_SEP_BY_SPACE = 262154
+ X__N_CS_PRECEDES = 262155
+ X__N_SEP_BY_SPACE = 262156
+ X__P_SIGN_POSN = 262157
+ X__N_SIGN_POSN = 262158
+ X_NL_MONETARY_CRNCYSTR = 262159
+ X__INT_P_CS_PRECEDES = 262160
+ X__INT_P_SEP_BY_SPACE = 262161
+ X__INT_N_CS_PRECEDES = 262162
+ X__INT_N_SEP_BY_SPACE = 262163
+ X__INT_P_SIGN_POSN = 262164
+ X__INT_N_SIGN_POSN = 262165
+ X_NL_MONETARY_DUO_INT_CURR_SYMBOL = 262166
+ X_NL_MONETARY_DUO_CURRENCY_SYMBOL = 262167
+ X_NL_MONETARY_DUO_INT_FRAC_DIGITS = 262168
+ X_NL_MONETARY_DUO_FRAC_DIGITS = 262169
+ X_NL_MONETARY_DUO_P_CS_PRECEDES = 262170
+ X_NL_MONETARY_DUO_P_SEP_BY_SPACE = 262171
+ X_NL_MONETARY_DUO_N_CS_PRECEDES = 262172
+ X_NL_MONETARY_DUO_N_SEP_BY_SPACE = 262173
+ X_NL_MONETARY_DUO_INT_P_CS_PRECEDES = 262174
+ X_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE = 262175
+ X_NL_MONETARY_DUO_INT_N_CS_PRECEDES = 262176
+ X_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE = 262177
+ X_NL_MONETARY_DUO_P_SIGN_POSN = 262178
+ X_NL_MONETARY_DUO_N_SIGN_POSN = 262179
+ X_NL_MONETARY_DUO_INT_P_SIGN_POSN = 262180
+ X_NL_MONETARY_DUO_INT_N_SIGN_POSN = 262181
+ X_NL_MONETARY_UNO_VALID_FROM = 262182
+ X_NL_MONETARY_UNO_VALID_TO = 262183
+ X_NL_MONETARY_DUO_VALID_FROM = 262184
+ X_NL_MONETARY_DUO_VALID_TO = 262185
+ X_NL_MONETARY_CONVERSION_RATE = 262186
+ X_NL_MONETARY_DECIMAL_POINT_WC = 262187
+ X_NL_MONETARY_THOUSANDS_SEP_WC = 262188
+ X_NL_MONETARY_CODESET = 262189
+ X_NL_NUM_LC_MONETARY = 262190
+
+ // LC_NUMERIC category: formatting of numbers.
+ // These also correspond to members of `struct lconv'; see <locale.h>.
+ X__DECIMAL_POINT = 65536
+ RADIXCHAR = 65536
+ X__THOUSANDS_SEP = 65537
+ THOUSEP = 65537
+ X__GROUPING = 65538
+ X_NL_NUMERIC_DECIMAL_POINT_WC = 65539
+ X_NL_NUMERIC_THOUSANDS_SEP_WC = 65540
+ X_NL_NUMERIC_CODESET = 65541
+ X_NL_NUM_LC_NUMERIC = 65542
+
+ X__YESEXPR = 327680 // Regex matching ``yes'' input.
+ X__NOEXPR = 327681 // Regex matching ``no'' input.
+ X__YESSTR = 327682 // Output string for ``yes''.
+ X__NOSTR = 327683 // Output string for ``no''.
+ X_NL_MESSAGES_CODESET = 327684
+ X_NL_NUM_LC_MESSAGES = 327685
+
+ X_NL_PAPER_HEIGHT = 458752
+ X_NL_PAPER_WIDTH = 458753
+ X_NL_PAPER_CODESET = 458754
+ X_NL_NUM_LC_PAPER = 458755
+
+ X_NL_NAME_NAME_FMT = 524288
+ X_NL_NAME_NAME_GEN = 524289
+ X_NL_NAME_NAME_MR = 524290
+ X_NL_NAME_NAME_MRS = 524291
+ X_NL_NAME_NAME_MISS = 524292
+ X_NL_NAME_NAME_MS = 524293
+ X_NL_NAME_CODESET = 524294
+ X_NL_NUM_LC_NAME = 524295
+
+ X_NL_ADDRESS_POSTAL_FMT = 589824
+ X_NL_ADDRESS_COUNTRY_NAME = 589825
+ X_NL_ADDRESS_COUNTRY_POST = 589826
+ X_NL_ADDRESS_COUNTRY_AB2 = 589827
+ X_NL_ADDRESS_COUNTRY_AB3 = 589828
+ X_NL_ADDRESS_COUNTRY_CAR = 589829
+ X_NL_ADDRESS_COUNTRY_NUM = 589830
+ X_NL_ADDRESS_COUNTRY_ISBN = 589831
+ X_NL_ADDRESS_LANG_NAME = 589832
+ X_NL_ADDRESS_LANG_AB = 589833
+ X_NL_ADDRESS_LANG_TERM = 589834
+ X_NL_ADDRESS_LANG_LIB = 589835
+ X_NL_ADDRESS_CODESET = 589836
+ X_NL_NUM_LC_ADDRESS = 589837
+
+ X_NL_TELEPHONE_TEL_INT_FMT = 655360
+ X_NL_TELEPHONE_TEL_DOM_FMT = 655361
+ X_NL_TELEPHONE_INT_SELECT = 655362
+ X_NL_TELEPHONE_INT_PREFIX = 655363
+ X_NL_TELEPHONE_CODESET = 655364
+ X_NL_NUM_LC_TELEPHONE = 655365
+
+ X_NL_MEASUREMENT_MEASUREMENT = 720896
+ X_NL_MEASUREMENT_CODESET = 720897
+ X_NL_NUM_LC_MEASUREMENT = 720898
+
+ X_NL_IDENTIFICATION_TITLE = 786432
+ X_NL_IDENTIFICATION_SOURCE = 786433
+ X_NL_IDENTIFICATION_ADDRESS = 786434
+ X_NL_IDENTIFICATION_CONTACT = 786435
+ X_NL_IDENTIFICATION_EMAIL = 786436
+ X_NL_IDENTIFICATION_TEL = 786437
+ X_NL_IDENTIFICATION_FAX = 786438
+ X_NL_IDENTIFICATION_LANGUAGE = 786439
+ X_NL_IDENTIFICATION_TERRITORY = 786440
+ X_NL_IDENTIFICATION_AUDIENCE = 786441
+ X_NL_IDENTIFICATION_APPLICATION = 786442
+ X_NL_IDENTIFICATION_ABBREVIATION = 786443
+ X_NL_IDENTIFICATION_REVISION = 786444
+ X_NL_IDENTIFICATION_DATE = 786445
+ X_NL_IDENTIFICATION_CATEGORY = 786446
+ X_NL_IDENTIFICATION_CODESET = 786447
+ X_NL_NUM_LC_IDENTIFICATION = 786448
+
+ // This marks the highest value used.
+ X_NL_NUM = 786449
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Access to locale-dependent parameters.
+// 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
+// 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/>.
+
+// Get the type definition.
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// The default message set used by the gencat program.
+
+// Value for FLAG parameter of `catgets' to say we want XPG4 compliance.
+
+// Message catalog descriptor type.
+type Nl_catd = uintptr /* nl_types.h:33:14 */
+
+// Type used by `nl_langinfo'.
+type Nl_item = int32 /* nl_types.h:36:13 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_linux_arm64.go b/vendor/modernc.org/libc/langinfo/langinfo_linux_arm64.go
new file mode 100644
index 00000000..c5a6d14f
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_linux_arm64.go
@@ -0,0 +1,1093 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_arm64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_LOCALE_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H = 1
+ X_LP64 = 1
+ X_NL_TYPES_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Definition of locale category symbol values.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+// Construct an `nl_item' value for `nl_langinfo' from a locale category
+// (LC_*) and an item index within the category. Some code may depend on
+// the item values within a category increasing monotonically with the
+// indices.
+
+// Extract the category and item index from a constructed `nl_item' value.
+
+// Enumeration of locale items that can be queried with `nl_langinfo'.
+const ( /* langinfo.h:41:1: */
+ // LC_TIME category: date and time formatting.
+
+ // Abbreviated days of the week.
+ ABDAY_1 = 131072 // Sun
+ ABDAY_2 = 131073
+ ABDAY_3 = 131074
+ ABDAY_4 = 131075
+ ABDAY_5 = 131076
+ ABDAY_6 = 131077
+ ABDAY_7 = 131078
+
+ // Long-named days of the week.
+ DAY_1 = 131079 // Sunday
+ DAY_2 = 131080 // Monday
+ DAY_3 = 131081 // Tuesday
+ DAY_4 = 131082 // Wednesday
+ DAY_5 = 131083 // Thursday
+ DAY_6 = 131084 // Friday
+ DAY_7 = 131085 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ ABMON_1 = 131086 // Jan
+ ABMON_2 = 131087
+ ABMON_3 = 131088
+ ABMON_4 = 131089
+ ABMON_5 = 131090
+ ABMON_6 = 131091
+ ABMON_7 = 131092
+ ABMON_8 = 131093
+ ABMON_9 = 131094
+ ABMON_10 = 131095
+ ABMON_11 = 131096
+ ABMON_12 = 131097
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ MON_1 = 131098 // January
+ MON_2 = 131099
+ MON_3 = 131100
+ MON_4 = 131101
+ MON_5 = 131102
+ MON_6 = 131103
+ MON_7 = 131104
+ MON_8 = 131105
+ MON_9 = 131106
+ MON_10 = 131107
+ MON_11 = 131108
+ MON_12 = 131109
+
+ AM_STR = 131110 // Ante meridiem string.
+ PM_STR = 131111 // Post meridiem string.
+
+ D_T_FMT = 131112 // Date and time format for strftime.
+ D_FMT = 131113 // Date format for strftime.
+ T_FMT = 131114 // Time format for strftime.
+ T_FMT_AMPM = 131115 // 12-hour time format for strftime.
+
+ ERA = 131116 // Alternate era.
+ X__ERA_YEAR = 131117 // Year in alternate era format.
+ ERA_D_FMT = 131118 // Date in alternate era format.
+ ALT_DIGITS = 131119 // Alternate symbols for digits.
+ ERA_D_T_FMT = 131120 // Date and time in alternate era format.
+ ERA_T_FMT = 131121 // Time in alternate era format.
+
+ X_NL_TIME_ERA_NUM_ENTRIES = 131122 // Number entries in the era arrays.
+ X_NL_TIME_ERA_ENTRIES = 131123 // Structure with era entries in usable form.
+
+ X_NL_WABDAY_1 = 131124 // Sun
+ X_NL_WABDAY_2 = 131125
+ X_NL_WABDAY_3 = 131126
+ X_NL_WABDAY_4 = 131127
+ X_NL_WABDAY_5 = 131128
+ X_NL_WABDAY_6 = 131129
+ X_NL_WABDAY_7 = 131130
+
+ // Long-named days of the week.
+ X_NL_WDAY_1 = 131131 // Sunday
+ X_NL_WDAY_2 = 131132 // Monday
+ X_NL_WDAY_3 = 131133 // Tuesday
+ X_NL_WDAY_4 = 131134 // Wednesday
+ X_NL_WDAY_5 = 131135 // Thursday
+ X_NL_WDAY_6 = 131136 // Friday
+ X_NL_WDAY_7 = 131137 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WABMON_1 = 131138 // Jan
+ X_NL_WABMON_2 = 131139
+ X_NL_WABMON_3 = 131140
+ X_NL_WABMON_4 = 131141
+ X_NL_WABMON_5 = 131142
+ X_NL_WABMON_6 = 131143
+ X_NL_WABMON_7 = 131144
+ X_NL_WABMON_8 = 131145
+ X_NL_WABMON_9 = 131146
+ X_NL_WABMON_10 = 131147
+ X_NL_WABMON_11 = 131148
+ X_NL_WABMON_12 = 131149
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WMON_1 = 131150 // January
+ X_NL_WMON_2 = 131151
+ X_NL_WMON_3 = 131152
+ X_NL_WMON_4 = 131153
+ X_NL_WMON_5 = 131154
+ X_NL_WMON_6 = 131155
+ X_NL_WMON_7 = 131156
+ X_NL_WMON_8 = 131157
+ X_NL_WMON_9 = 131158
+ X_NL_WMON_10 = 131159
+ X_NL_WMON_11 = 131160
+ X_NL_WMON_12 = 131161
+
+ X_NL_WAM_STR = 131162 // Ante meridiem string.
+ X_NL_WPM_STR = 131163 // Post meridiem string.
+
+ X_NL_WD_T_FMT = 131164 // Date and time format for strftime.
+ X_NL_WD_FMT = 131165 // Date format for strftime.
+ X_NL_WT_FMT = 131166 // Time format for strftime.
+ X_NL_WT_FMT_AMPM = 131167 // 12-hour time format for strftime.
+
+ X_NL_WERA_YEAR = 131168 // Year in alternate era format.
+ X_NL_WERA_D_FMT = 131169 // Date in alternate era format.
+ X_NL_WALT_DIGITS = 131170 // Alternate symbols for digits.
+ X_NL_WERA_D_T_FMT = 131171 // Date and time in alternate era format.
+ X_NL_WERA_T_FMT = 131172 // Time in alternate era format.
+
+ X_NL_TIME_WEEK_NDAYS = 131173
+ X_NL_TIME_WEEK_1STDAY = 131174
+ X_NL_TIME_WEEK_1STWEEK = 131175
+ X_NL_TIME_FIRST_WEEKDAY = 131176
+ X_NL_TIME_FIRST_WORKDAY = 131177
+ X_NL_TIME_CAL_DIRECTION = 131178
+ X_NL_TIME_TIMEZONE = 131179
+
+ X_DATE_FMT = 131180 // strftime format for date.
+ X_NL_W_DATE_FMT = 131181
+
+ X_NL_TIME_CODESET = 131182
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X__ALTMON_1 = 131183 // January
+ X__ALTMON_2 = 131184
+ X__ALTMON_3 = 131185
+ X__ALTMON_4 = 131186
+ X__ALTMON_5 = 131187
+ X__ALTMON_6 = 131188
+ X__ALTMON_7 = 131189
+ X__ALTMON_8 = 131190
+ X__ALTMON_9 = 131191
+ X__ALTMON_10 = 131192
+ X__ALTMON_11 = 131193
+ X__ALTMON_12 = 131194
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WALTMON_1 = 131195 // January
+ X_NL_WALTMON_2 = 131196
+ X_NL_WALTMON_3 = 131197
+ X_NL_WALTMON_4 = 131198
+ X_NL_WALTMON_5 = 131199
+ X_NL_WALTMON_6 = 131200
+ X_NL_WALTMON_7 = 131201
+ X_NL_WALTMON_8 = 131202
+ X_NL_WALTMON_9 = 131203
+ X_NL_WALTMON_10 = 131204
+ X_NL_WALTMON_11 = 131205
+ X_NL_WALTMON_12 = 131206
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_ABALTMON_1 = 131207 // Jan
+ X_NL_ABALTMON_2 = 131208
+ X_NL_ABALTMON_3 = 131209
+ X_NL_ABALTMON_4 = 131210
+ X_NL_ABALTMON_5 = 131211
+ X_NL_ABALTMON_6 = 131212
+ X_NL_ABALTMON_7 = 131213
+ X_NL_ABALTMON_8 = 131214
+ X_NL_ABALTMON_9 = 131215
+ X_NL_ABALTMON_10 = 131216
+ X_NL_ABALTMON_11 = 131217
+ X_NL_ABALTMON_12 = 131218
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WABALTMON_1 = 131219 // Jan
+ X_NL_WABALTMON_2 = 131220
+ X_NL_WABALTMON_3 = 131221
+ X_NL_WABALTMON_4 = 131222
+ X_NL_WABALTMON_5 = 131223
+ X_NL_WABALTMON_6 = 131224
+ X_NL_WABALTMON_7 = 131225
+ X_NL_WABALTMON_8 = 131226
+ X_NL_WABALTMON_9 = 131227
+ X_NL_WABALTMON_10 = 131228
+ X_NL_WABALTMON_11 = 131229
+ X_NL_WABALTMON_12 = 131230
+
+ X_NL_NUM_LC_TIME = 131231 // Number of indices in LC_TIME category.
+
+ // LC_COLLATE category: text sorting.
+ // This information is accessed by the strcoll and strxfrm functions.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_COLLATE_NRULES = 196608
+ X_NL_COLLATE_RULESETS = 196609
+ X_NL_COLLATE_TABLEMB = 196610
+ X_NL_COLLATE_WEIGHTMB = 196611
+ X_NL_COLLATE_EXTRAMB = 196612
+ X_NL_COLLATE_INDIRECTMB = 196613
+ X_NL_COLLATE_GAP1 = 196614
+ X_NL_COLLATE_GAP2 = 196615
+ X_NL_COLLATE_GAP3 = 196616
+ X_NL_COLLATE_TABLEWC = 196617
+ X_NL_COLLATE_WEIGHTWC = 196618
+ X_NL_COLLATE_EXTRAWC = 196619
+ X_NL_COLLATE_INDIRECTWC = 196620
+ X_NL_COLLATE_SYMB_HASH_SIZEMB = 196621
+ X_NL_COLLATE_SYMB_TABLEMB = 196622
+ X_NL_COLLATE_SYMB_EXTRAMB = 196623
+ X_NL_COLLATE_COLLSEQMB = 196624
+ X_NL_COLLATE_COLLSEQWC = 196625
+ X_NL_COLLATE_CODESET = 196626
+ X_NL_NUM_LC_COLLATE = 196627
+
+ // LC_CTYPE category: character classification.
+ // This information is accessed by the functions in <ctype.h>.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_CTYPE_CLASS = 0
+ X_NL_CTYPE_TOUPPER = 1
+ X_NL_CTYPE_GAP1 = 2
+ X_NL_CTYPE_TOLOWER = 3
+ X_NL_CTYPE_GAP2 = 4
+ X_NL_CTYPE_CLASS32 = 5
+ X_NL_CTYPE_GAP3 = 6
+ X_NL_CTYPE_GAP4 = 7
+ X_NL_CTYPE_GAP5 = 8
+ X_NL_CTYPE_GAP6 = 9
+ X_NL_CTYPE_CLASS_NAMES = 10
+ X_NL_CTYPE_MAP_NAMES = 11
+ X_NL_CTYPE_WIDTH = 12
+ X_NL_CTYPE_MB_CUR_MAX = 13
+ X_NL_CTYPE_CODESET_NAME = 14
+ CODESET = 14
+ X_NL_CTYPE_TOUPPER32 = 15
+ X_NL_CTYPE_TOLOWER32 = 16
+ X_NL_CTYPE_CLASS_OFFSET = 17
+ X_NL_CTYPE_MAP_OFFSET = 18
+ X_NL_CTYPE_INDIGITS_MB_LEN = 19
+ X_NL_CTYPE_INDIGITS0_MB = 20
+ X_NL_CTYPE_INDIGITS1_MB = 21
+ X_NL_CTYPE_INDIGITS2_MB = 22
+ X_NL_CTYPE_INDIGITS3_MB = 23
+ X_NL_CTYPE_INDIGITS4_MB = 24
+ X_NL_CTYPE_INDIGITS5_MB = 25
+ X_NL_CTYPE_INDIGITS6_MB = 26
+ X_NL_CTYPE_INDIGITS7_MB = 27
+ X_NL_CTYPE_INDIGITS8_MB = 28
+ X_NL_CTYPE_INDIGITS9_MB = 29
+ X_NL_CTYPE_INDIGITS_WC_LEN = 30
+ X_NL_CTYPE_INDIGITS0_WC = 31
+ X_NL_CTYPE_INDIGITS1_WC = 32
+ X_NL_CTYPE_INDIGITS2_WC = 33
+ X_NL_CTYPE_INDIGITS3_WC = 34
+ X_NL_CTYPE_INDIGITS4_WC = 35
+ X_NL_CTYPE_INDIGITS5_WC = 36
+ X_NL_CTYPE_INDIGITS6_WC = 37
+ X_NL_CTYPE_INDIGITS7_WC = 38
+ X_NL_CTYPE_INDIGITS8_WC = 39
+ X_NL_CTYPE_INDIGITS9_WC = 40
+ X_NL_CTYPE_OUTDIGIT0_MB = 41
+ X_NL_CTYPE_OUTDIGIT1_MB = 42
+ X_NL_CTYPE_OUTDIGIT2_MB = 43
+ X_NL_CTYPE_OUTDIGIT3_MB = 44
+ X_NL_CTYPE_OUTDIGIT4_MB = 45
+ X_NL_CTYPE_OUTDIGIT5_MB = 46
+ X_NL_CTYPE_OUTDIGIT6_MB = 47
+ X_NL_CTYPE_OUTDIGIT7_MB = 48
+ X_NL_CTYPE_OUTDIGIT8_MB = 49
+ X_NL_CTYPE_OUTDIGIT9_MB = 50
+ X_NL_CTYPE_OUTDIGIT0_WC = 51
+ X_NL_CTYPE_OUTDIGIT1_WC = 52
+ X_NL_CTYPE_OUTDIGIT2_WC = 53
+ X_NL_CTYPE_OUTDIGIT3_WC = 54
+ X_NL_CTYPE_OUTDIGIT4_WC = 55
+ X_NL_CTYPE_OUTDIGIT5_WC = 56
+ X_NL_CTYPE_OUTDIGIT6_WC = 57
+ X_NL_CTYPE_OUTDIGIT7_WC = 58
+ X_NL_CTYPE_OUTDIGIT8_WC = 59
+ X_NL_CTYPE_OUTDIGIT9_WC = 60
+ X_NL_CTYPE_TRANSLIT_TAB_SIZE = 61
+ X_NL_CTYPE_TRANSLIT_FROM_IDX = 62
+ X_NL_CTYPE_TRANSLIT_FROM_TBL = 63
+ X_NL_CTYPE_TRANSLIT_TO_IDX = 64
+ X_NL_CTYPE_TRANSLIT_TO_TBL = 65
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN = 66
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING = 67
+ X_NL_CTYPE_TRANSLIT_IGNORE_LEN = 68
+ X_NL_CTYPE_TRANSLIT_IGNORE = 69
+ X_NL_CTYPE_MAP_TO_NONASCII = 70
+ X_NL_CTYPE_NONASCII_CASE = 71
+ X_NL_CTYPE_EXTRA_MAP_1 = 72
+ X_NL_CTYPE_EXTRA_MAP_2 = 73
+ X_NL_CTYPE_EXTRA_MAP_3 = 74
+ X_NL_CTYPE_EXTRA_MAP_4 = 75
+ X_NL_CTYPE_EXTRA_MAP_5 = 76
+ X_NL_CTYPE_EXTRA_MAP_6 = 77
+ X_NL_CTYPE_EXTRA_MAP_7 = 78
+ X_NL_CTYPE_EXTRA_MAP_8 = 79
+ X_NL_CTYPE_EXTRA_MAP_9 = 80
+ X_NL_CTYPE_EXTRA_MAP_10 = 81
+ X_NL_CTYPE_EXTRA_MAP_11 = 82
+ X_NL_CTYPE_EXTRA_MAP_12 = 83
+ X_NL_CTYPE_EXTRA_MAP_13 = 84
+ X_NL_CTYPE_EXTRA_MAP_14 = 85
+ X_NL_NUM_LC_CTYPE = 86
+
+ // LC_MONETARY category: formatting of monetary quantities.
+ // These items each correspond to a member of `struct lconv',
+ // defined in <locale.h>.
+ X__INT_CURR_SYMBOL = 262144
+ X__CURRENCY_SYMBOL = 262145
+ X__MON_DECIMAL_POINT = 262146
+ X__MON_THOUSANDS_SEP = 262147
+ X__MON_GROUPING = 262148
+ X__POSITIVE_SIGN = 262149
+ X__NEGATIVE_SIGN = 262150
+ X__INT_FRAC_DIGITS = 262151
+ X__FRAC_DIGITS = 262152
+ X__P_CS_PRECEDES = 262153
+ X__P_SEP_BY_SPACE = 262154
+ X__N_CS_PRECEDES = 262155
+ X__N_SEP_BY_SPACE = 262156
+ X__P_SIGN_POSN = 262157
+ X__N_SIGN_POSN = 262158
+ X_NL_MONETARY_CRNCYSTR = 262159
+ X__INT_P_CS_PRECEDES = 262160
+ X__INT_P_SEP_BY_SPACE = 262161
+ X__INT_N_CS_PRECEDES = 262162
+ X__INT_N_SEP_BY_SPACE = 262163
+ X__INT_P_SIGN_POSN = 262164
+ X__INT_N_SIGN_POSN = 262165
+ X_NL_MONETARY_DUO_INT_CURR_SYMBOL = 262166
+ X_NL_MONETARY_DUO_CURRENCY_SYMBOL = 262167
+ X_NL_MONETARY_DUO_INT_FRAC_DIGITS = 262168
+ X_NL_MONETARY_DUO_FRAC_DIGITS = 262169
+ X_NL_MONETARY_DUO_P_CS_PRECEDES = 262170
+ X_NL_MONETARY_DUO_P_SEP_BY_SPACE = 262171
+ X_NL_MONETARY_DUO_N_CS_PRECEDES = 262172
+ X_NL_MONETARY_DUO_N_SEP_BY_SPACE = 262173
+ X_NL_MONETARY_DUO_INT_P_CS_PRECEDES = 262174
+ X_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE = 262175
+ X_NL_MONETARY_DUO_INT_N_CS_PRECEDES = 262176
+ X_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE = 262177
+ X_NL_MONETARY_DUO_P_SIGN_POSN = 262178
+ X_NL_MONETARY_DUO_N_SIGN_POSN = 262179
+ X_NL_MONETARY_DUO_INT_P_SIGN_POSN = 262180
+ X_NL_MONETARY_DUO_INT_N_SIGN_POSN = 262181
+ X_NL_MONETARY_UNO_VALID_FROM = 262182
+ X_NL_MONETARY_UNO_VALID_TO = 262183
+ X_NL_MONETARY_DUO_VALID_FROM = 262184
+ X_NL_MONETARY_DUO_VALID_TO = 262185
+ X_NL_MONETARY_CONVERSION_RATE = 262186
+ X_NL_MONETARY_DECIMAL_POINT_WC = 262187
+ X_NL_MONETARY_THOUSANDS_SEP_WC = 262188
+ X_NL_MONETARY_CODESET = 262189
+ X_NL_NUM_LC_MONETARY = 262190
+
+ // LC_NUMERIC category: formatting of numbers.
+ // These also correspond to members of `struct lconv'; see <locale.h>.
+ X__DECIMAL_POINT = 65536
+ RADIXCHAR = 65536
+ X__THOUSANDS_SEP = 65537
+ THOUSEP = 65537
+ X__GROUPING = 65538
+ X_NL_NUMERIC_DECIMAL_POINT_WC = 65539
+ X_NL_NUMERIC_THOUSANDS_SEP_WC = 65540
+ X_NL_NUMERIC_CODESET = 65541
+ X_NL_NUM_LC_NUMERIC = 65542
+
+ X__YESEXPR = 327680 // Regex matching ``yes'' input.
+ X__NOEXPR = 327681 // Regex matching ``no'' input.
+ X__YESSTR = 327682 // Output string for ``yes''.
+ X__NOSTR = 327683 // Output string for ``no''.
+ X_NL_MESSAGES_CODESET = 327684
+ X_NL_NUM_LC_MESSAGES = 327685
+
+ X_NL_PAPER_HEIGHT = 458752
+ X_NL_PAPER_WIDTH = 458753
+ X_NL_PAPER_CODESET = 458754
+ X_NL_NUM_LC_PAPER = 458755
+
+ X_NL_NAME_NAME_FMT = 524288
+ X_NL_NAME_NAME_GEN = 524289
+ X_NL_NAME_NAME_MR = 524290
+ X_NL_NAME_NAME_MRS = 524291
+ X_NL_NAME_NAME_MISS = 524292
+ X_NL_NAME_NAME_MS = 524293
+ X_NL_NAME_CODESET = 524294
+ X_NL_NUM_LC_NAME = 524295
+
+ X_NL_ADDRESS_POSTAL_FMT = 589824
+ X_NL_ADDRESS_COUNTRY_NAME = 589825
+ X_NL_ADDRESS_COUNTRY_POST = 589826
+ X_NL_ADDRESS_COUNTRY_AB2 = 589827
+ X_NL_ADDRESS_COUNTRY_AB3 = 589828
+ X_NL_ADDRESS_COUNTRY_CAR = 589829
+ X_NL_ADDRESS_COUNTRY_NUM = 589830
+ X_NL_ADDRESS_COUNTRY_ISBN = 589831
+ X_NL_ADDRESS_LANG_NAME = 589832
+ X_NL_ADDRESS_LANG_AB = 589833
+ X_NL_ADDRESS_LANG_TERM = 589834
+ X_NL_ADDRESS_LANG_LIB = 589835
+ X_NL_ADDRESS_CODESET = 589836
+ X_NL_NUM_LC_ADDRESS = 589837
+
+ X_NL_TELEPHONE_TEL_INT_FMT = 655360
+ X_NL_TELEPHONE_TEL_DOM_FMT = 655361
+ X_NL_TELEPHONE_INT_SELECT = 655362
+ X_NL_TELEPHONE_INT_PREFIX = 655363
+ X_NL_TELEPHONE_CODESET = 655364
+ X_NL_NUM_LC_TELEPHONE = 655365
+
+ X_NL_MEASUREMENT_MEASUREMENT = 720896
+ X_NL_MEASUREMENT_CODESET = 720897
+ X_NL_NUM_LC_MEASUREMENT = 720898
+
+ X_NL_IDENTIFICATION_TITLE = 786432
+ X_NL_IDENTIFICATION_SOURCE = 786433
+ X_NL_IDENTIFICATION_ADDRESS = 786434
+ X_NL_IDENTIFICATION_CONTACT = 786435
+ X_NL_IDENTIFICATION_EMAIL = 786436
+ X_NL_IDENTIFICATION_TEL = 786437
+ X_NL_IDENTIFICATION_FAX = 786438
+ X_NL_IDENTIFICATION_LANGUAGE = 786439
+ X_NL_IDENTIFICATION_TERRITORY = 786440
+ X_NL_IDENTIFICATION_AUDIENCE = 786441
+ X_NL_IDENTIFICATION_APPLICATION = 786442
+ X_NL_IDENTIFICATION_ABBREVIATION = 786443
+ X_NL_IDENTIFICATION_REVISION = 786444
+ X_NL_IDENTIFICATION_DATE = 786445
+ X_NL_IDENTIFICATION_CATEGORY = 786446
+ X_NL_IDENTIFICATION_CODESET = 786447
+ X_NL_NUM_LC_IDENTIFICATION = 786448
+
+ // This marks the highest value used.
+ X_NL_NUM = 786449
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Access to locale-dependent parameters.
+// 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
+// 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/>.
+
+// Get the type definition.
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// The default message set used by the gencat program.
+
+// Value for FLAG parameter of `catgets' to say we want XPG4 compliance.
+
+// Message catalog descriptor type.
+type Nl_catd = uintptr /* nl_types.h:33:14 */
+
+// Type used by `nl_langinfo'.
+type Nl_item = int32 /* nl_types.h:36:13 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_linux_s390x.go b/vendor/modernc.org/libc/langinfo/langinfo_linux_s390x.go
new file mode 100644
index 00000000..4db92b39
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_linux_s390x.go
@@ -0,0 +1,1056 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_linux_s390x.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_LOCALE_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H = 1
+ X_LP64 = 1
+ X_NL_TYPES_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Definition of locale category symbol values.
+// Copyright (C) 2001-2020 Free Software 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/>.
+
+// Construct an `nl_item' value for `nl_langinfo' from a locale category
+// (LC_*) and an item index within the category. Some code may depend on
+// the item values within a category increasing monotonically with the
+// indices.
+
+// Extract the category and item index from a constructed `nl_item' value.
+
+// Enumeration of locale items that can be queried with `nl_langinfo'.
+const ( /* langinfo.h:41:1: */
+ // LC_TIME category: date and time formatting.
+
+ // Abbreviated days of the week.
+ ABDAY_1 = 131072 // Sun
+ ABDAY_2 = 131073
+ ABDAY_3 = 131074
+ ABDAY_4 = 131075
+ ABDAY_5 = 131076
+ ABDAY_6 = 131077
+ ABDAY_7 = 131078
+
+ // Long-named days of the week.
+ DAY_1 = 131079 // Sunday
+ DAY_2 = 131080 // Monday
+ DAY_3 = 131081 // Tuesday
+ DAY_4 = 131082 // Wednesday
+ DAY_5 = 131083 // Thursday
+ DAY_6 = 131084 // Friday
+ DAY_7 = 131085 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ ABMON_1 = 131086 // Jan
+ ABMON_2 = 131087
+ ABMON_3 = 131088
+ ABMON_4 = 131089
+ ABMON_5 = 131090
+ ABMON_6 = 131091
+ ABMON_7 = 131092
+ ABMON_8 = 131093
+ ABMON_9 = 131094
+ ABMON_10 = 131095
+ ABMON_11 = 131096
+ ABMON_12 = 131097
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ MON_1 = 131098 // January
+ MON_2 = 131099
+ MON_3 = 131100
+ MON_4 = 131101
+ MON_5 = 131102
+ MON_6 = 131103
+ MON_7 = 131104
+ MON_8 = 131105
+ MON_9 = 131106
+ MON_10 = 131107
+ MON_11 = 131108
+ MON_12 = 131109
+
+ AM_STR = 131110 // Ante meridiem string.
+ PM_STR = 131111 // Post meridiem string.
+
+ D_T_FMT = 131112 // Date and time format for strftime.
+ D_FMT = 131113 // Date format for strftime.
+ T_FMT = 131114 // Time format for strftime.
+ T_FMT_AMPM = 131115 // 12-hour time format for strftime.
+
+ ERA = 131116 // Alternate era.
+ X__ERA_YEAR = 131117 // Year in alternate era format.
+ ERA_D_FMT = 131118 // Date in alternate era format.
+ ALT_DIGITS = 131119 // Alternate symbols for digits.
+ ERA_D_T_FMT = 131120 // Date and time in alternate era format.
+ ERA_T_FMT = 131121 // Time in alternate era format.
+
+ X_NL_TIME_ERA_NUM_ENTRIES = 131122 // Number entries in the era arrays.
+ X_NL_TIME_ERA_ENTRIES = 131123 // Structure with era entries in usable form.
+
+ X_NL_WABDAY_1 = 131124 // Sun
+ X_NL_WABDAY_2 = 131125
+ X_NL_WABDAY_3 = 131126
+ X_NL_WABDAY_4 = 131127
+ X_NL_WABDAY_5 = 131128
+ X_NL_WABDAY_6 = 131129
+ X_NL_WABDAY_7 = 131130
+
+ // Long-named days of the week.
+ X_NL_WDAY_1 = 131131 // Sunday
+ X_NL_WDAY_2 = 131132 // Monday
+ X_NL_WDAY_3 = 131133 // Tuesday
+ X_NL_WDAY_4 = 131134 // Wednesday
+ X_NL_WDAY_5 = 131135 // Thursday
+ X_NL_WDAY_6 = 131136 // Friday
+ X_NL_WDAY_7 = 131137 // Saturday
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WABMON_1 = 131138 // Jan
+ X_NL_WABMON_2 = 131139
+ X_NL_WABMON_3 = 131140
+ X_NL_WABMON_4 = 131141
+ X_NL_WABMON_5 = 131142
+ X_NL_WABMON_6 = 131143
+ X_NL_WABMON_7 = 131144
+ X_NL_WABMON_8 = 131145
+ X_NL_WABMON_9 = 131146
+ X_NL_WABMON_10 = 131147
+ X_NL_WABMON_11 = 131148
+ X_NL_WABMON_12 = 131149
+
+ // Long month names, in the grammatical form used when the month
+ // is a part of a complete date.
+ X_NL_WMON_1 = 131150 // January
+ X_NL_WMON_2 = 131151
+ X_NL_WMON_3 = 131152
+ X_NL_WMON_4 = 131153
+ X_NL_WMON_5 = 131154
+ X_NL_WMON_6 = 131155
+ X_NL_WMON_7 = 131156
+ X_NL_WMON_8 = 131157
+ X_NL_WMON_9 = 131158
+ X_NL_WMON_10 = 131159
+ X_NL_WMON_11 = 131160
+ X_NL_WMON_12 = 131161
+
+ X_NL_WAM_STR = 131162 // Ante meridiem string.
+ X_NL_WPM_STR = 131163 // Post meridiem string.
+
+ X_NL_WD_T_FMT = 131164 // Date and time format for strftime.
+ X_NL_WD_FMT = 131165 // Date format for strftime.
+ X_NL_WT_FMT = 131166 // Time format for strftime.
+ X_NL_WT_FMT_AMPM = 131167 // 12-hour time format for strftime.
+
+ X_NL_WERA_YEAR = 131168 // Year in alternate era format.
+ X_NL_WERA_D_FMT = 131169 // Date in alternate era format.
+ X_NL_WALT_DIGITS = 131170 // Alternate symbols for digits.
+ X_NL_WERA_D_T_FMT = 131171 // Date and time in alternate era format.
+ X_NL_WERA_T_FMT = 131172 // Time in alternate era format.
+
+ X_NL_TIME_WEEK_NDAYS = 131173
+ X_NL_TIME_WEEK_1STDAY = 131174
+ X_NL_TIME_WEEK_1STWEEK = 131175
+ X_NL_TIME_FIRST_WEEKDAY = 131176
+ X_NL_TIME_FIRST_WORKDAY = 131177
+ X_NL_TIME_CAL_DIRECTION = 131178
+ X_NL_TIME_TIMEZONE = 131179
+
+ X_DATE_FMT = 131180 // strftime format for date.
+ X_NL_W_DATE_FMT = 131181
+
+ X_NL_TIME_CODESET = 131182
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X__ALTMON_1 = 131183 // January
+ X__ALTMON_2 = 131184
+ X__ALTMON_3 = 131185
+ X__ALTMON_4 = 131186
+ X__ALTMON_5 = 131187
+ X__ALTMON_6 = 131188
+ X__ALTMON_7 = 131189
+ X__ALTMON_8 = 131190
+ X__ALTMON_9 = 131191
+ X__ALTMON_10 = 131192
+ X__ALTMON_11 = 131193
+ X__ALTMON_12 = 131194
+
+ // Long month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WALTMON_1 = 131195 // January
+ X_NL_WALTMON_2 = 131196
+ X_NL_WALTMON_3 = 131197
+ X_NL_WALTMON_4 = 131198
+ X_NL_WALTMON_5 = 131199
+ X_NL_WALTMON_6 = 131200
+ X_NL_WALTMON_7 = 131201
+ X_NL_WALTMON_8 = 131202
+ X_NL_WALTMON_9 = 131203
+ X_NL_WALTMON_10 = 131204
+ X_NL_WALTMON_11 = 131205
+ X_NL_WALTMON_12 = 131206
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_ABALTMON_1 = 131207 // Jan
+ X_NL_ABALTMON_2 = 131208
+ X_NL_ABALTMON_3 = 131209
+ X_NL_ABALTMON_4 = 131210
+ X_NL_ABALTMON_5 = 131211
+ X_NL_ABALTMON_6 = 131212
+ X_NL_ABALTMON_7 = 131213
+ X_NL_ABALTMON_8 = 131214
+ X_NL_ABALTMON_9 = 131215
+ X_NL_ABALTMON_10 = 131216
+ X_NL_ABALTMON_11 = 131217
+ X_NL_ABALTMON_12 = 131218
+
+ // Abbreviated month names, in the grammatical form used when the month
+ // is named by itself.
+ X_NL_WABALTMON_1 = 131219 // Jan
+ X_NL_WABALTMON_2 = 131220
+ X_NL_WABALTMON_3 = 131221
+ X_NL_WABALTMON_4 = 131222
+ X_NL_WABALTMON_5 = 131223
+ X_NL_WABALTMON_6 = 131224
+ X_NL_WABALTMON_7 = 131225
+ X_NL_WABALTMON_8 = 131226
+ X_NL_WABALTMON_9 = 131227
+ X_NL_WABALTMON_10 = 131228
+ X_NL_WABALTMON_11 = 131229
+ X_NL_WABALTMON_12 = 131230
+
+ X_NL_NUM_LC_TIME = 131231 // Number of indices in LC_TIME category.
+
+ // LC_COLLATE category: text sorting.
+ // This information is accessed by the strcoll and strxfrm functions.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_COLLATE_NRULES = 196608
+ X_NL_COLLATE_RULESETS = 196609
+ X_NL_COLLATE_TABLEMB = 196610
+ X_NL_COLLATE_WEIGHTMB = 196611
+ X_NL_COLLATE_EXTRAMB = 196612
+ X_NL_COLLATE_INDIRECTMB = 196613
+ X_NL_COLLATE_GAP1 = 196614
+ X_NL_COLLATE_GAP2 = 196615
+ X_NL_COLLATE_GAP3 = 196616
+ X_NL_COLLATE_TABLEWC = 196617
+ X_NL_COLLATE_WEIGHTWC = 196618
+ X_NL_COLLATE_EXTRAWC = 196619
+ X_NL_COLLATE_INDIRECTWC = 196620
+ X_NL_COLLATE_SYMB_HASH_SIZEMB = 196621
+ X_NL_COLLATE_SYMB_TABLEMB = 196622
+ X_NL_COLLATE_SYMB_EXTRAMB = 196623
+ X_NL_COLLATE_COLLSEQMB = 196624
+ X_NL_COLLATE_COLLSEQWC = 196625
+ X_NL_COLLATE_CODESET = 196626
+ X_NL_NUM_LC_COLLATE = 196627
+
+ // LC_CTYPE category: character classification.
+ // This information is accessed by the functions in <ctype.h>.
+ // These `nl_langinfo' names are used only internally.
+ X_NL_CTYPE_CLASS = 0
+ X_NL_CTYPE_TOUPPER = 1
+ X_NL_CTYPE_GAP1 = 2
+ X_NL_CTYPE_TOLOWER = 3
+ X_NL_CTYPE_GAP2 = 4
+ X_NL_CTYPE_CLASS32 = 5
+ X_NL_CTYPE_GAP3 = 6
+ X_NL_CTYPE_GAP4 = 7
+ X_NL_CTYPE_GAP5 = 8
+ X_NL_CTYPE_GAP6 = 9
+ X_NL_CTYPE_CLASS_NAMES = 10
+ X_NL_CTYPE_MAP_NAMES = 11
+ X_NL_CTYPE_WIDTH = 12
+ X_NL_CTYPE_MB_CUR_MAX = 13
+ X_NL_CTYPE_CODESET_NAME = 14
+ CODESET = 14
+ X_NL_CTYPE_TOUPPER32 = 15
+ X_NL_CTYPE_TOLOWER32 = 16
+ X_NL_CTYPE_CLASS_OFFSET = 17
+ X_NL_CTYPE_MAP_OFFSET = 18
+ X_NL_CTYPE_INDIGITS_MB_LEN = 19
+ X_NL_CTYPE_INDIGITS0_MB = 20
+ X_NL_CTYPE_INDIGITS1_MB = 21
+ X_NL_CTYPE_INDIGITS2_MB = 22
+ X_NL_CTYPE_INDIGITS3_MB = 23
+ X_NL_CTYPE_INDIGITS4_MB = 24
+ X_NL_CTYPE_INDIGITS5_MB = 25
+ X_NL_CTYPE_INDIGITS6_MB = 26
+ X_NL_CTYPE_INDIGITS7_MB = 27
+ X_NL_CTYPE_INDIGITS8_MB = 28
+ X_NL_CTYPE_INDIGITS9_MB = 29
+ X_NL_CTYPE_INDIGITS_WC_LEN = 30
+ X_NL_CTYPE_INDIGITS0_WC = 31
+ X_NL_CTYPE_INDIGITS1_WC = 32
+ X_NL_CTYPE_INDIGITS2_WC = 33
+ X_NL_CTYPE_INDIGITS3_WC = 34
+ X_NL_CTYPE_INDIGITS4_WC = 35
+ X_NL_CTYPE_INDIGITS5_WC = 36
+ X_NL_CTYPE_INDIGITS6_WC = 37
+ X_NL_CTYPE_INDIGITS7_WC = 38
+ X_NL_CTYPE_INDIGITS8_WC = 39
+ X_NL_CTYPE_INDIGITS9_WC = 40
+ X_NL_CTYPE_OUTDIGIT0_MB = 41
+ X_NL_CTYPE_OUTDIGIT1_MB = 42
+ X_NL_CTYPE_OUTDIGIT2_MB = 43
+ X_NL_CTYPE_OUTDIGIT3_MB = 44
+ X_NL_CTYPE_OUTDIGIT4_MB = 45
+ X_NL_CTYPE_OUTDIGIT5_MB = 46
+ X_NL_CTYPE_OUTDIGIT6_MB = 47
+ X_NL_CTYPE_OUTDIGIT7_MB = 48
+ X_NL_CTYPE_OUTDIGIT8_MB = 49
+ X_NL_CTYPE_OUTDIGIT9_MB = 50
+ X_NL_CTYPE_OUTDIGIT0_WC = 51
+ X_NL_CTYPE_OUTDIGIT1_WC = 52
+ X_NL_CTYPE_OUTDIGIT2_WC = 53
+ X_NL_CTYPE_OUTDIGIT3_WC = 54
+ X_NL_CTYPE_OUTDIGIT4_WC = 55
+ X_NL_CTYPE_OUTDIGIT5_WC = 56
+ X_NL_CTYPE_OUTDIGIT6_WC = 57
+ X_NL_CTYPE_OUTDIGIT7_WC = 58
+ X_NL_CTYPE_OUTDIGIT8_WC = 59
+ X_NL_CTYPE_OUTDIGIT9_WC = 60
+ X_NL_CTYPE_TRANSLIT_TAB_SIZE = 61
+ X_NL_CTYPE_TRANSLIT_FROM_IDX = 62
+ X_NL_CTYPE_TRANSLIT_FROM_TBL = 63
+ X_NL_CTYPE_TRANSLIT_TO_IDX = 64
+ X_NL_CTYPE_TRANSLIT_TO_TBL = 65
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN = 66
+ X_NL_CTYPE_TRANSLIT_DEFAULT_MISSING = 67
+ X_NL_CTYPE_TRANSLIT_IGNORE_LEN = 68
+ X_NL_CTYPE_TRANSLIT_IGNORE = 69
+ X_NL_CTYPE_MAP_TO_NONASCII = 70
+ X_NL_CTYPE_NONASCII_CASE = 71
+ X_NL_CTYPE_EXTRA_MAP_1 = 72
+ X_NL_CTYPE_EXTRA_MAP_2 = 73
+ X_NL_CTYPE_EXTRA_MAP_3 = 74
+ X_NL_CTYPE_EXTRA_MAP_4 = 75
+ X_NL_CTYPE_EXTRA_MAP_5 = 76
+ X_NL_CTYPE_EXTRA_MAP_6 = 77
+ X_NL_CTYPE_EXTRA_MAP_7 = 78
+ X_NL_CTYPE_EXTRA_MAP_8 = 79
+ X_NL_CTYPE_EXTRA_MAP_9 = 80
+ X_NL_CTYPE_EXTRA_MAP_10 = 81
+ X_NL_CTYPE_EXTRA_MAP_11 = 82
+ X_NL_CTYPE_EXTRA_MAP_12 = 83
+ X_NL_CTYPE_EXTRA_MAP_13 = 84
+ X_NL_CTYPE_EXTRA_MAP_14 = 85
+ X_NL_NUM_LC_CTYPE = 86
+
+ // LC_MONETARY category: formatting of monetary quantities.
+ // These items each correspond to a member of `struct lconv',
+ // defined in <locale.h>.
+ X__INT_CURR_SYMBOL = 262144
+ X__CURRENCY_SYMBOL = 262145
+ X__MON_DECIMAL_POINT = 262146
+ X__MON_THOUSANDS_SEP = 262147
+ X__MON_GROUPING = 262148
+ X__POSITIVE_SIGN = 262149
+ X__NEGATIVE_SIGN = 262150
+ X__INT_FRAC_DIGITS = 262151
+ X__FRAC_DIGITS = 262152
+ X__P_CS_PRECEDES = 262153
+ X__P_SEP_BY_SPACE = 262154
+ X__N_CS_PRECEDES = 262155
+ X__N_SEP_BY_SPACE = 262156
+ X__P_SIGN_POSN = 262157
+ X__N_SIGN_POSN = 262158
+ X_NL_MONETARY_CRNCYSTR = 262159
+ X__INT_P_CS_PRECEDES = 262160
+ X__INT_P_SEP_BY_SPACE = 262161
+ X__INT_N_CS_PRECEDES = 262162
+ X__INT_N_SEP_BY_SPACE = 262163
+ X__INT_P_SIGN_POSN = 262164
+ X__INT_N_SIGN_POSN = 262165
+ X_NL_MONETARY_DUO_INT_CURR_SYMBOL = 262166
+ X_NL_MONETARY_DUO_CURRENCY_SYMBOL = 262167
+ X_NL_MONETARY_DUO_INT_FRAC_DIGITS = 262168
+ X_NL_MONETARY_DUO_FRAC_DIGITS = 262169
+ X_NL_MONETARY_DUO_P_CS_PRECEDES = 262170
+ X_NL_MONETARY_DUO_P_SEP_BY_SPACE = 262171
+ X_NL_MONETARY_DUO_N_CS_PRECEDES = 262172
+ X_NL_MONETARY_DUO_N_SEP_BY_SPACE = 262173
+ X_NL_MONETARY_DUO_INT_P_CS_PRECEDES = 262174
+ X_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE = 262175
+ X_NL_MONETARY_DUO_INT_N_CS_PRECEDES = 262176
+ X_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE = 262177
+ X_NL_MONETARY_DUO_P_SIGN_POSN = 262178
+ X_NL_MONETARY_DUO_N_SIGN_POSN = 262179
+ X_NL_MONETARY_DUO_INT_P_SIGN_POSN = 262180
+ X_NL_MONETARY_DUO_INT_N_SIGN_POSN = 262181
+ X_NL_MONETARY_UNO_VALID_FROM = 262182
+ X_NL_MONETARY_UNO_VALID_TO = 262183
+ X_NL_MONETARY_DUO_VALID_FROM = 262184
+ X_NL_MONETARY_DUO_VALID_TO = 262185
+ X_NL_MONETARY_CONVERSION_RATE = 262186
+ X_NL_MONETARY_DECIMAL_POINT_WC = 262187
+ X_NL_MONETARY_THOUSANDS_SEP_WC = 262188
+ X_NL_MONETARY_CODESET = 262189
+ X_NL_NUM_LC_MONETARY = 262190
+
+ // LC_NUMERIC category: formatting of numbers.
+ // These also correspond to members of `struct lconv'; see <locale.h>.
+ X__DECIMAL_POINT = 65536
+ RADIXCHAR = 65536
+ X__THOUSANDS_SEP = 65537
+ THOUSEP = 65537
+ X__GROUPING = 65538
+ X_NL_NUMERIC_DECIMAL_POINT_WC = 65539
+ X_NL_NUMERIC_THOUSANDS_SEP_WC = 65540
+ X_NL_NUMERIC_CODESET = 65541
+ X_NL_NUM_LC_NUMERIC = 65542
+
+ X__YESEXPR = 327680 // Regex matching ``yes'' input.
+ X__NOEXPR = 327681 // Regex matching ``no'' input.
+ X__YESSTR = 327682 // Output string for ``yes''.
+ X__NOSTR = 327683 // Output string for ``no''.
+ X_NL_MESSAGES_CODESET = 327684
+ X_NL_NUM_LC_MESSAGES = 327685
+
+ X_NL_PAPER_HEIGHT = 458752
+ X_NL_PAPER_WIDTH = 458753
+ X_NL_PAPER_CODESET = 458754
+ X_NL_NUM_LC_PAPER = 458755
+
+ X_NL_NAME_NAME_FMT = 524288
+ X_NL_NAME_NAME_GEN = 524289
+ X_NL_NAME_NAME_MR = 524290
+ X_NL_NAME_NAME_MRS = 524291
+ X_NL_NAME_NAME_MISS = 524292
+ X_NL_NAME_NAME_MS = 524293
+ X_NL_NAME_CODESET = 524294
+ X_NL_NUM_LC_NAME = 524295
+
+ X_NL_ADDRESS_POSTAL_FMT = 589824
+ X_NL_ADDRESS_COUNTRY_NAME = 589825
+ X_NL_ADDRESS_COUNTRY_POST = 589826
+ X_NL_ADDRESS_COUNTRY_AB2 = 589827
+ X_NL_ADDRESS_COUNTRY_AB3 = 589828
+ X_NL_ADDRESS_COUNTRY_CAR = 589829
+ X_NL_ADDRESS_COUNTRY_NUM = 589830
+ X_NL_ADDRESS_COUNTRY_ISBN = 589831
+ X_NL_ADDRESS_LANG_NAME = 589832
+ X_NL_ADDRESS_LANG_AB = 589833
+ X_NL_ADDRESS_LANG_TERM = 589834
+ X_NL_ADDRESS_LANG_LIB = 589835
+ X_NL_ADDRESS_CODESET = 589836
+ X_NL_NUM_LC_ADDRESS = 589837
+
+ X_NL_TELEPHONE_TEL_INT_FMT = 655360
+ X_NL_TELEPHONE_TEL_DOM_FMT = 655361
+ X_NL_TELEPHONE_INT_SELECT = 655362
+ X_NL_TELEPHONE_INT_PREFIX = 655363
+ X_NL_TELEPHONE_CODESET = 655364
+ X_NL_NUM_LC_TELEPHONE = 655365
+
+ X_NL_MEASUREMENT_MEASUREMENT = 720896
+ X_NL_MEASUREMENT_CODESET = 720897
+ X_NL_NUM_LC_MEASUREMENT = 720898
+
+ X_NL_IDENTIFICATION_TITLE = 786432
+ X_NL_IDENTIFICATION_SOURCE = 786433
+ X_NL_IDENTIFICATION_ADDRESS = 786434
+ X_NL_IDENTIFICATION_CONTACT = 786435
+ X_NL_IDENTIFICATION_EMAIL = 786436
+ X_NL_IDENTIFICATION_TEL = 786437
+ X_NL_IDENTIFICATION_FAX = 786438
+ X_NL_IDENTIFICATION_LANGUAGE = 786439
+ X_NL_IDENTIFICATION_TERRITORY = 786440
+ X_NL_IDENTIFICATION_AUDIENCE = 786441
+ X_NL_IDENTIFICATION_APPLICATION = 786442
+ X_NL_IDENTIFICATION_ABBREVIATION = 786443
+ X_NL_IDENTIFICATION_REVISION = 786444
+ X_NL_IDENTIFICATION_DATE = 786445
+ X_NL_IDENTIFICATION_CATEGORY = 786446
+ X_NL_IDENTIFICATION_CODESET = 786447
+ X_NL_NUM_LC_IDENTIFICATION = 786448
+
+ // This marks the highest value used.
+ X_NL_NUM = 786449
+)
+
+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 */
+
+// Access to locale-dependent parameters.
+// 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
+// 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/>.
+
+// Get the type definition.
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// The default message set used by the gencat program.
+
+// Value for FLAG parameter of `catgets' to say we want XPG4 compliance.
+
+// Message catalog descriptor type.
+type Nl_catd = uintptr /* nl_types.h:33:14 */
+
+// Type used by `nl_langinfo'.
+type Nl_item = int32 /* nl_types.h:36:13 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_netbsd_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_netbsd_amd64.go
new file mode 100644
index 00000000..8fee2037
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_netbsd_amd64.go
@@ -0,0 +1,189 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_netbsd_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H_ = 0
+ X_LP64 = 1
+ X_NL_TYPES_H_ = 0
+ X_SYS_CDEFS_ELF_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_X86_64_CDEFS_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: nl_types.h,v 1.13 2013/08/19 08:03:33 joerg Exp $
+
+// -
+// Copyright (c) 1996 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by J.T. Conklin.
+//
+// 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
+
+type X__nl_cat_d = struct {
+ F__data uintptr
+ F__size int32
+ F__ccgo_pad1 [4]byte
+} /* nl_types.h:77:9 */
+
+// return true if value 'a' fits in type 't'
+
+// $NetBSD: nl_types.h,v 1.13 2013/08/19 08:03:33 joerg Exp $
+
+// -
+// Copyright (c) 1996 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by J.T. Conklin.
+//
+// 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
+
+type Nl_catd = uintptr /* nl_types.h:80:3 */
+
+type Nl_item = int64 /* nl_types.h:82:14 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go
new file mode 100644
index 00000000..30aabb61
--- /dev/null
+++ b/vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go
@@ -0,0 +1,511 @@
+// Code generated by 'ccgo langinfo/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 langinfo/langinfo_openbsd_amd64.go -pkgname langinfo', DO NOT EDIT.
+
+package langinfo
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ABDAY_1 = 13
+ ABDAY_2 = 14
+ ABDAY_3 = 15
+ ABDAY_4 = 16
+ ABDAY_5 = 17
+ ABDAY_6 = 18
+ ABDAY_7 = 19
+ ABMON_1 = 32
+ ABMON_10 = 41
+ ABMON_11 = 42
+ ABMON_12 = 43
+ ABMON_2 = 33
+ ABMON_3 = 34
+ ABMON_4 = 35
+ ABMON_5 = 36
+ ABMON_6 = 37
+ ABMON_7 = 38
+ ABMON_8 = 39
+ ABMON_9 = 40
+ AM_STR = 4
+ CODESET = 51
+ CRNCYSTR = 50
+ DAY_1 = 6
+ DAY_2 = 7
+ DAY_3 = 8
+ DAY_4 = 9
+ DAY_5 = 10
+ DAY_6 = 11
+ DAY_7 = 12
+ D_FMT = 1
+ D_T_FMT = 0
+ MON_1 = 20
+ MON_10 = 29
+ MON_11 = 30
+ MON_12 = 31
+ MON_2 = 21
+ MON_3 = 22
+ MON_4 = 23
+ MON_5 = 24
+ MON_6 = 25
+ MON_7 = 26
+ MON_8 = 27
+ MON_9 = 28
+ NL_CAT_LOCALE = 1
+ NL_SETD = 1
+ NOEXPR = 49
+ NOSTR = 48
+ PM_STR = 5
+ RADIXCHAR = 44
+ THOUSEP = 45
+ T_FMT = 2
+ T_FMT_AMPM = 3
+ YESEXPR = 47
+ YESSTR = 46
+ X_FILE_OFFSET_BITS = 64
+ X_LANGINFO_H_ = 0
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_NL_TYPES_H_ = 0
+ X_RET_PROTECTOR = 1
+ X_SYS_CDEFS_H_ = 0
+ Unix = 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 */
+
+// $OpenBSD: langinfo.h,v 1.8 2017/09/05 03:16:13 schwarze Exp $
+// $NetBSD: langinfo.h,v 1.3 1995/04/28 23:30:54 jtc Exp $
+
+// Written by J.T. Conklin <jtc@netbsd.org>
+// Public domain.
+
+// $OpenBSD: nl_types.h,v 1.8 2008/06/26 05:42:04 ray Exp $
+// $NetBSD: nl_types.h,v 1.6 1996/05/13 23:11:15 jtc Exp $
+
+// -
+// Copyright (c) 1996 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by J.T. Conklin.
+//
+// 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 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.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+type X_nl_catd = struct {
+ F__data uintptr
+ F__size int32
+ F__ccgo_pad1 [4]byte
+} /* nl_types.h:78:9 */
+
+// $OpenBSD: langinfo.h,v 1.8 2017/09/05 03:16:13 schwarze Exp $
+// $NetBSD: langinfo.h,v 1.3 1995/04/28 23:30:54 jtc Exp $
+
+// Written by J.T. Conklin <jtc@netbsd.org>
+// Public domain.
+
+// $OpenBSD: nl_types.h,v 1.8 2008/06/26 05:42:04 ray Exp $
+// $NetBSD: nl_types.h,v 1.6 1996/05/13 23:11:15 jtc Exp $
+
+// -
+// Copyright (c) 1996 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by J.T. Conklin.
+//
+// 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 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.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+type Nl_catd = uintptr /* nl_types.h:81:3 */
+
+type Nl_item = int64 /* nl_types.h:83:14 */
+
+type Locale_t = uintptr /* langinfo.h:76:14 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/libc.go b/vendor/modernc.org/libc/libc.go
new file mode 100644
index 00000000..7831aea1
--- /dev/null
+++ b/vendor/modernc.org/libc/libc.go
@@ -0,0 +1,1413 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go.generate echo package libc > ccgo.go
+//go:generate go run generate.go
+//go:generate go fmt ./...
+
+// Package libc provides run time support for ccgo generated programs and
+// implements selected parts of the C standard library.
+package libc // import "modernc.org/libc"
+
+//TODO use O_RDONLY etc. from fcntl header
+
+//TODO use t.Alloc/Free where appropriate
+
+import (
+ "bufio"
+ crand "crypto/rand"
+ "fmt"
+ "math"
+ mbits "math/bits"
+ "math/rand"
+ "os"
+ "runtime"
+ "runtime/debug"
+ "sort"
+ "strings"
+ "sync"
+ "sync/atomic"
+ gotime "time"
+ "unsafe"
+
+ "github.com/mattn/go-isatty"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+ "modernc.org/mathutil"
+)
+
+type (
+ // RawMem64 represents the biggest uint64 array the runtime can handle.
+ RawMem64 [unsafe.Sizeof(RawMem{}) / unsafe.Sizeof(uint64(0))]uint64
+)
+
+var (
+ allocMu sync.Mutex
+ environInitialized bool
+ isWindows bool
+)
+
+// Keep these outside of the var block otherwise go generate will miss them.
+var Xenviron uintptr
+var Xstdin = newFile(nil, unistd.STDIN_FILENO)
+var Xstdout = newFile(nil, unistd.STDOUT_FILENO)
+var Xstderr = newFile(nil, unistd.STDERR_FILENO)
+
+func setEnviron() {
+ SetEnviron(nil, os.Environ())
+}
+
+func Environ() uintptr {
+ if !environInitialized {
+ SetEnviron(nil, os.Environ())
+ }
+ return Xenviron
+}
+
+func EnvironP() uintptr {
+ if !environInitialized {
+ SetEnviron(nil, os.Environ())
+ }
+ return uintptr(unsafe.Pointer(&Xenviron))
+}
+
+func X___errno_location(t *TLS) uintptr {
+ return X__errno_location(t)
+}
+
+// int * __errno_location(void);
+func X__errno_location(t *TLS) uintptr {
+ return t.errnop
+}
+
+func Start(main func(*TLS, int32, uintptr) int32) {
+ if dmesgs {
+ wd, err := os.Getwd()
+ dmesg("%v: %v, wd %v, %v", origin(1), os.Args, wd, err)
+
+ defer func() {
+ if err := recover(); err != nil {
+ dmesg("%v: CRASH: %v\n%s", origin(1), err, debug.Stack())
+ }
+ }()
+ }
+ runtime.LockOSThread()
+ t := &TLS{errnop: uintptr(unsafe.Pointer(&errno0))}
+ argv := Xcalloc(t, 1, types.Size_t((len(os.Args)+1)*int(uintptrSize)))
+ if argv == 0 {
+ panic("OOM")
+ }
+
+ p := argv
+ for _, v := range os.Args {
+ s := Xcalloc(t, 1, types.Size_t(len(v)+1))
+ if s == 0 {
+ panic("OOM")
+ }
+
+ copy((*RawMem)(unsafe.Pointer(s))[:len(v):len(v)], v)
+ *(*uintptr)(unsafe.Pointer(p)) = s
+ p += uintptrSize
+ }
+ SetEnviron(t, os.Environ())
+ audit := false
+ if memgrind {
+ if s := os.Getenv("LIBC_MEMGRIND_START"); s != "0" {
+ MemAuditStart()
+ audit = true
+ }
+ }
+ t = NewTLS()
+ rc := main(t, int32(len(os.Args)), argv)
+ exit(t, rc, audit)
+}
+
+func Xexit(t *TLS, status int32) { exit(t, status, false) }
+
+func exit(t *TLS, status int32, audit bool) {
+ if len(Covered) != 0 {
+ buf := bufio.NewWriter(os.Stdout)
+ CoverReport(buf)
+ buf.Flush()
+ }
+ if len(CoveredC) != 0 {
+ buf := bufio.NewWriter(os.Stdout)
+ CoverCReport(buf)
+ buf.Flush()
+ }
+ for _, v := range atExit {
+ v()
+ }
+ if audit {
+ t.Close()
+ if tlsBalance != 0 {
+ fmt.Fprintf(os.Stderr, "non zero TLS balance: %d\n", tlsBalance)
+ status = 1
+ }
+ }
+ X_exit(nil, status)
+}
+
+// void _exit(int status);
+func X_exit(_ *TLS, status int32) {
+ if dmesgs {
+ dmesg("%v: EXIT %v", origin(1), status)
+ }
+ os.Exit(int(status))
+}
+
+func SetEnviron(t *TLS, env []string) {
+ environInitialized = true
+ p := Xcalloc(t, 1, types.Size_t((len(env)+1)*(int(uintptrSize))))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ Xenviron = p
+ for _, v := range env {
+ s := Xcalloc(t, 1, types.Size_t(len(v)+1))
+ if s == 0 {
+ panic("OOM")
+ }
+
+ copy((*(*RawMem)(unsafe.Pointer(s)))[:len(v):len(v)], v)
+ *(*uintptr)(unsafe.Pointer(p)) = s
+ p += uintptrSize
+ }
+}
+
+// void setbuf(FILE *stream, char *buf);
+func Xsetbuf(t *TLS, stream, buf uintptr) {
+ //TODO panic(todo(""))
+}
+
+// size_t confstr(int name, char *buf, size_t len);
+func Xconfstr(t *TLS, name int32, buf uintptr, len types.Size_t) types.Size_t {
+ panic(todo(""))
+}
+
+// int puts(const char *s);
+func Xputs(t *TLS, s uintptr) int32 {
+ panic(todo(""))
+}
+
+var (
+ randomMu sync.Mutex
+ randomGen = rand.New(rand.NewSource(42))
+)
+
+// long int random(void);
+func Xrandom(t *TLS) long {
+ randomMu.Lock()
+ r := randomGen.Int63n(math.MaxInt32 + 1)
+ randomMu.Unlock()
+ return long(r)
+}
+
+func write(b []byte) (int, error) {
+ // if dmesgs {
+ // dmesg("%v: %s", origin(1), b)
+ // }
+ if _, err := os.Stdout.Write(b); err != nil {
+ return -1, err
+ }
+
+ return len(b), nil
+}
+
+func X__builtin_bzero(t *TLS, s uintptr, n types.Size_t) { Xbzero(t, s, n) }
+func X__builtin_abort(t *TLS) { Xabort(t) }
+func X__builtin_abs(t *TLS, j int32) int32 { return Xabs(t, j) }
+func X__builtin_clz(t *TLS, n uint32) int32 { return int32(mbits.LeadingZeros32(n)) }
+func X__builtin_clzl(t *TLS, n ulong) int32 { return int32(mbits.LeadingZeros64(uint64(n))) }
+func X__builtin_clzll(t *TLS, n uint64) int32 { return int32(mbits.LeadingZeros64(n)) }
+func X__builtin_constant_p_impl() { panic(todo("internal error: should never be called")) }
+func X__builtin_copysign(t *TLS, x, y float64) float64 { return Xcopysign(t, x, y) }
+func X__builtin_copysignf(t *TLS, x, y float32) float32 { return Xcopysignf(t, x, y) }
+func X__builtin_copysignl(t *TLS, x, y float64) float64 { return Xcopysign(t, x, y) }
+func X__builtin_exit(t *TLS, status int32) { Xexit(t, status) }
+func X__builtin_expect(t *TLS, exp, c long) long { return exp }
+func X__builtin_fabs(t *TLS, x float64) float64 { return Xfabs(t, x) }
+func X__builtin_fabsf(t *TLS, x float32) float32 { return Xfabsf(t, x) }
+func X__builtin_fabsl(t *TLS, x float64) float64 { return Xfabsl(t, x) }
+func X__builtin_free(t *TLS, ptr uintptr) { Xfree(t, ptr) }
+func X__builtin_getentropy(t *TLS, buf uintptr, n types.Size_t) int32 { return Xgetentropy(t, buf, n) }
+func X__builtin_huge_val(t *TLS) float64 { return math.Inf(1) }
+func X__builtin_huge_valf(t *TLS) float32 { return float32(math.Inf(1)) }
+func X__builtin_inf(t *TLS) float64 { return math.Inf(1) }
+func X__builtin_inff(t *TLS) float32 { return float32(math.Inf(1)) }
+func X__builtin_infl(t *TLS) float64 { return math.Inf(1) }
+func X__builtin_malloc(t *TLS, size types.Size_t) uintptr { return Xmalloc(t, size) }
+func X__builtin_memcmp(t *TLS, s1, s2 uintptr, n types.Size_t) int32 { return Xmemcmp(t, s1, s2, n) }
+func X__builtin_nan(t *TLS, s uintptr) float64 { return math.NaN() }
+func X__builtin_nanf(t *TLS, s uintptr) float32 { return float32(math.NaN()) }
+func X__builtin_nanl(t *TLS, s uintptr) float64 { return math.NaN() }
+func X__builtin_prefetch(t *TLS, addr, args uintptr) {}
+func X__builtin_printf(t *TLS, s, args uintptr) int32 { return Xprintf(t, s, args) }
+func X__builtin_strchr(t *TLS, s uintptr, c int32) uintptr { return Xstrchr(t, s, c) }
+func X__builtin_strcmp(t *TLS, s1, s2 uintptr) int32 { return Xstrcmp(t, s1, s2) }
+func X__builtin_strcpy(t *TLS, dest, src uintptr) uintptr { return Xstrcpy(t, dest, src) }
+func X__builtin_strlen(t *TLS, s uintptr) types.Size_t { return Xstrlen(t, s) }
+func X__builtin_trap(t *TLS) { Xabort(t) }
+func X__isnan(t *TLS, arg float64) int32 { return X__builtin_isnan(t, arg) }
+func X__isnanf(t *TLS, arg float32) int32 { return Xisnanf(t, arg) }
+func X__isnanl(t *TLS, arg float64) int32 { return Xisnanl(t, arg) }
+
+func Xvfprintf(t *TLS, stream, format, ap uintptr) int32 { return Xfprintf(t, stream, format, ap) }
+
+// int __builtin_popcount (unsigned int x)
+func X__builtin_popcount(t *TLS, x uint32) int32 {
+ return int32(mbits.OnesCount32(x))
+}
+
+// int __builtin_popcountl (unsigned long x)
+func X__builtin_popcountl(t *TLS, x ulong) int32 {
+ return int32(mbits.OnesCount64(uint64(x)))
+}
+
+// char * __builtin___strcpy_chk (char *dest, const char *src, size_t os);
+func X__builtin___strcpy_chk(t *TLS, dest, src uintptr, os types.Size_t) uintptr {
+ return Xstrcpy(t, dest, src)
+}
+
+func X__builtin_mmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap(t, addr, length, prot, flags, fd, offset)
+}
+
+// uint16_t __builtin_bswap16 (uint32_t x)
+func X__builtin_bswap16(t *TLS, x uint16) uint16 {
+ return x<<8 |
+ x>>8
+}
+
+// uint32_t __builtin_bswap32 (uint32_t x)
+func X__builtin_bswap32(t *TLS, x uint32) uint32 {
+ return x<<24 |
+ x&0xff00<<8 |
+ x&0xff0000>>8 |
+ x>>24
+}
+
+// uint64_t __builtin_bswap64 (uint64_t x)
+func X__builtin_bswap64(t *TLS, x uint64) uint64 {
+ return x<<56 |
+ x&0xff00<<40 |
+ x&0xff0000<<24 |
+ x&0xff000000<<8 |
+ x&0xff00000000>>8 |
+ x&0xff0000000000>>24 |
+ x&0xff000000000000>>40 |
+ x>>56
+}
+
+// bool __builtin_add_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_add_overflowInt64(t *TLS, a, b int64, res uintptr) int32 {
+ r, ovf := mathutil.AddOverflowInt64(a, b)
+ *(*int64)(unsafe.Pointer(res)) = r
+ return Bool32(ovf)
+}
+
+// bool __builtin_add_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_add_overflowUint32(t *TLS, a, b uint32, res uintptr) int32 {
+ r := a + b
+ *(*uint32)(unsafe.Pointer(res)) = r
+ return Bool32(r < a)
+}
+
+// bool __builtin_add_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_add_overflowUint64(t *TLS, a, b uint64, res uintptr) int32 {
+ r := a + b
+ *(*uint64)(unsafe.Pointer(res)) = r
+ return Bool32(r < a)
+}
+
+// bool __builtin_sub_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_sub_overflowInt64(t *TLS, a, b int64, res uintptr) int32 {
+ r, ovf := mathutil.SubOverflowInt64(a, b)
+ *(*int64)(unsafe.Pointer(res)) = r
+ return Bool32(ovf)
+}
+
+// bool __builtin_mul_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_mul_overflowInt64(t *TLS, a, b int64, res uintptr) int32 {
+ r, ovf := mathutil.MulOverflowInt64(a, b)
+ *(*int64)(unsafe.Pointer(res)) = r
+ return Bool32(ovf)
+}
+
+// bool __builtin_mul_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_mul_overflowUint64(t *TLS, a, b uint64, res uintptr) int32 {
+ hi, lo := mbits.Mul64(a, b)
+ *(*uint64)(unsafe.Pointer(res)) = lo
+ return Bool32(hi != 0)
+}
+
+// bool __builtin_mul_overflow (type1 a, type2 b, type3 *res)
+func X__builtin_mul_overflowUint128(t *TLS, a, b Uint128, res uintptr) int32 {
+ r, ovf := a.mulOvf(b)
+ *(*Uint128)(unsafe.Pointer(res)) = r
+ return Bool32(ovf)
+}
+
+func X__builtin_unreachable(t *TLS) {
+ fmt.Fprintf(os.Stderr, "unrechable\n")
+ os.Stderr.Sync()
+ Xexit(t, 1)
+}
+
+func X__builtin_snprintf(t *TLS, str uintptr, size types.Size_t, format, args uintptr) int32 {
+ return Xsnprintf(t, str, size, format, args)
+}
+
+func X__builtin_sprintf(t *TLS, str, format, args uintptr) (r int32) {
+ return Xsprintf(t, str, format, args)
+}
+
+func X__builtin_memcpy(t *TLS, dest, src uintptr, n types.Size_t) (r uintptr) {
+ return Xmemcpy(t, dest, src, n)
+}
+
+// void * __builtin___memcpy_chk (void *dest, const void *src, size_t n, size_t os);
+func X__builtin___memcpy_chk(t *TLS, dest, src uintptr, n, os types.Size_t) (r uintptr) {
+ if os != ^types.Size_t(0) && n < os {
+ Xabort(t)
+ }
+
+ return Xmemcpy(t, dest, src, n)
+}
+
+func X__builtin_memset(t *TLS, s uintptr, c int32, n types.Size_t) uintptr {
+ return Xmemset(t, s, c, n)
+}
+
+// void * __builtin___memset_chk (void *s, int c, size_t n, size_t os);
+func X__builtin___memset_chk(t *TLS, s uintptr, c int32, n, os types.Size_t) uintptr {
+ if os < n {
+ Xabort(t)
+ }
+
+ return Xmemset(t, s, c, n)
+}
+
+// size_t __builtin_object_size (const void * ptr, int type)
+func X__builtin_object_size(t *TLS, p uintptr, typ int32) types.Size_t {
+ return ^types.Size_t(0) //TODO frontend magic
+}
+
+var atomicLoadStore16 sync.Mutex
+
+func AtomicLoadNUint16(ptr uintptr, memorder int16) uint16 {
+ atomicLoadStore16.Lock()
+ r := *(*uint16)(unsafe.Pointer(ptr))
+ atomicLoadStore16.Unlock()
+ return r
+}
+
+func AtomicStoreNUint16(ptr uintptr, val uint16, memorder int32) {
+ atomicLoadStore16.Lock()
+ *(*uint16)(unsafe.Pointer(ptr)) = val
+ atomicLoadStore16.Unlock()
+}
+
+// int sprintf(char *str, const char *format, ...);
+func Xsprintf(t *TLS, str, format, args uintptr) (r int32) {
+ b := printf(format, args)
+ r = int32(len(b))
+ copy((*RawMem)(unsafe.Pointer(str))[:r:r], b)
+ *(*byte)(unsafe.Pointer(str + uintptr(r))) = 0
+ return int32(len(b))
+}
+
+// int __builtin___sprintf_chk (char *s, int flag, size_t os, const char *fmt, ...);
+func X__builtin___sprintf_chk(t *TLS, s uintptr, flag int32, os types.Size_t, format, args uintptr) (r int32) {
+ return Xsprintf(t, s, format, args)
+}
+
+// void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
+func Xqsort(t *TLS, base uintptr, nmemb, size types.Size_t, compar uintptr) {
+ sort.Sort(&sorter{
+ len: int(nmemb),
+ base: base,
+ sz: uintptr(size),
+ f: (*struct {
+ f func(*TLS, uintptr, uintptr) int32
+ })(unsafe.Pointer(&struct{ uintptr }{compar})).f,
+ t: t,
+ })
+}
+
+// void __assert_fail(const char * assertion, const char * file, unsigned int line, const char * function);
+func X__assert_fail(t *TLS, assertion, file uintptr, line uint32, function uintptr) {
+ fmt.Fprintf(os.Stderr, "assertion failure: %s:%d.%s: %s\n", GoString(file), line, GoString(function), GoString(assertion))
+ if memgrind {
+ fmt.Fprintf(os.Stderr, "%s\n", debug.Stack())
+ }
+ os.Stderr.Sync()
+ Xexit(t, 1)
+}
+
+// int vprintf(const char *format, va_list ap);
+func Xvprintf(t *TLS, s, ap uintptr) int32 { return Xprintf(t, s, ap) }
+
+// int vsprintf(char *str, const char *format, va_list ap);
+func Xvsprintf(t *TLS, str, format, va uintptr) int32 {
+ return Xsprintf(t, str, format, va)
+}
+
+// int vsnprintf(char *str, size_t size, const char *format, va_list ap);
+func Xvsnprintf(t *TLS, str uintptr, size types.Size_t, format, va uintptr) int32 {
+ return Xsnprintf(t, str, size, format, va)
+}
+
+// int obstack_vprintf (struct obstack *obstack, const char *template, va_list ap)
+func Xobstack_vprintf(t *TLS, obstack, template, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// extern void _obstack_newchunk(struct obstack *, int);
+func X_obstack_newchunk(t *TLS, obstack uintptr, length int32) int32 {
+ panic(todo(""))
+}
+
+// int _obstack_begin (struct obstack *h, _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment, void *(*chunkfun) (size_t), void (*freefun) (void *))
+func X_obstack_begin(t *TLS, obstack uintptr, size, alignment int32, chunkfun, freefun uintptr) int32 {
+ panic(todo(""))
+}
+
+// void obstack_free (struct obstack *h, void *obj)
+func Xobstack_free(t *TLS, obstack, obj uintptr) {
+ panic(todo(""))
+}
+
+// unsigned int sleep(unsigned int seconds);
+func Xsleep(t *TLS, seconds uint32) uint32 {
+ gotime.Sleep(gotime.Second * gotime.Duration(seconds))
+ return 0
+}
+
+// size_t strcspn(const char *s, const char *reject);
+func Xstrcspn(t *TLS, s, reject uintptr) (r types.Size_t) {
+ bits := newBits(256)
+ for {
+ c := *(*byte)(unsafe.Pointer(reject))
+ if c == 0 {
+ break
+ }
+
+ reject++
+ bits.set(int(c))
+ }
+ for {
+ c := *(*byte)(unsafe.Pointer(s))
+ if c == 0 || bits.has(int(c)) {
+ return r
+ }
+
+ s++
+ r++
+ }
+}
+
+// int printf(const char *format, ...);
+func Xprintf(t *TLS, format, args uintptr) int32 {
+ n, _ := write(printf(format, args))
+ return int32(n)
+}
+
+// int snprintf(char *str, size_t size, const char *format, ...);
+func Xsnprintf(t *TLS, str uintptr, size types.Size_t, format, args uintptr) (r int32) {
+ if format == 0 {
+ return 0
+ }
+
+ b := printf(format, args)
+ r = int32(len(b))
+ if size == 0 {
+ return r
+ }
+
+ if len(b)+1 > int(size) {
+ b = b[:size-1]
+ }
+ n := len(b)
+ copy((*RawMem)(unsafe.Pointer(str))[:n:n], b)
+ *(*byte)(unsafe.Pointer(str + uintptr(n))) = 0
+ return r
+}
+
+// int __builtin___snprintf_chk(char * str, size_t maxlen, int flag, size_t os, const char * format, ...);
+func X__builtin___snprintf_chk(t *TLS, str uintptr, maxlen types.Size_t, flag int32, os types.Size_t, format, args uintptr) (r int32) {
+ if os != ^types.Size_t(0) && maxlen > os {
+ Xabort(t)
+ }
+
+ return Xsnprintf(t, str, maxlen, format, args)
+}
+
+// int __builtin___vsnprintf_chk (char *s, size_t maxlen, int flag, size_t os, const char *fmt, va_list ap);
+func X__builtin___vsnprintf_chk(t *TLS, str uintptr, maxlen types.Size_t, flag int32, os types.Size_t, format, args uintptr) (r int32) {
+ if os != ^types.Size_t(0) && maxlen > os {
+ Xabort(t)
+ }
+
+ return Xsnprintf(t, str, maxlen, format, args)
+}
+
+// int abs(int j);
+func Xabs(t *TLS, j int32) int32 {
+ if j >= 0 {
+ return j
+ }
+
+ return -j
+}
+
+func X__builtin_isnan(t *TLS, x float64) int32 { return Bool32(math.IsNaN(x)) }
+func Xacos(t *TLS, x float64) float64 { return math.Acos(x) }
+func Xacosh(t *TLS, x float64) float64 { return math.Acosh(x) }
+func Xasin(t *TLS, x float64) float64 { return math.Asin(x) }
+func Xasinh(t *TLS, x float64) float64 { return math.Asinh(x) }
+func Xatan(t *TLS, x float64) float64 { return math.Atan(x) }
+func Xatan2(t *TLS, x, y float64) float64 { return math.Atan2(x, y) }
+func Xatanh(t *TLS, x float64) float64 { return math.Atanh(x) }
+func Xceil(t *TLS, x float64) float64 { return math.Ceil(x) }
+func Xceilf(t *TLS, x float32) float32 { return float32(math.Ceil(float64(x))) }
+func Xcopysign(t *TLS, x, y float64) float64 { return math.Copysign(x, y) }
+func Xcopysignf(t *TLS, x, y float32) float32 { return float32(math.Copysign(float64(x), float64(y))) }
+func Xcos(t *TLS, x float64) float64 { return math.Cos(x) }
+func Xcosf(t *TLS, x float32) float32 { return float32(math.Cos(float64(x))) }
+func Xcosh(t *TLS, x float64) float64 { return math.Cosh(x) }
+func Xexp(t *TLS, x float64) float64 { return math.Exp(x) }
+func Xfabs(t *TLS, x float64) float64 { return math.Abs(x) }
+func Xfabsf(t *TLS, x float32) float32 { return float32(math.Abs(float64(x))) }
+func Xfloor(t *TLS, x float64) float64 { return math.Floor(x) }
+func Xfmod(t *TLS, x, y float64) float64 { return math.Mod(x, y) }
+func Xhypot(t *TLS, x, y float64) float64 { return math.Hypot(x, y) }
+func Xisnan(t *TLS, x float64) int32 { return X__builtin_isnan(t, x) }
+func Xisnanf(t *TLS, x float32) int32 { return Bool32(math.IsNaN(float64(x))) }
+func Xisnanl(t *TLS, x float64) int32 { return Bool32(math.IsNaN(x)) } // ccgo has to handle long double as double as Go does not support long double.
+func Xldexp(t *TLS, x float64, exp int32) float64 { return math.Ldexp(x, int(exp)) }
+func Xlog(t *TLS, x float64) float64 { return math.Log(x) }
+func Xlog10(t *TLS, x float64) float64 { return math.Log10(x) }
+func Xround(t *TLS, x float64) float64 { return math.Round(x) }
+func Xsin(t *TLS, x float64) float64 { return math.Sin(x) }
+func Xsinf(t *TLS, x float32) float32 { return float32(math.Sin(float64(x))) }
+func Xsinh(t *TLS, x float64) float64 { return math.Sinh(x) }
+func Xsqrt(t *TLS, x float64) float64 { return math.Sqrt(x) }
+func Xtan(t *TLS, x float64) float64 { return math.Tan(x) }
+func Xtanh(t *TLS, x float64) float64 { return math.Tanh(x) }
+func Xtrunc(t *TLS, x float64) float64 { return math.Trunc(x) }
+
+var nextRand = uint64(1)
+
+// int rand(void);
+func Xrand(t *TLS) int32 {
+ nextRand = nextRand*1103515245 + 12345
+ return int32(uint32(nextRand / (math.MaxUint32 + 1) % math.MaxInt32))
+}
+
+func Xpow(t *TLS, x, y float64) float64 {
+ r := math.Pow(x, y)
+ if x > 0 && r == 1 && y >= -1.0000000000000000715e-18 && y < -1e-30 {
+ r = 0.9999999999999999
+ }
+ return r
+}
+
+func Xfrexp(t *TLS, x float64, exp uintptr) float64 {
+ f, e := math.Frexp(x)
+ *(*int32)(unsafe.Pointer(exp)) = int32(e)
+ return f
+}
+
+func Xmodf(t *TLS, x float64, iptr uintptr) float64 {
+ i, f := math.Modf(x)
+ *(*float64)(unsafe.Pointer(iptr)) = i
+ return f
+}
+
+// char *strncpy(char *dest, const char *src, size_t n)
+func Xstrncpy(t *TLS, dest, src uintptr, n types.Size_t) (r uintptr) {
+ r = dest
+ for c := *(*int8)(unsafe.Pointer(src)); c != 0 && n > 0; n-- {
+ *(*int8)(unsafe.Pointer(dest)) = c
+ dest++
+ src++
+ c = *(*int8)(unsafe.Pointer(src))
+ }
+ for ; uintptr(n) > 0; n-- {
+ *(*int8)(unsafe.Pointer(dest)) = 0
+ dest++
+ }
+ return r
+}
+
+// char * __builtin___strncpy_chk (char *dest, const char *src, size_t n, size_t os);
+func X__builtin___strncpy_chk(t *TLS, dest, src uintptr, n, os types.Size_t) (r uintptr) {
+ if n != ^types.Size_t(0) && os < n {
+ Xabort(t)
+ }
+
+ return Xstrncpy(t, dest, src, n)
+}
+
+// int strcmp(const char *s1, const char *s2)
+func Xstrcmp(t *TLS, s1, s2 uintptr) int32 {
+ for {
+ ch1 := *(*byte)(unsafe.Pointer(s1))
+ s1++
+ ch2 := *(*byte)(unsafe.Pointer(s2))
+ s2++
+ if ch1 != ch2 || ch1 == 0 || ch2 == 0 {
+ return int32(ch1) - int32(ch2)
+ }
+ }
+}
+
+// size_t strlen(const char *s)
+func Xstrlen(t *TLS, s uintptr) (r types.Size_t) {
+ if s == 0 {
+ return 0
+ }
+
+ for ; *(*int8)(unsafe.Pointer(s)) != 0; s++ {
+ r++
+ }
+ return r
+}
+
+// char *strcat(char *dest, const char *src)
+func Xstrcat(t *TLS, dest, src uintptr) (r uintptr) {
+ r = dest
+ for *(*int8)(unsafe.Pointer(dest)) != 0 {
+ dest++
+ }
+ for {
+ c := *(*int8)(unsafe.Pointer(src))
+ src++
+ *(*int8)(unsafe.Pointer(dest)) = c
+ dest++
+ if c == 0 {
+ return r
+ }
+ }
+}
+
+// char * __builtin___strcat_chk (char *dest, const char *src, size_t os);
+func X__builtin___strcat_chk(t *TLS, dest, src uintptr, os types.Size_t) (r uintptr) {
+ return Xstrcat(t, dest, src)
+}
+
+// int strncmp(const char *s1, const char *s2, size_t n)
+func Xstrncmp(t *TLS, s1, s2 uintptr, n types.Size_t) int32 {
+ var ch1, ch2 byte
+ for ; n != 0; n-- {
+ ch1 = *(*byte)(unsafe.Pointer(s1))
+ s1++
+ ch2 = *(*byte)(unsafe.Pointer(s2))
+ s2++
+ if ch1 != ch2 {
+ return int32(ch1) - int32(ch2)
+ }
+
+ if ch1 == 0 {
+ return 0
+ }
+ }
+ return 0
+}
+
+// char *strcpy(char *dest, const char *src)
+func Xstrcpy(t *TLS, dest, src uintptr) (r uintptr) {
+ r = dest
+ // src0 := src
+ for ; ; dest++ {
+ c := *(*int8)(unsafe.Pointer(src))
+ src++
+ *(*int8)(unsafe.Pointer(dest)) = c
+ if c == 0 {
+ return r
+ }
+ }
+}
+
+// char *strchr(const char *s, int c)
+func Xstrchr(t *TLS, s uintptr, c int32) uintptr {
+ for {
+ ch2 := *(*byte)(unsafe.Pointer(s))
+ if ch2 == byte(c) {
+ return s
+ }
+
+ if ch2 == 0 {
+ return 0
+ }
+
+ s++
+ }
+}
+
+// char *strrchr(const char *s, int c)
+func Xstrrchr(t *TLS, s uintptr, c int32) (r uintptr) {
+ for {
+ ch2 := *(*byte)(unsafe.Pointer(s))
+ if ch2 == 0 {
+ return r
+ }
+
+ if ch2 == byte(c) {
+ r = s
+ }
+ s++
+ }
+}
+
+// void *memset(void *s, int c, size_t n)
+func Xmemset(t *TLS, s uintptr, c int32, n types.Size_t) uintptr {
+ if n != 0 {
+ c := byte(c & 0xff)
+
+ // This will make sure that on platforms where they are not equally aligned we
+ // clear out the first few bytes until allignment
+ bytesBeforeAllignment := s % unsafe.Alignof(uint64(0))
+ if bytesBeforeAllignment > uintptr(n) {
+ bytesBeforeAllignment = uintptr(n)
+ }
+ b := (*RawMem)(unsafe.Pointer(s))[:bytesBeforeAllignment:bytesBeforeAllignment]
+ n -= types.Size_t(bytesBeforeAllignment)
+ for i := range b {
+ b[i] = c
+ }
+ if n >= 8 {
+ i64 := uint64(c) + uint64(c)<<8 + uint64(c)<<16 + uint64(c)<<24 + uint64(c)<<32 + uint64(c)<<40 + uint64(c)<<48 + uint64(c)<<56
+ b8 := (*RawMem64)(unsafe.Pointer(s + bytesBeforeAllignment))[: n/8 : n/8]
+ for i := range b8 {
+ b8[i] = i64
+ }
+ }
+ if n%8 != 0 {
+ b = (*RawMem)(unsafe.Pointer(s + bytesBeforeAllignment + uintptr(n-n%8)))[: n%8 : n%8]
+ for i := range b {
+ b[i] = c
+ }
+ }
+ }
+ return s
+}
+
+// void *memcpy(void *dest, const void *src, size_t n);
+func Xmemcpy(t *TLS, dest, src uintptr, n types.Size_t) (r uintptr) {
+ if n != 0 {
+ copy((*RawMem)(unsafe.Pointer(dest))[:n:n], (*RawMem)(unsafe.Pointer(src))[:n:n])
+ }
+ return dest
+}
+
+// int memcmp(const void *s1, const void *s2, size_t n);
+func Xmemcmp(t *TLS, s1, s2 uintptr, n types.Size_t) int32 {
+ for ; n != 0; n-- {
+ c1 := *(*byte)(unsafe.Pointer(s1))
+ s1++
+ c2 := *(*byte)(unsafe.Pointer(s2))
+ s2++
+ if c1 < c2 {
+ return -1
+ }
+
+ if c1 > c2 {
+ return 1
+ }
+ }
+ return 0
+}
+
+// void *memchr(const void *s, int c, size_t n);
+func Xmemchr(t *TLS, s uintptr, c int32, n types.Size_t) uintptr {
+ for ; n != 0; n-- {
+ if *(*byte)(unsafe.Pointer(s)) == byte(c) {
+ return s
+ }
+
+ s++
+ }
+ return 0
+}
+
+// void *memmove(void *dest, const void *src, size_t n);
+func Xmemmove(t *TLS, dest, src uintptr, n types.Size_t) uintptr {
+ if n == 0 {
+ return dest
+ }
+
+ copy((*RawMem)(unsafe.Pointer(uintptr(dest)))[:n:n], (*RawMem)(unsafe.Pointer(uintptr(src)))[:n:n])
+ return dest
+}
+
+// void * __builtin___memmove_chk (void *dest, const void *src, size_t n, size_t os);
+func X__builtin___memmove_chk(t *TLS, dest, src uintptr, n, os types.Size_t) uintptr {
+ if os != ^types.Size_t(0) && os < n {
+ Xabort(t)
+ }
+
+ return Xmemmove(t, dest, src, n)
+}
+
+// char *getenv(const char *name);
+func Xgetenv(t *TLS, name uintptr) uintptr {
+ return getenv(Environ(), GoString(name))
+}
+
+func getenv(p uintptr, nm string) uintptr {
+ for ; ; p += uintptrSize {
+ q := *(*uintptr)(unsafe.Pointer(p))
+ if q == 0 {
+ return 0
+ }
+
+ s := GoString(q)
+ a := strings.SplitN(s, "=", 2)
+ if len(a) != 2 {
+ panic(todo("%q %q %q", nm, s, a))
+ }
+
+ if a[0] == nm {
+ return q + uintptr(len(nm)) + 1
+ }
+ }
+}
+
+// char *strstr(const char *haystack, const char *needle);
+func Xstrstr(t *TLS, haystack, needle uintptr) uintptr {
+ hs := GoString(haystack)
+ nd := GoString(needle)
+ if i := strings.Index(hs, nd); i >= 0 {
+ r := haystack + uintptr(i)
+ return r
+ }
+
+ return 0
+}
+
+// int putc(int c, FILE *stream);
+func Xputc(t *TLS, c int32, fp uintptr) int32 {
+ return Xfputc(t, c, fp)
+}
+
+// int atoi(const char *nptr);
+func Xatoi(t *TLS, nptr uintptr) int32 {
+ _, neg, _, n, _ := strToUint64(t, nptr, 10)
+ switch {
+ case neg:
+ return int32(-n)
+ default:
+ return int32(n)
+ }
+}
+
+// double atof(const char *nptr);
+func Xatof(t *TLS, nptr uintptr) float64 {
+ n, _ := strToFloatt64(t, nptr, 64)
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(nptr), n)
+ // }
+ return n
+}
+
+// int tolower(int c);
+func Xtolower(t *TLS, c int32) int32 {
+ if c >= 'A' && c <= 'Z' {
+ return c + ('a' - 'A')
+ }
+
+ return c
+}
+
+// int toupper(int c);
+func Xtoupper(t *TLS, c int32) int32 {
+ if c >= 'a' && c <= 'z' {
+ return c - ('a' - 'A')
+ }
+
+ return c
+}
+
+// int isatty(int fd);
+func Xisatty(t *TLS, fd int32) int32 {
+ return Bool32(isatty.IsTerminal(uintptr(fd)))
+}
+
+// long atol(const char *nptr);
+func Xatol(t *TLS, nptr uintptr) long {
+ _, neg, _, n, _ := strToUint64(t, nptr, 10)
+ switch {
+ case neg:
+ return long(-n)
+ default:
+ return long(n)
+ }
+}
+
+// time_t mktime(struct tm *tm);
+func Xmktime(t *TLS, ptm uintptr) time.Time_t {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, off)
+ }
+ tt := gotime.Date(
+ int((*time.Tm)(unsafe.Pointer(ptm)).Ftm_year+1900),
+ gotime.Month((*time.Tm)(unsafe.Pointer(ptm)).Ftm_mon+1),
+ int((*time.Tm)(unsafe.Pointer(ptm)).Ftm_mday),
+ int((*time.Tm)(unsafe.Pointer(ptm)).Ftm_hour),
+ int((*time.Tm)(unsafe.Pointer(ptm)).Ftm_min),
+ int((*time.Tm)(unsafe.Pointer(ptm)).Ftm_sec),
+ 0,
+ loc,
+ )
+ (*time.Tm)(unsafe.Pointer(ptm)).Ftm_wday = int32(tt.Weekday())
+ (*time.Tm)(unsafe.Pointer(ptm)).Ftm_yday = int32(tt.YearDay() - 1)
+ return time.Time_t(tt.Unix())
+}
+
+// char *strpbrk(const char *s, const char *accept);
+func Xstrpbrk(t *TLS, s, accept uintptr) uintptr {
+ bits := newBits(256)
+ for {
+ b := *(*byte)(unsafe.Pointer(accept))
+ if b == 0 {
+ break
+ }
+
+ bits.set(int(b))
+ accept++
+ }
+ for {
+ b := *(*byte)(unsafe.Pointer(s))
+ if b == 0 {
+ return 0
+ }
+
+ if bits.has(int(b)) {
+ return s
+ }
+
+ s++
+ }
+}
+
+// int strcasecmp(const char *s1, const char *s2);
+func Xstrcasecmp(t *TLS, s1, s2 uintptr) int32 {
+ for {
+ ch1 := *(*byte)(unsafe.Pointer(s1))
+ if ch1 >= 'a' && ch1 <= 'z' {
+ ch1 = ch1 - ('a' - 'A')
+ }
+ s1++
+ ch2 := *(*byte)(unsafe.Pointer(s2))
+ if ch2 >= 'a' && ch2 <= 'z' {
+ ch2 = ch2 - ('a' - 'A')
+ }
+ s2++
+ if ch1 != ch2 || ch1 == 0 || ch2 == 0 {
+ r := int32(ch1) - int32(ch2)
+ return r
+ }
+ }
+}
+
+func Xntohs(t *TLS, netshort uint16) uint16 {
+ return uint16((*[2]byte)(unsafe.Pointer(&netshort))[0])<<8 | uint16((*[2]byte)(unsafe.Pointer(&netshort))[1])
+}
+
+// uint16_t htons(uint16_t hostshort);
+func Xhtons(t *TLS, hostshort uint16) uint16 {
+ var a [2]byte
+ a[0] = byte(hostshort >> 8)
+ a[1] = byte(hostshort)
+ return *(*uint16)(unsafe.Pointer(&a))
+}
+
+// uint32_t htonl(uint32_t hostlong);
+func Xhtonl(t *TLS, hostlong uint32) uint32 {
+ var a [4]byte
+ a[0] = byte(hostlong >> 24)
+ a[1] = byte(hostlong >> 16)
+ a[2] = byte(hostlong >> 8)
+ a[3] = byte(hostlong)
+ return *(*uint32)(unsafe.Pointer(&a))
+}
+
+// FILE *fopen(const char *pathname, const char *mode);
+func Xfopen(t *TLS, pathname, mode uintptr) uintptr {
+ return Xfopen64(t, pathname, mode) //TODO 32 bit
+}
+
+func Dmesg(s string, args ...interface{}) {
+ if dmesgs {
+ dmesg(s, args...)
+ }
+}
+
+// void sqlite3_log(int iErrCode, const char *zFormat, ...);
+func X__ccgo_sqlite3_log(t *TLS, iErrCode int32, zFormat uintptr, args uintptr) {
+ // if dmesgs {
+ // dmesg("%v: iErrCode: %v, msg: %s\n%s", origin(1), iErrCode, printf(zFormat, args), debug.Stack())
+ // }
+}
+
+// int _IO_putc(int __c, _IO_FILE *__fp);
+func X_IO_putc(t *TLS, c int32, fp uintptr) int32 {
+ return Xputc(t, c, fp)
+}
+
+// int atexit(void (*function)(void));
+func Xatexit(t *TLS, function uintptr) int32 {
+ AtExit(func() {
+ (*struct{ f func(*TLS) })(unsafe.Pointer(&struct{ uintptr }{function})).f(t)
+ })
+ return 0
+}
+
+// int vasprintf(char **strp, const char *fmt, va_list ap);
+func Xvasprintf(t *TLS, strp, fmt, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+func AtomicLoadInt32(addr *int32) (val int32) { return atomic.LoadInt32(addr) }
+func AtomicLoadInt64(addr *int64) (val int64) { return atomic.LoadInt64(addr) }
+func AtomicLoadUint32(addr *uint32) (val uint32) { return atomic.LoadUint32(addr) }
+func AtomicLoadUint64(addr *uint64) (val uint64) { return atomic.LoadUint64(addr) }
+func AtomicLoadUintptr(addr *uintptr) (val uintptr) { return atomic.LoadUintptr(addr) }
+
+func AtomicLoadFloat32(addr *float32) (val float32) {
+ return math.Float32frombits(atomic.LoadUint32((*uint32)(unsafe.Pointer(addr))))
+}
+
+func AtomicLoadFloat64(addr *float64) (val float64) {
+ return math.Float64frombits(atomic.LoadUint64((*uint64)(unsafe.Pointer(addr))))
+}
+
+func AtomicLoadPInt32(addr uintptr) (val int32) {
+ return atomic.LoadInt32((*int32)(unsafe.Pointer(addr)))
+}
+
+func AtomicLoadPInt64(addr uintptr) (val int64) {
+ return atomic.LoadInt64((*int64)(unsafe.Pointer(addr)))
+}
+
+func AtomicLoadPUint32(addr uintptr) (val uint32) {
+ return atomic.LoadUint32((*uint32)(unsafe.Pointer(addr)))
+}
+
+func AtomicLoadPUint64(addr uintptr) (val uint64) {
+ return atomic.LoadUint64((*uint64)(unsafe.Pointer(addr)))
+}
+
+func AtomicLoadPUintptr(addr uintptr) (val uintptr) {
+ return atomic.LoadUintptr((*uintptr)(unsafe.Pointer(addr)))
+}
+
+func AtomicLoadPFloat32(addr uintptr) (val float32) {
+ return math.Float32frombits(atomic.LoadUint32((*uint32)(unsafe.Pointer(addr))))
+}
+
+func AtomicLoadPFloat64(addr uintptr) (val float64) {
+ return math.Float64frombits(atomic.LoadUint64((*uint64)(unsafe.Pointer(addr))))
+}
+
+func AtomicStoreInt32(addr *int32, val int32) { atomic.StoreInt32(addr, val) }
+func AtomicStoreInt64(addr *int64, val int64) { atomic.StoreInt64(addr, val) }
+func AtomicStoreUint32(addr *uint32, val uint32) { atomic.StoreUint32(addr, val) }
+func AtomicStoreUint64(addr *uint64, val uint64) { atomic.StoreUint64(addr, val) }
+func AtomicStoreUintptr(addr *uintptr, val uintptr) { atomic.StoreUintptr(addr, val) }
+
+func AtomicStoreFloat32(addr *float32, val float32) {
+ atomic.StoreUint32((*uint32)(unsafe.Pointer(addr)), math.Float32bits(val))
+}
+
+func AtomicStoreFloat64(addr *float64, val float64) {
+ atomic.StoreUint64((*uint64)(unsafe.Pointer(addr)), math.Float64bits(val))
+}
+
+func AtomicStorePInt32(addr uintptr, val int32) {
+ atomic.StoreInt32((*int32)(unsafe.Pointer(addr)), val)
+}
+
+func AtomicStorePInt64(addr uintptr, val int64) {
+ atomic.StoreInt64((*int64)(unsafe.Pointer(addr)), val)
+}
+
+func AtomicStorePUint32(addr uintptr, val uint32) {
+ atomic.StoreUint32((*uint32)(unsafe.Pointer(addr)), val)
+}
+
+func AtomicStorePUint64(addr uintptr, val uint64) {
+ atomic.StoreUint64((*uint64)(unsafe.Pointer(addr)), val)
+}
+
+func AtomicStorePUintptr(addr uintptr, val uintptr) {
+ atomic.StoreUintptr((*uintptr)(unsafe.Pointer(addr)), val)
+}
+
+func AtomicStorePFloat32(addr uintptr, val float32) {
+ atomic.StoreUint32((*uint32)(unsafe.Pointer(addr)), math.Float32bits(val))
+}
+
+func AtomicStorePFloat64(addr uintptr, val float64) {
+ atomic.StoreUint64((*uint64)(unsafe.Pointer(addr)), math.Float64bits(val))
+}
+
+func AtomicAddInt32(addr *int32, delta int32) (new int32) { return atomic.AddInt32(addr, delta) }
+func AtomicAddInt64(addr *int64, delta int64) (new int64) { return atomic.AddInt64(addr, delta) }
+func AtomicAddUint32(addr *uint32, delta uint32) (new uint32) { return atomic.AddUint32(addr, delta) }
+func AtomicAddUint64(addr *uint64, delta uint64) (new uint64) { return atomic.AddUint64(addr, delta) }
+
+func AtomicAddUintptr(addr *uintptr, delta uintptr) (new uintptr) {
+ return atomic.AddUintptr(addr, delta)
+
+}
+
+func AtomicAddFloat32(addr *float32, delta float32) (new float32) {
+ v := AtomicLoadFloat32(addr) + delta
+ AtomicStoreFloat32(addr, v)
+ return v
+}
+
+func AtomicAddFloat64(addr *float64, delta float64) (new float64) {
+ v := AtomicLoadFloat64(addr) + delta
+ AtomicStoreFloat64(addr, v)
+ return v
+}
+
+// size_t mbstowcs(wchar_t *dest, const char *src, size_t n);
+func Xmbstowcs(t *TLS, dest, src uintptr, n types.Size_t) types.Size_t {
+ panic(todo(""))
+}
+
+// int mbtowc(wchar_t *pwc, const char *s, size_t n);
+func Xmbtowc(t *TLS, pwc, s uintptr, n types.Size_t) int32 {
+ panic(todo(""))
+}
+
+// size_t __ctype_get_mb_cur_max(void);
+func X__ctype_get_mb_cur_max(t *TLS) types.Size_t {
+ panic(todo(""))
+}
+
+// int wctomb(char *s, wchar_t wc);
+func Xwctomb(t *TLS, s uintptr, wc wchar_t) int32 {
+ panic(todo(""))
+}
+
+// int mblen(const char *s, size_t n);
+func Xmblen(t *TLS, s uintptr, n types.Size_t) int32 {
+ panic(todo(""))
+}
+
+// ssize_t readv(int fd, const struct iovec *iov, int iovcnt);
+func Xreadv(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t {
+ panic(todo(""))
+}
+
+// int openpty(int *amaster, int *aslave, char *name,
+// const struct termios *termp,
+// const struct winsize *winp);
+func Xopenpty(t *TLS, amaster, aslave, name, termp, winp uintptr) int32 {
+ panic(todo(""))
+}
+
+// pid_t setsid(void);
+func Xsetsid(t *TLS) types.Pid_t {
+ panic(todo(""))
+}
+
+// int pselect(int nfds, fd_set *readfds, fd_set *writefds,
+// fd_set *exceptfds, const struct timespec *timeout,
+// const sigset_t *sigmask);
+func Xpselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout, sigmask uintptr) int32 {
+ panic(todo(""))
+}
+
+// int kill(pid_t pid, int sig);
+func Xkill(t *TLS, pid types.Pid_t, sig int32) int32 {
+ panic(todo(""))
+}
+
+// int tcsendbreak(int fd, int duration);
+func Xtcsendbreak(t *TLS, fd, duration int32) int32 {
+ panic(todo(""))
+}
+
+// int wcwidth(wchar_t c);
+func Xwcwidth(t *TLS, c wchar_t) int32 {
+ panic(todo(""))
+}
+
+// int clock_gettime(clockid_t clk_id, struct timespec *tp);
+func Xclock_gettime(t *TLS, clk_id int32, tp uintptr) int32 {
+ panic(todo(""))
+}
+
+// AtExit will attempt to run f at process exit. The execution cannot be
+// guaranteed, neither its ordering with respect to any other handlers
+// registered by AtExit.
+func AtExit(f func()) {
+ atExitMu.Lock()
+ atExit = append(atExit, f)
+ atExitMu.Unlock()
+}
+
+func X__ccgo_dmesg(t *TLS, fmt uintptr, va uintptr) {
+ if dmesgs {
+ dmesg("%s", printf(fmt, va))
+ }
+}
+
+// int getentropy(void *buffer, size_t length);
+//
+// The getentropy() function writes length bytes of high-quality random data
+// to the buffer starting at the location pointed to by buffer. The maximum
+// permitted value for the length argument is 256.
+func Xgetentropy(t *TLS, buffer uintptr, length size_t) int32 {
+ const max = 256
+ switch {
+ case length == 0:
+ return 0
+ case buffer == 0:
+ t.setErrno(errno.EFAULT)
+ return -1
+ case length > max:
+ t.setErrno(errno.EIO)
+ return -1
+ }
+
+ if _, err := crand.Read((*RawMem)(unsafe.Pointer(buffer))[:length]); err != nil {
+ t.setErrno(errno.EIO)
+ return -1
+ }
+
+ return 0
+}
+
+// void * reallocarray(void *ptr, size_t nmemb, size_t size);
+func Xreallocarray(t *TLS, ptr uintptr, nmemb, size size_t) uintptr {
+ hi, lo := mathutil.MulUint128_64(uint64(nmemb), uint64(size))
+ if hi != 0 || lo > uint64(unsafe.Sizeof(RawMem{})) {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ return Xrealloc(t, ptr, size_t(lo))
+}
+
+// int setjmp(jmp_buf env);
+func Xsetjmp(t *TLS, env uintptr) int32 {
+ return 0 //TODO
+}
+
+// void longjmp(jmp_buf env, int val);
+func Xlongjmp(t *TLS, env uintptr, val int32) {
+ panic(todo(""))
+}
+
+// https://linux.die.net/man/3/_setjmp
+//
+// The _longjmp() and _setjmp() functions shall be equivalent to longjmp() and
+// setjmp(), respectively, with the additional restriction that _longjmp() and
+// _setjmp() shall not manipulate the signal mask.
+
+// int _setjmp(jmp_buf env);
+func X_setjmp(t *TLS, env uintptr) int32 {
+ return 0 //TODO
+}
+
+// void _longjmp(jmp_buf env, int val);
+func X_longjmp(t *TLS, env uintptr, val int32) {
+ panic(todo(""))
+}
+
+// unsigned __sync_add_and_fetch_uint32(*unsigned, unsigned)
+func X__sync_add_and_fetch_uint32(t *TLS, p uintptr, v uint32) uint32 {
+ return atomic.AddUint32((*uint32)(unsafe.Pointer(p)), v)
+}
+
+// unsigned __sync_sub_and_fetch_uint32(*unsigned, unsigned)
+func X__sync_sub_and_fetch_uint32(t *TLS, p uintptr, v uint32) uint32 {
+ return atomic.AddUint32((*uint32)(unsafe.Pointer(p)), -v)
+}
+
+// int sched_yield(void);
+func Xsched_yield(t *TLS) {
+ runtime.Gosched()
+}
+
+// int getc(FILE *stream);
+func Xgetc(t *TLS, stream uintptr) int32 {
+ return Xfgetc(t, stream)
+}
+
+// char *fgets(char *s, int size, FILE *stream);
+func Xfgets(t *TLS, s uintptr, size int32, stream uintptr) uintptr {
+ var b []byte
+out:
+ for ; size > 0; size-- {
+ switch c := Xfgetc(t, stream); c {
+ case '\n':
+ b = append(b, byte(c))
+ break out
+ case stdio.EOF:
+ break out
+ default:
+ b = append(b, byte(c))
+ }
+ }
+ if len(b) == 0 {
+ return 0
+ }
+
+ b = append(b, 0)
+ copy((*RawMem)(unsafe.Pointer(s))[:len(b):len(b)], b)
+ return s
+}
+
+// void bzero(void *s, size_t n);
+func Xbzero(t *TLS, s uintptr, n types.Size_t) {
+ b := (*RawMem)(unsafe.Pointer(s))[:n]
+ for i := range b {
+ b[i] = 0
+ }
+}
+
+// char *rindex(const char *s, int c);
+func Xrindex(t *TLS, s uintptr, c int32) uintptr {
+ if s == 0 {
+ return 0
+ }
+
+ var r uintptr
+ for {
+ c2 := int32(*(*byte)(unsafe.Pointer(s)))
+ if c2 == c {
+ r = s
+ }
+
+ if c2 == 0 {
+ return r
+ }
+
+ s++
+ }
+}
+
+// int isascii(int c);
+func Xisascii(t *TLS, c int32) int32 {
+ return Bool32(c >= 0 && c <= 0x7f)
+}
+
+func X__builtin_isunordered(t *TLS, a, b float64) int32 {
+ return Bool32(math.IsNaN(a) || math.IsNaN(b))
+}
diff --git a/vendor/modernc.org/libc/libc32.go b/vendor/modernc.org/libc/libc32.go
new file mode 100644
index 00000000..06072848
--- /dev/null
+++ b/vendor/modernc.org/libc/libc32.go
@@ -0,0 +1,30 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build 386 || arm
+// +build 386 arm
+
+package libc // import "modernc.org/libc"
+
+const (
+ heapSize = 1 << 30 // Adjust for your debugging session requirements and system RAM size.
+)
+
+type (
+ // RawMem represents the biggest byte array the runtime can handle
+ RawMem [1<<31 - 1]byte
+
+ // 32-5*4 = 12 bytes left to pad
+ stackHeaderPadding struct {
+ a uintptr
+ b uintptr
+ c uintptr
+ }
+)
+
+type bits []int
+
+func newBits(n int) (r bits) { return make(bits, (n+31)>>5) }
+func (b bits) has(n int) bool { return b != nil && b[n>>5]&(1<<uint(n&31)) != 0 }
+func (b bits) set(n int) { b[n>>5] |= 1 << uint(n&31) }
diff --git a/vendor/modernc.org/libc/libc64.go b/vendor/modernc.org/libc/libc64.go
new file mode 100644
index 00000000..ff2e0e3d
--- /dev/null
+++ b/vendor/modernc.org/libc/libc64.go
@@ -0,0 +1,28 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build amd64 || arm64 || s390x
+// +build amd64 arm64 s390x
+
+package libc // import "modernc.org/libc"
+
+const (
+ heapSize = 2 << 30 // Adjust for your debugging session requirements and system RAM size.
+)
+
+type (
+ // RawMem represents the biggest byte array the runtime can handle
+ RawMem [1<<50 - 1]byte
+
+ // 48-5*8 = 8 bytes left to pad
+ stackHeaderPadding struct {
+ a uintptr
+ }
+)
+
+type bits []int
+
+func newBits(n int) (r bits) { return make(bits, (n+63)>>6) }
+func (b bits) has(n int) bool { return b != nil && b[n>>6]&(1<<uint(n&63)) != 0 }
+func (b bits) set(n int) { b[n>>6] |= 1 << uint(n&63) }
diff --git a/vendor/modernc.org/libc/libc_darwin.go b/vendor/modernc.org/libc/libc_darwin.go
new file mode 100644
index 00000000..befa7aea
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_darwin.go
@@ -0,0 +1,2030 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ crand "crypto/rand"
+ "encoding/hex"
+ "fmt"
+ "io"
+ "os"
+ "os/exec"
+ gosignal "os/signal"
+ "path/filepath"
+ "strings"
+ "syscall"
+ gotime "time"
+ "unicode"
+ "unsafe"
+
+ guuid "github.com/google/uuid"
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ gonetdb "modernc.org/libc/honnef.co/go/netdb"
+ "modernc.org/libc/langinfo"
+ "modernc.org/libc/limits"
+ "modernc.org/libc/netdb"
+ "modernc.org/libc/netinet/in"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/socket"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/termios"
+ "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+ "modernc.org/libc/uuid/uuid"
+ "modernc.org/libc/wctype"
+)
+
+const (
+ maxPathLen = 1024
+)
+
+// var (
+// in6_addr_any in.In6_addr
+// )
+
+type (
+ long = types.User_long_t
+ ulong = types.User_ulong_t
+)
+
+// // Keep these outside of the var block otherwise go generate will miss them.
+var X__stderrp = Xstdout
+var X__stdinp = Xstdin
+var X__stdoutp = Xstdout
+
+// user@darwin-m1:~/tmp$ cat main.c
+// #include <xlocale.h>
+// #include <stdio.h>
+//
+// int main() {
+// printf("%i\n", ___mb_cur_max());
+// return 0;
+// }
+// user@darwin-m1:~/tmp$ gcc main.c && ./a.out
+// 1
+// user@darwin-m1:~/tmp$
+var X__mb_cur_max int32 = 1
+
+var startTime = gotime.Now() // For clock(3)
+
+type file uintptr
+
+func (f file) fd() int32 { return int32((*stdio.FILE)(unsafe.Pointer(f)).F_file) }
+func (f file) setFd(fd int32) { (*stdio.FILE)(unsafe.Pointer(f)).F_file = int16(fd) }
+
+func (f file) err() bool {
+ return (*stdio.FILE)(unsafe.Pointer(f)).F_flags&1 != 0
+}
+
+func (f file) setErr() {
+ (*stdio.FILE)(unsafe.Pointer(f)).F_flags |= 1
+}
+
+func (f file) close(t *TLS) int32 {
+ r := Xclose(t, f.fd())
+ Xfree(t, uintptr(f))
+ if r < 0 {
+ return stdio.EOF
+ }
+
+ return 0
+}
+
+func newFile(t *TLS, fd int32) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(stdio.FILE{})))
+ if p == 0 {
+ return 0
+ }
+
+ file(p).setFd(fd)
+ return p
+}
+
+func fwrite(fd int32, b []byte) (int, error) {
+ if fd == unistd.STDOUT_FILENO {
+ return write(b)
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v: %s", origin(1), fd, hex.Dump(b))
+ }
+ return unix.Write(int(fd), b)
+}
+
+func X__inline_isnand(t *TLS, x float64) int32 { return Xisnan(t, x) }
+func X__inline_isnanf(t *TLS, x float32) int32 { return Xisnanf(t, x) }
+func X__inline_isnanl(t *TLS, x float64) int32 { return Xisnan(t, x) }
+
+// int fprintf(FILE *stream, const char *format, ...);
+func Xfprintf(t *TLS, stream, format, args uintptr) int32 {
+ n, _ := fwrite(int32((*stdio.FILE)(unsafe.Pointer(stream)).F_file), printf(format, args))
+ return int32(n)
+}
+
+// int usleep(useconds_t usec);
+func Xusleep(t *TLS, usec types.Useconds_t) int32 {
+ gotime.Sleep(gotime.Microsecond * gotime.Duration(usec))
+ return 0
+}
+
+// int futimes(int fd, const struct timeval tv[2]);
+func Xfutimes(t *TLS, fd int32, tv uintptr) int32 {
+ var a []unix.Timeval
+ if tv != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(tv))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(tv + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Futimes(int(fd), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// void srandomdev(void);
+func Xsrandomdev(t *TLS) {
+ panic(todo(""))
+}
+
+// int gethostuuid(uuid_t id, const struct timespec *wait);
+func Xgethostuuid(t *TLS, id uintptr, wait uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETHOSTUUID, id, wait, 0); err != 0 { // Cannot avoid the syscall here.
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int flock(int fd, int operation);
+func Xflock(t *TLS, fd, operation int32) int32 {
+ if err := unix.Flock(int(fd), int(operation)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int fsctl(const char *,unsigned long,void*,unsigned int);
+func Xfsctl(t *TLS, path uintptr, request ulong, data uintptr, options uint32) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall6(unix.SYS_FSCTL, path, uintptr(request), data, uintptr(options), 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int * __error(void);
+func X__error(t *TLS) uintptr {
+ return t.errnop
+}
+
+// int isspace(int c);
+func Xisspace(t *TLS, c int32) int32 {
+ return __isspace(t, c)
+}
+
+// void __assert_rtn(const char *, const char *, int, const char *)
+func X__assert_rtn(t *TLS, function, file uintptr, line int32, assertion uintptr) {
+ panic(todo(""))
+ // fmt.Fprintf(os.Stderr, "assertion failure: %s:%d.%s: %s\n", GoString(file), line, GoString(function), GoString(assertion))
+ // os.Stderr.Sync()
+ // Xexit(t, 1)
+}
+
+// int getrusage(int who, struct rusage *usage);
+func Xgetrusage(t *TLS, who int32, usage uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int fgetc(FILE *stream);
+func Xfgetc(t *TLS, stream uintptr) int32 {
+ fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_file)
+ var buf [1]byte
+ if n, _ := unix.Read(fd, buf[:]); n != 0 {
+ return int32(buf[0])
+ }
+
+ return stdio.EOF
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xlstat64(t, pathname, statbuf)
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xstat64(t, pathname, statbuf)
+}
+
+// int chdir(const char *path);
+func Xchdir(t *TLS, path uintptr) int32 {
+ if err := unix.Chdir(GoString(path)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+var localtime time.Tm
+
+// struct tm *localtime(const time_t *timep);
+func Xlocaltime(_ *TLS, timep uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ localtime.Ftm_sec = int32(t.Second())
+ localtime.Ftm_min = int32(t.Minute())
+ localtime.Ftm_hour = int32(t.Hour())
+ localtime.Ftm_mday = int32(t.Day())
+ localtime.Ftm_mon = int32(t.Month() - 1)
+ localtime.Ftm_year = int32(t.Year() - 1900)
+ localtime.Ftm_wday = int32(t.Weekday())
+ localtime.Ftm_yday = int32(t.YearDay())
+ localtime.Ftm_isdst = Bool32(isTimeDST(t))
+ return uintptr(unsafe.Pointer(&localtime))
+}
+
+// struct tm *localtime_r(const time_t *timep, struct tm *result);
+func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t))
+ return result
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ var mode types.Mode_t
+ if args != 0 {
+ mode = (types.Mode_t)(VaUint32(&args))
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), uint32(mode))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#x %#o: %v FAIL", origin(1), GoString(pathname), flags, mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, fd)
+ }
+ return int32(fd)
+}
+
+// off_t lseek(int fd, off_t offset, int whence);
+func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ return types.Off_t(Xlseek64(t, fd, offset, whence))
+}
+
+func whenceStr(whence int32) string {
+ switch whence {
+ case fcntl.SEEK_CUR:
+ return "SEEK_CUR"
+ case fcntl.SEEK_END:
+ return "SEEK_END"
+ case fcntl.SEEK_SET:
+ return "SEEK_SET"
+ default:
+ return fmt.Sprintf("whence(%d)", whence)
+ }
+}
+
+var fsyncStatbuf stat.Stat
+
+// int fsync(int fd);
+func Xfsync(t *TLS, fd int32) int32 {
+ if noFsync {
+ // Simulate -DSQLITE_NO_SYNC for sqlite3 testfixture, see function full_sync in sqlite3.c
+ return Xfstat(t, fd, uintptr(unsafe.Pointer(&fsyncStatbuf)))
+ }
+
+ if err := unix.Fsync(int(fd)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// long sysconf(int name);
+func Xsysconf(t *TLS, name int32) long {
+ switch name {
+ case unistd.X_SC_PAGESIZE:
+ return long(unix.Getpagesize())
+ }
+
+ panic(todo(""))
+}
+
+// int close(int fd);
+func Xclose(t *TLS, fd int32) int32 {
+ if err := unix.Close(int(fd)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// char *getcwd(char *buf, size_t size);
+func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr {
+ if _, err := unix.Getcwd((*RawMem)(unsafe.Pointer(buf))[:size:size]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return buf
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 {
+ return Xfstat64(t, fd, statbuf)
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 {
+ if err := unix.Ftruncate(int(fd), int64(length)); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 {
+ return Xfcntl64(t, fd, cmd, args)
+}
+
+// ssize_t read(int fd, void *buf, size_t count);
+func Xread(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Read(int(fd), nil)
+ default:
+ n, err = unix.Read(int(fd), (*RawMem)(unsafe.Pointer(buf))[:count:count])
+ if dmesgs && err == nil {
+ dmesg("%v: fd %v, count %#x, n %#x\n%s", origin(1), fd, count, n, hex.Dump((*RawMem)(unsafe.Pointer(buf))[:n:n]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v, %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Ssize_t(n)
+}
+
+// ssize_t write(int fd, const void *buf, size_t count);
+func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Write(int(fd), nil)
+ default:
+ n, err = unix.Write(int(fd), (*RawMem)(unsafe.Pointer(buf))[:count:count])
+ if dmesgs {
+ dmesg("%v: fd %v, count %#x\n%s", origin(1), fd, count, hex.Dump((*RawMem)(unsafe.Pointer(buf))[:count:count]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Ssize_t(n)
+}
+
+// int fchmod(int fd, mode_t mode);
+func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 {
+ if err := unix.Fchmod(int(fd), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %d %#o: %v FAIL", origin(1), fd, mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#o: ok", origin(1), fd, mode)
+ }
+ return 0
+}
+
+// int fchown(int fd, uid_t owner, gid_t group);
+func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t geteuid(void);
+func Xgeteuid(t *TLS) types.Uid_t {
+ r := types.Uid_t(unix.Geteuid())
+ if dmesgs {
+ dmesg("%v: %v", origin(1), r)
+ }
+ return r
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ // Cannot avoid the syscall here, addr sometimes matter.
+ data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+// int munmap(void *addr, size_t length);
+func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 { // Cannot avoid the syscall here, must pair with mmap.
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int gettimeofday(struct timeval *tv, struct timezone *tz);
+func Xgettimeofday(t *TLS, tv, tz uintptr) int32 {
+ if tz != 0 {
+ panic(todo(""))
+ }
+
+ var tvs unix.Timeval
+ err := unix.Gettimeofday(&tvs)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs
+ return 0
+}
+
+// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+func Xgetsockopt(t *TLS, sockfd, level, optname int32, optval, optlen uintptr) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+func Xsetsockopt(t *TLS, sockfd, level, optname int32, optval uintptr, optlen socket.Socklen_t) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_SETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, uintptr(optlen), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int ioctl(int fd, unsigned long request, ...);
+func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 {
+ var argp uintptr
+ if va != 0 {
+ argp = VaUintptr(&va)
+ }
+ n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetsockname(t *TLS, sockfd int32, addr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETSOCKNAME, uintptr(sockfd), addr, addrlen); err != 0 { // Cannot avoid the syscall here.
+ if dmesgs {
+ dmesg("%v: fd %v: %v FAIL", origin(1), sockfd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v: ok", origin(1), sockfd)
+ }
+ return 0
+}
+
+// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
+func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 {
+ n, err := unix.Select(
+ int(nfds),
+ (*unix.FdSet)(unsafe.Pointer(readfds)),
+ (*unix.FdSet)(unsafe.Pointer(writefds)),
+ (*unix.FdSet)(unsafe.Pointer(exceptfds)),
+ (*unix.Timeval)(unsafe.Pointer(timeout)),
+ )
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return int32(n)
+}
+
+// int mkfifo(const char *pathname, mode_t mode);
+func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkfifo(GoString(pathname), uint32(mode)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// mode_t umask(mode_t mask);
+func Xumask(t *TLS, mask types.Mode_t) types.Mode_t {
+ return types.Mode_t(unix.Umask(int(mask)))
+}
+
+// // int execvp(const char *file, char *const argv[]);
+// func Xexecvp(t *TLS, file, argv uintptr) int32 {
+// if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 {
+// t.setErrno(err)
+// return -1
+// }
+//
+// return 0
+// }
+
+// pid_t (pid_t pid, int *wstatus, int options);
+func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t {
+ n, err := unix.Wait4(int(pid), (*unix.WaitStatus)(unsafe.Pointer(wstatus)), int(optname), nil)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Pid_t(n)
+}
+
+// int uname(struct utsname *buf);
+func Xuname(t *TLS, buf uintptr) int32 {
+ if err := unix.Uname((*unix.Utsname)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+func Xrecv(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_RECVFROM, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+func Xsend(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_SENDTO, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// int shutdown(int sockfd, int how);
+func Xshutdown(t *TLS, sockfd, how int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetpeername(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETPEERNAME, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int socket(int domain, int type, int protocol);
+func Xsocket(t *TLS, domain, type1, protocol int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_SOCKET, uintptr(domain), uintptr(type1), uintptr(protocol))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xbind(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_BIND, uintptr(sockfd), addr, uintptr(addrlen))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xconnect(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CONNECT, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int listen(int sockfd, int backlog);
+func Xlisten(t *TLS, sockfd, backlog int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LISTEN, uintptr(sockfd), uintptr(backlog), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xaccept(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall6(unix.SYS_ACCEPT4, uintptr(sockfd), addr, uintptr(addrlen), 0, 0, 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// // int getrlimit(int resource, struct rlimit *rlim);
+// func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+// return Xgetrlimit64(t, resource, rlim)
+// }
+//
+// // int setrlimit(int resource, const struct rlimit *rlim);
+// func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+// return Xsetrlimit64(t, resource, rlim)
+// }
+//
+// // int setrlimit(int resource, const struct rlimit *rlim);
+// func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+// if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+// t.setErrno(err)
+// return -1
+// }
+//
+// return 0
+// }
+
+// uid_t getuid(void);
+func Xgetuid(t *TLS) types.Uid_t {
+ r := types.Uid_t(os.Getuid())
+ if dmesgs {
+ dmesg("%v: %v", origin(1), r)
+ }
+ return r
+}
+
+// pid_t getpid(void);
+func Xgetpid(t *TLS) int32 {
+ r := int32(os.Getpid())
+ if dmesgs {
+ dmesg("%v: %v", origin(1), r)
+ }
+ return r
+}
+
+// int system(const char *command);
+func Xsystem(t *TLS, command uintptr) int32 {
+ s := GoString(command)
+ if command == 0 {
+ panic(todo(""))
+ }
+
+ cmd := exec.Command("sh", "-c", s)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ ps := err.(*exec.ExitError)
+ return int32(ps.ExitCode())
+ }
+
+ return 0
+}
+
+// int setvbuf(FILE *stream, char *buf, int mode, size_t size);
+func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 {
+ return 0 //TODO
+}
+
+// int raise(int sig);
+func Xraise(t *TLS, sig int32) int32 {
+ panic(todo(""))
+}
+
+// // int backtrace(void **buffer, int size);
+// func Xbacktrace(t *TLS, buf uintptr, size int32) int32 {
+// panic(todo(""))
+// }
+//
+// // void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+// func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) {
+// panic(todo(""))
+// }
+
+// int fileno(FILE *stream);
+func Xfileno(t *TLS, stream uintptr) int32 {
+ if stream == 0 {
+ if dmesgs {
+ dmesg("%v: FAIL", origin(1))
+ }
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ if fd := int32((*stdio.FILE)(unsafe.Pointer(stream)).F_file); fd >= 0 {
+ return fd
+ }
+
+ if dmesgs {
+ dmesg("%v: FAIL", origin(1))
+ }
+ t.setErrno(errno.EBADF)
+ return -1
+}
+
+func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+ var statp uintptr
+ if stat != nil {
+ statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+ if statp == 0 {
+ panic("OOM")
+ }
+
+ *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+ }
+ csp, errx := CString(path)
+ if errx != nil {
+ panic("OOM")
+ }
+
+ return &fts.FTSENT{
+ Ffts_info: uint16(info),
+ Ffts_path: csp,
+ Ffts_pathlen: uint16(len(path)),
+ Ffts_statp: statp,
+ Ffts_errno: int32(err),
+ }
+}
+
+func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err)
+ return p
+}
+
+func ftsentClose(t *TLS, p uintptr) {
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path)
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp)
+}
+
+type ftstream struct {
+ s []uintptr
+ x int
+}
+
+func (f *ftstream) close(t *TLS) {
+ for _, p := range f.s {
+ ftsentClose(t, p)
+ Xfree(t, p)
+ }
+ *f = ftstream{}
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ f := &ftstream{}
+
+ var walk func(string)
+ walk = func(path string) {
+ var fi os.FileInfo
+ var err error
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ fi, err = os.Stat(path)
+ case options&fts.FTS_PHYSICAL != 0:
+ fi, err = os.Lstat(path)
+ default:
+ panic(todo(""))
+ }
+
+ if err != nil {
+ return
+ }
+
+ var statp *unix.Stat_t
+ if options&fts.FTS_NOSTAT == 0 {
+ var stat unix.Stat_t
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ if err := unix.Stat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ case options&fts.FTS_PHYSICAL != 0:
+ if err := unix.Lstat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ default:
+ panic(todo(""))
+ }
+
+ statp = &stat
+ }
+
+ out:
+ switch {
+ case fi.IsDir():
+ f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0))
+ g, err := os.Open(path)
+ switch x := err.(type) {
+ case nil:
+ // ok
+ case *os.PathError:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES))
+ break out
+ default:
+ panic(todo("%q: %v %T", path, x, x))
+ }
+
+ names, err := g.Readdirnames(-1)
+ g.Close()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ for _, name := range names {
+ walk(path + "/" + name)
+ if f == nil {
+ break out
+ }
+ }
+
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0))
+ default:
+ info := fts.FTS_F
+ if fi.Mode()&os.ModeSymlink != 0 {
+ info = fts.FTS_SL
+ }
+ switch {
+ case statp != nil:
+ f.s = append(f.s, newCFtsent(t, info, path, statp, 0))
+ case options&fts.FTS_NOSTAT != 0:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0))
+ default:
+ panic(todo(""))
+ }
+ }
+ }
+
+ for {
+ p := *(*uintptr)(unsafe.Pointer(path_argv))
+ if p == 0 {
+ if f == nil {
+ return 0
+ }
+
+ if compar != 0 {
+ panic(todo(""))
+ }
+
+ return addObject(f)
+ }
+
+ walk(GoString(p))
+ path_argv += unsafe.Sizeof(uintptr(0))
+ }
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts_read(t *TLS, ftsp uintptr) uintptr {
+ f := getObject(ftsp).(*ftstream)
+ if f.x == len(f.s) {
+ if dmesgs {
+ dmesg("%v: FAIL", origin(1))
+ }
+ t.setErrno(0)
+ return 0
+ }
+
+ r := f.s[f.x]
+ if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 {
+ if dmesgs {
+ dmesg("%v: FAIL", origin(1))
+ }
+ t.setErrno(e)
+ }
+ f.x++
+ return r
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts_close(t *TLS, ftsp uintptr) int32 {
+ getObject(ftsp).(*ftstream).close(t)
+ removeObject(ftsp)
+ return 0
+}
+
+// void tzset (void);
+func Xtzset(t *TLS) {
+ //TODO
+}
+
+// char *strerror(int errnum);
+func Xstrerror(t *TLS, errnum int32) uintptr {
+ panic(todo(""))
+}
+
+// void *dlopen(const char *filename, int flags);
+func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr {
+ panic(todo(""))
+}
+
+// char *dlerror(void);
+func Xdlerror(t *TLS) uintptr {
+ panic(todo(""))
+}
+
+// int dlclose(void *handle);
+func Xdlclose(t *TLS, handle uintptr) int32 {
+ panic(todo(""))
+}
+
+// void *dlsym(void *handle, const char *symbol);
+func Xdlsym(t *TLS, handle, symbol uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void perror(const char *s);
+func Xperror(t *TLS, s uintptr) {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func Xpclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// var gai_strerrorBuf [100]byte
+
+// const char *gai_strerror(int errcode);
+func Xgai_strerror(t *TLS, errcode int32) uintptr {
+ panic(todo(""))
+ // copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode))
+ // return uintptr(unsafe.Pointer(&gai_strerrorBuf))
+}
+
+// int tcgetattr(int fd, struct termios *termios_p);
+func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
+func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// speed_t cfgetospeed(const struct termios *termios_p);
+func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t {
+ panic(todo(""))
+}
+
+// int cfsetospeed(struct termios *termios_p, speed_t speed);
+// func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+func Xcfsetospeed(...interface{}) int32 {
+ panic(todo(""))
+}
+
+// int cfsetispeed(struct termios *termios_p, speed_t speed);
+// func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+func Xcfsetispeed(...interface{}) int32 {
+ panic(todo(""))
+}
+
+// pid_t fork(void);
+func Xfork(t *TLS) int32 {
+ if dmesgs {
+ dmesg("%v: FAIL", origin(1))
+ }
+ t.setErrno(errno.ENOSYS)
+ return -1
+}
+
+var emptyStr = [1]byte{}
+
+// char *setlocale(int category, const char *locale);
+func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// char *nl_langinfo(nl_item item);
+func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// FILE *popen(const char *command, const char *type);
+func Xpopen(t *TLS, command, type1 uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *realpath(const char *path, char *resolved_path);
+func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr {
+ s, err := filepath.EvalSymlinks(GoString(path))
+ if err != nil {
+ if os.IsNotExist(err) {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(errno.ENOENT)
+ return 0
+ }
+
+ panic(todo("", err))
+ }
+
+ if resolved_path == 0 {
+ panic(todo(""))
+ }
+
+ if len(s) >= limits.PATH_MAX {
+ s = s[:limits.PATH_MAX-1]
+ }
+
+ copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s)
+ (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return resolved_path
+}
+
+// struct tm *gmtime_r(const time_t *timep, struct tm *result);
+func Xgmtime_r(t *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *inet_ntoa(struct in_addr in);
+func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func X__ccgo_in6addr_anyp(t *TLS) uintptr {
+ panic(todo(""))
+ // return uintptr(unsafe.Pointer(&in6_addr_any))
+}
+
+func Xabort(t *TLS) {
+ if dmesgs {
+ dmesg("%v:", origin(1))
+ }
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(signal.Sigaction{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ (*signal.Sigaction)(unsafe.Pointer(p)).F__sigaction_u.F__sa_handler = signal.SIG_DFL
+ Xsigaction(t, signal.SIGABRT, p, 0)
+ Xfree(t, p)
+ unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT))
+ panic(todo("unrechable"))
+}
+
+// int fflush(FILE *stream);
+func Xfflush(t *TLS, stream uintptr) int32 {
+ return 0 //TODO
+}
+
+// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ fd := uintptr(file(stream).fd())
+ count := size * nmemb
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Read(int(fd), nil)
+ default:
+ n, err = unix.Read(int(fd), (*RawMem)(unsafe.Pointer(ptr))[:count:count])
+ if dmesgs && err == nil {
+ dmesg("%v: fd %v, n %#x\n%s", origin(1), fd, n, hex.Dump((*RawMem)(unsafe.Pointer(ptr))[:n:n]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ file(stream).setErr()
+ return types.Size_t(n) / size
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Size_t(n) / size
+}
+
+// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ fd := uintptr(file(stream).fd())
+ count := size * nmemb
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Write(int(fd), nil)
+ default:
+ n, err = unix.Write(int(fd), (*RawMem)(unsafe.Pointer(ptr))[:count:count])
+ if dmesgs {
+ dmesg("%v: fd %v, count %#x\n%s", origin(1), fd, count, hex.Dump((*RawMem)(unsafe.Pointer(ptr))[:count:count]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ file(stream).setErr()
+ return types.Size_t(n) / size
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Size_t(n) / size
+}
+
+// int fclose(FILE *stream);
+func Xfclose(t *TLS, stream uintptr) int32 {
+ r := file(stream).close(t)
+ if r != 0 {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), r)
+ }
+ t.setErrno(r)
+ return stdio.EOF
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int fputc(int c, FILE *stream);
+func Xfputc(t *TLS, c int32, stream uintptr) int32 {
+ if _, err := fwrite(file(stream).fd(), []byte{byte(c)}); err != nil {
+ return stdio.EOF
+ }
+
+ return int32(byte(c))
+}
+
+// int fseek(FILE *stream, long offset, int whence);
+func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 {
+ if n := Xlseek(t, int32(file(stream).fd()), types.Off_t(offset), whence); n < 0 {
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), file(stream).fd(), offset, whenceStr(whence), n)
+ }
+ file(stream).setErr()
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), file(stream).fd(), offset, whenceStr(whence))
+ }
+ return 0
+}
+
+// long ftell(FILE *stream);
+func Xftell(t *TLS, stream uintptr) long {
+ n := Xlseek(t, file(stream).fd(), 0, stdio.SEEK_CUR)
+ if n < 0 {
+ file(stream).setErr()
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, n %#x: ok %#x", origin(1), file(stream).fd(), n, long(n))
+ }
+ return long(n)
+}
+
+// int ferror(FILE *stream);
+func Xferror(t *TLS, stream uintptr) int32 {
+ return Bool32(file(stream).err())
+}
+
+// int fputs(const char *s, FILE *stream);
+func Xfputs(t *TLS, s, stream uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), s, uintptr(Xstrlen(t, s))); err != 0 {
+ // return -1
+ // }
+
+ // return 0
+}
+
+var getservbynameStaticResult netdb.Servent
+
+// struct servent *getservbyname(const char *name, const char *proto);
+func Xgetservbyname(t *TLS, name, proto uintptr) uintptr {
+ var protoent *gonetdb.Protoent
+ if proto != 0 {
+ protoent = gonetdb.GetProtoByName(GoString(proto))
+ }
+ servent := gonetdb.GetServByName(GoString(name), protoent)
+ if servent == nil {
+ if dmesgs {
+ dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent)
+ }
+ return 0
+ }
+
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name)
+ if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 {
+ for {
+ p := *(*uintptr)(unsafe.Pointer(v))
+ if p == 0 {
+ break
+ }
+
+ Xfree(t, p)
+ v += unsafe.Sizeof(uintptr(0))
+ }
+ Xfree(t, v)
+ }
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto)
+ cname, err := CString(servent.Name)
+ if err != nil {
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+
+ var protoname uintptr
+ if protoent != nil {
+ if protoname, err = CString(protoent.Name); err != nil {
+ Xfree(t, cname)
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ }
+ var a []uintptr
+ for _, v := range servent.Aliases {
+ cs, err := CString(v)
+ if err != nil {
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ return 0
+ }
+
+ a = append(a, cs)
+ }
+ v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0))))
+ if v == 0 {
+ Xfree(t, cname)
+ Xfree(t, protoname)
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ for _, p := range a {
+ *(*uintptr)(unsafe.Pointer(v)) = p
+ v += unsafe.Sizeof(uintptr(0))
+ }
+
+ getservbynameStaticResult = netdb.Servent{
+ Fs_name: cname,
+ Fs_aliases: v,
+ Fs_port: int32(servent.Port),
+ Fs_proto: protoname,
+ }
+ return uintptr(unsafe.Pointer(&getservbynameStaticResult))
+}
+
+// //TODO- func Xreaddir64(t *TLS, dir uintptr) uintptr {
+// //TODO- return Xreaddir(t, dir)
+// //TODO- }
+//
+// func __syscall(r, _ uintptr, errno syscall.Errno) long {
+// if errno != 0 {
+// return long(-errno)
+// }
+//
+// return long(r)
+// }
+
+func fcntlCmdStr(cmd int32) string {
+ switch cmd {
+ case fcntl.F_GETOWN:
+ return "F_GETOWN"
+ case fcntl.F_SETLK:
+ return "F_SETLK"
+ case fcntl.F_GETLK:
+ return "F_GETLK"
+ case fcntl.F_SETFD:
+ return "F_SETFD"
+ case fcntl.F_GETFD:
+ return "F_GETFD"
+ default:
+ return fmt.Sprintf("cmd(%d)", cmd)
+ }
+}
+
+// // struct __float2 { float __sinval; float __cosval; };
+// // struct __double2 { double __sinval; double __cosval; };
+// //
+// // extern struct __float2 __sincosf_stret(float);
+// // extern struct __double2 __sincos_stret(double);
+// // extern struct __float2 __sincospif_stret(float);
+// // extern struct __double2 __sincospi_stret(double);
+//
+// type X__float2 struct{ F__sinval, F__cosval float32 }
+// type X__double2 struct{ F__sinval, F__cosval float32 }
+//
+// func X__sincosf_stret(*TLS, float32) X__float2 {
+// panic(todo(""))
+// }
+//
+// func X__sincos_stret(*TLS, float64) X__double2 {
+// panic(todo(""))
+// }
+//
+// func X__sincospif_stret(*TLS, float32) X__float2 {
+// panic(todo(""))
+// }
+//
+// func X__sincospi_stret(*TLS, float64) X__double2 {
+// panic(todo(""))
+// }
+
+// ssize_t pread(int fd, void *buf, size_t count, off_t offset);
+func Xpread(t *TLS, fd int32, buf uintptr, count types.Size_t, offset types.Off_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Pread(int(fd), nil, int64(offset))
+ default:
+ n, err = unix.Pread(int(fd), (*RawMem)(unsafe.Pointer(buf))[:count:count], int64(offset))
+ if dmesgs && err == nil {
+ dmesg("%v: fd %v, off %#x, count %#x, n %#x\n%s", origin(1), fd, offset, count, n, hex.Dump((*RawMem)(unsafe.Pointer(buf))[:n:n]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Ssize_t(n)
+}
+
+// ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
+func Xpwrite(t *TLS, fd int32, buf uintptr, count types.Size_t, offset types.Off_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Pwrite(int(fd), nil, int64(offset))
+ default:
+ n, err = unix.Pwrite(int(fd), (*RawMem)(unsafe.Pointer(buf))[:count:count], int64(offset))
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, count %#x\n%s", origin(1), fd, offset, count, hex.Dump((*RawMem)(unsafe.Pointer(buf))[:count:count]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Ssize_t(n)
+}
+
+// char***_NSGetEnviron()
+func X_NSGetEnviron(t *TLS) uintptr {
+ return EnvironP()
+}
+
+// int chflags(const char *path, u_int flags);
+func Xchflags(t *TLS, path uintptr, flags uint32) int32 {
+ if err := unix.Chflags(GoString(path), int(flags)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if err := unix.Rmdir(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// uint64_t mach_absolute_time(void);
+func Xmach_absolute_time(t *TLS) uint64 {
+ return uint64(gotime.Now().UnixNano())
+}
+
+// See https://developer.apple.com/library/archive/qa/qa1398/_index.html
+type machTimebaseInfo = struct {
+ Fnumer uint32
+ Fdenom uint32
+} /* mach_time.h:36:1 */
+
+// kern_return_t mach_timebase_info(mach_timebase_info_t info);
+func Xmach_timebase_info(t *TLS, info uintptr) int32 {
+ *(*machTimebaseInfo)(unsafe.Pointer(info)) = machTimebaseInfo{Fnumer: 1, Fdenom: 1}
+ return 0
+}
+
+// int getattrlist(const char* path, struct attrlist * attrList, void * attrBuf, size_t attrBufSize, unsigned long options);
+func Xgetattrlist(t *TLS, path, attrList, attrBuf uintptr, attrBufSize types.Size_t, options uint32) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_GETATTRLIST, path, attrList, attrBuf, uintptr(attrBufSize), uintptr(options), 0); err != 0 { // Cannot avoid the syscall here.
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int setattrlist(const char* path, struct attrlist * attrList, void * attrBuf, size_t attrBufSize, unsigned long options);
+func Xsetattrlist(t *TLS, path, attrList, attrBuf uintptr, attrBufSize types.Size_t, options uint32) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_SETATTRLIST, path, attrList, attrBuf, uintptr(attrBufSize), uintptr(options), 0); err != 0 { // Cannot avoid the syscall here.
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int copyfile(const char *from, const char *to, copyfile_state_t state, copyfile_flags_t flags);
+func Xcopyfile(...interface{}) int32 {
+ panic(todo(""))
+}
+
+// int truncate(const char *path, off_t length);
+func Xtruncate(...interface{}) int32 {
+ panic(todo(""))
+}
+
+type darwinDir struct {
+ buf [4096]byte
+ fd int
+ h int
+ l int
+
+ eof bool
+}
+
+// DIR *opendir(const char *name);
+func Xopendir(t *TLS, name uintptr) uintptr {
+ p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0))
+ if fd < 0 {
+ if dmesgs {
+ dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd)
+ }
+ Xfree(t, p)
+ // trc("==== opendir: %#x", 0)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ (*darwinDir)(unsafe.Pointer(p)).fd = fd
+ (*darwinDir)(unsafe.Pointer(p)).h = 0
+ (*darwinDir)(unsafe.Pointer(p)).l = 0
+ (*darwinDir)(unsafe.Pointer(p)).eof = false
+ // trc("==== opendir: %#x", p)
+ return p
+}
+
+// struct dirent *readdir(DIR *dirp);
+func Xreaddir(t *TLS, dir uintptr) uintptr {
+ if (*darwinDir)(unsafe.Pointer(dir)).eof {
+ return 0
+ }
+
+ // trc(".... readdir %#x: l %v, h %v", dir, (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h)
+ if (*darwinDir)(unsafe.Pointer(dir)).l == (*darwinDir)(unsafe.Pointer(dir)).h {
+ n, err := unix.Getdirentries((*darwinDir)(unsafe.Pointer(dir)).fd, (*darwinDir)(unsafe.Pointer(dir)).buf[:], nil)
+ // trc("must read: %v %v", n, err)
+ if n == 0 {
+ if err != nil && err != io.EOF {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ }
+ (*darwinDir)(unsafe.Pointer(dir)).eof = true
+ return 0
+ }
+
+ (*darwinDir)(unsafe.Pointer(dir)).l = 0
+ (*darwinDir)(unsafe.Pointer(dir)).h = n
+ // trc("new l %v, h %v", (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h)
+ }
+ de := dir + unsafe.Offsetof(darwinDir{}.buf) + uintptr((*darwinDir)(unsafe.Pointer(dir)).l)
+ // trc("dir %#x de %#x", dir, de)
+ (*darwinDir)(unsafe.Pointer(dir)).l += int((*unix.Dirent)(unsafe.Pointer(de)).Reclen)
+ // trc("final l %v, h %v", (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h)
+ return de
+}
+
+func Xclosedir(t *TLS, dir uintptr) int32 {
+ // trc("---- closedir: %#x", dir)
+ r := Xclose(t, int32((*darwinDir)(unsafe.Pointer(dir)).fd))
+ Xfree(t, dir)
+ return r
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ var a [2]int
+ if err := syscall.Pipe(a[:]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*[2]int32)(unsafe.Pointer(pipefd)) = [2]int32{int32(a[0]), int32(a[1])}
+ if dmesgs {
+ dmesg("%v: %v ok", origin(1), a)
+ }
+ return 0
+}
+
+// int __isoc99_sscanf(const char *str, const char *format, ...);
+func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// int sscanf(const char *str, const char *format, ...);
+func Xsscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// int posix_fadvise(int fd, off_t offset, off_t len, int advice);
+func Xposix_fadvise(t *TLS, fd int32, offset, len types.Off_t, advice int32) int32 {
+ panic(todo(""))
+}
+
+// clock_t clock(void);
+func Xclock(t *TLS) time.Clock_t {
+ return time.Clock_t(gotime.Since(startTime) * gotime.Duration(time.CLOCKS_PER_SEC) / gotime.Second)
+}
+
+// int iswspace(wint_t wc);
+func Xiswspace(t *TLS, wc wctype.Wint_t) int32 {
+ return Bool32(unicode.IsSpace(rune(wc)))
+}
+
+// int iswalnum(wint_t wc);
+func Xiswalnum(t *TLS, wc wctype.Wint_t) int32 {
+ return Bool32(unicode.IsLetter(rune(wc)) || unicode.IsNumber(rune(wc)))
+}
+
+// void arc4random_buf(void *buf, size_t nbytes);
+func Xarc4random_buf(t *TLS, buf uintptr, buflen size_t) {
+ if _, err := crand.Read((*RawMem)(unsafe.Pointer(buf))[:buflen]); err != nil {
+ panic(todo(""))
+ }
+}
+
+type darwin_mutexattr_t struct {
+ sig int64
+ x [8]byte
+}
+
+type darwin_mutex_t struct {
+ sig int64
+ x [65]byte
+}
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 {
+ return (int32((*darwin_mutexattr_t)(unsafe.Pointer(a)).x[4] >> 2 & 3))
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 {
+ return (int32((*darwin_mutex_t)(unsafe.Pointer(m)).x[4] >> 2 & 3))
+}
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 {
+ panic(todo(""))
+}
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 {
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 {
+ *(*darwin_mutexattr_t)(unsafe.Pointer(a)) = darwin_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 {
+ if uint32(type1) > uint32(2) {
+ return errno.EINVAL
+ }
+ (*darwin_mutexattr_t)(unsafe.Pointer(a)).x[4] = byte(type1 << 2)
+ return 0
+}
+
+// ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
+func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t {
+ // if dmesgs {
+ // dmesg("%v: fd %v iov %#x iovcnt %v", origin(1), fd, iov, iovcnt)
+ // }
+ r, _, err := unix.Syscall(unix.SYS_WRITEV, uintptr(fd), iov, uintptr(iovcnt))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(r)
+}
+
+// int pause(void);
+func Xpause(t *TLS) int32 {
+ c := make(chan os.Signal)
+ gosignal.Notify(c,
+ syscall.SIGABRT,
+ syscall.SIGALRM,
+ syscall.SIGBUS,
+ syscall.SIGCHLD,
+ syscall.SIGCONT,
+ syscall.SIGFPE,
+ syscall.SIGHUP,
+ syscall.SIGILL,
+ // syscall.SIGINT,
+ syscall.SIGIO,
+ syscall.SIGIOT,
+ syscall.SIGKILL,
+ syscall.SIGPIPE,
+ syscall.SIGPROF,
+ syscall.SIGQUIT,
+ syscall.SIGSEGV,
+ syscall.SIGSTOP,
+ syscall.SIGSYS,
+ syscall.SIGTERM,
+ syscall.SIGTRAP,
+ syscall.SIGTSTP,
+ syscall.SIGTTIN,
+ syscall.SIGTTOU,
+ syscall.SIGURG,
+ syscall.SIGUSR1,
+ syscall.SIGUSR2,
+ syscall.SIGVTALRM,
+ syscall.SIGWINCH,
+ syscall.SIGXCPU,
+ syscall.SIGXFSZ,
+ )
+ switch <-c {
+ case syscall.SIGINT:
+ panic(todo(""))
+ default:
+ t.setErrno(errno.EINTR)
+ return -1
+ }
+}
+
+// #define __DARWIN_FD_SETSIZE 1024
+// #define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */
+// #define __DARWIN_NBBY 8 /* bits in a byte */
+// #define __DARWIN_howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */
+
+// typedef struct fd_set {
+// __int32_t fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)];
+// } fd_set;
+
+// __darwin_fd_set(int _fd, struct fd_set *const _p)
+// {
+// (_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))));
+// }
+func X__darwin_fd_set(tls *TLS, _fd int32, _p uintptr) int32 { /* main.c:12:1: */
+ *(*int32)(unsafe.Pointer(_p + uintptr(uint64(_fd)/(uint64(unsafe.Sizeof(int32(0)))*uint64(8)))*4)) |= int32(uint64(uint64(1)) << (uint64(_fd) % (uint64(unsafe.Sizeof(int32(0))) * uint64(8))))
+ return int32(0)
+}
+
+// __darwin_fd_isset(int _fd, const struct fd_set *_p)
+// {
+// return _p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)));
+// }
+func X__darwin_fd_isset(tls *TLS, _fd int32, _p uintptr) int32 { /* main.c:17:1: */
+ return *(*int32)(unsafe.Pointer(_p + uintptr(uint64(_fd)/(uint64(unsafe.Sizeof(int32(0)))*uint64(8)))*4)) & int32(uint64(uint64(1))<<(uint64(_fd)%(uint64(unsafe.Sizeof(int32(0)))*uint64(8))))
+}
+
+// __darwin_fd_clr(int _fd, struct fd_set *const _p)
+// {
+// (_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))));
+// }
+func X__darwin_fd_clr(tls *TLS, _fd int32, _p uintptr) int32 { /* main.c:22:1: */
+ *(*int32)(unsafe.Pointer(_p + uintptr(uint64(_fd)/(uint64(unsafe.Sizeof(int32(0)))*uint64(8)))*4)) &= ^int32(uint64(uint64(1)) << (uint64(_fd) % (uint64(unsafe.Sizeof(int32(0))) * uint64(8))))
+ return int32(0)
+}
+
+// int ungetc(int c, FILE *stream);
+func Xungetc(t *TLS, c int32, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int issetugid(void);
+func Xissetugid(t *TLS) int32 {
+ panic(todo(""))
+}
+
+var progname uintptr
+
+// const char *getprogname(void);
+func Xgetprogname(t *TLS) uintptr {
+ if progname != 0 {
+ return progname
+ }
+
+ var err error
+ progname, err = CString(filepath.Base(os.Args[0]))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+
+ return progname
+}
+
+// void uuid_copy(uuid_t dst, uuid_t src);
+func Xuuid_copy(t *TLS, dst, src uintptr) {
+ *(*uuid.Uuid_t)(unsafe.Pointer(dst)) = *(*uuid.Uuid_t)(unsafe.Pointer(src))
+}
+
+// int uuid_parse( char *in, uuid_t uu);
+func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 {
+ r, err := guuid.Parse(GoString(in))
+ if err != nil {
+ return -1
+ }
+
+ copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:])
+ return 0
+}
+
+// struct __float2 { float __sinval; float __cosval; };
+
+// struct __float2 __sincosf_stret(float);
+func X__sincosf_stret(t *TLS, f float32) struct{ F__sinval, F__cosval float32 } {
+ panic(todo(""))
+}
+
+// struct __double2 { double __sinval; double __cosval; };
+
+// struct __double2 __sincos_stret(double);
+func X__sincos_stret(t *TLS, f float64) struct{ F__sinval, F__cosval float64 } {
+ panic(todo(""))
+}
+
+// struct __float2 __sincospif_stret(float);
+func X__sincospif_stret(t *TLS, f float32) struct{ F__sinval, F__cosval float32 } {
+ panic(todo(""))
+}
+
+// struct _double2 __sincospi_stret(double);
+func X__sincospi_stret(t *TLS, f float64) struct{ F__sinval, F__cosval float64 } {
+ panic(todo(""))
+}
diff --git a/vendor/modernc.org/libc/libc_darwin_amd64.go b/vendor/modernc.org/libc/libc_darwin_amd64.go
new file mode 100644
index 00000000..e8f46c49
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_darwin_amd64.go
@@ -0,0 +1,450 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/utime"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(signal.X__sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ (*signal.X__sigaction)(unsafe.Pointer(kact)).F__sigaction_u.F__sa_handler = (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_u.F__sa_handler
+ (*signal.X__sigaction)(unsafe.Pointer(kact)).Fsa_flags = (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags
+ Xmemcpy(t, kact+unsafe.Offsetof(signal.X__sigaction{}.Fsa_mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(signal.Sigset_t(0))))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(signal.Sigset_t(0)), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) (r int32) {
+ var err error
+ var p uintptr
+ var i int
+ switch cmd {
+ case fcntl.F_GETLK, fcntl.F_SETLK:
+ p = *(*uintptr)(unsafe.Pointer(args))
+ err = unix.FcntlFlock(uintptr(fd), int(cmd), (*unix.Flock_t)(unsafe.Pointer(p)))
+ case fcntl.F_GETFL, fcntl.F_FULLFSYNC:
+ i, err = unix.FcntlInt(uintptr(fd), int(cmd), 0)
+ r = int32(i)
+ case fcntl.F_SETFD, fcntl.F_SETFL:
+ arg := *(*int32)(unsafe.Pointer(args))
+ _, err = unix.FcntlInt(uintptr(fd), int(cmd), int(arg))
+ default:
+ panic(todo("%v: %v %v", origin(1), fd, cmd))
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v p %#x: %v FAIL", origin(1), fcntlCmdStr(fd), cmd, p, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: ok", origin(1), fd, fcntlCmdStr(cmd), p)
+ }
+ return r
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int fstatfs(int fd, struct statfs *buf);
+func Xfstatfs(t *TLS, fd int32, buf uintptr) int32 {
+ if err := unix.Fstatfs(int(fd), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %v: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// int statfs(const char *path, struct statfs *buf);
+func Xstatfs(t *TLS, path uintptr, buf uintptr) int32 {
+ if err := unix.Statfs(GoString(path), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ panic(todo(""))
+ // n := time.Now().UTC().Unix()
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// // int getrlimit(int resource, struct rlimit *rlim);
+// func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+// if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+// t.setErrno(err)
+// return -1
+// }
+//
+// return 0
+// }
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
diff --git a/vendor/modernc.org/libc/libc_darwin_arm64.go b/vendor/modernc.org/libc/libc_darwin_arm64.go
new file mode 100644
index 00000000..3864d311
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_darwin_arm64.go
@@ -0,0 +1,450 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/utime"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(signal.X__sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ (*signal.X__sigaction)(unsafe.Pointer(kact)).F__sigaction_u.F__sa_handler = (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_u.F__sa_handler
+ (*signal.X__sigaction)(unsafe.Pointer(kact)).Fsa_flags = (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags
+ Xmemcpy(t, kact+unsafe.Offsetof(signal.X__sigaction{}.Fsa_mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(signal.Sigset_t(0))))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(signal.Sigset_t(0)), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) (r int32) {
+ var err error
+ var p uintptr
+ var i int
+ switch cmd {
+ case fcntl.F_GETLK, fcntl.F_SETLK, fcntl.F_SETLKW:
+ p = *(*uintptr)(unsafe.Pointer(args))
+ err = unix.FcntlFlock(uintptr(fd), int(cmd), (*unix.Flock_t)(unsafe.Pointer(p)))
+ case fcntl.F_GETFL, fcntl.F_FULLFSYNC:
+ i, err = unix.FcntlInt(uintptr(fd), int(cmd), 0)
+ r = int32(i)
+ case fcntl.F_SETFD, fcntl.F_SETFL:
+ arg := *(*int32)(unsafe.Pointer(args))
+ _, err = unix.FcntlInt(uintptr(fd), int(cmd), int(arg))
+ default:
+ panic(todo("%v: %v %v", origin(1), fd, cmd))
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v p %#x: %v FAIL", origin(1), fcntlCmdStr(fd), cmd, p, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: ok", origin(1), fd, fcntlCmdStr(cmd), p)
+ }
+ return r
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int fstatfs(int fd, struct statfs *buf);
+func Xfstatfs(t *TLS, fd int32, buf uintptr) int32 {
+ if err := unix.Fstatfs(int(fd), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %v: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// int statfs(const char *path, struct statfs *buf);
+func Xstatfs(t *TLS, path uintptr, buf uintptr) int32 {
+ if err := unix.Statfs(GoString(path), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n := time.Now().UTC().Unix()
+ if tloc != 0 {
+ *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ }
+ return types.Time_t(n)
+}
+
+// // int getrlimit(int resource, struct rlimit *rlim);
+// func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+// if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+// t.setErrno(err)
+// return -1
+// }
+//
+// return 0
+// }
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
diff --git a/vendor/modernc.org/libc/libc_freebsd.go b/vendor/modernc.org/libc/libc_freebsd.go
new file mode 100644
index 00000000..ff6578dd
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_freebsd.go
@@ -0,0 +1,1509 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "runtime/debug"
+ "strings"
+ "syscall"
+ gotime "time"
+ "unsafe"
+
+ guuid "github.com/google/uuid"
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ gonetdb "modernc.org/libc/honnef.co/go/netdb"
+ "modernc.org/libc/langinfo"
+ "modernc.org/libc/limits"
+ "modernc.org/libc/netdb"
+ "modernc.org/libc/netinet/in"
+ "modernc.org/libc/pthread"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/socket"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/termios"
+ "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+ "modernc.org/libc/uuid"
+)
+
+var (
+ in6_addr_any in.In6_addr
+)
+
+// // Keep these outside of the var block otherwise go generate will miss them.
+var X__stderrp = Xstdout
+var X__stdinp = Xstdin
+var X__stdoutp = Xstdout
+
+// include/stdio.h:486:extern int __isthreaded;
+var X__isthreaded int32
+
+// lib/libc/locale/mblocal.h:62: int __mb_sb_limit;
+var X__mb_sb_limit int32 = 128 // UTF-8
+
+// include/runetype.h:94:extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
+var X_ThreadRuneLocale uintptr //TODO initialize and implement _Thread_local semantics.
+
+// include/xlocale/_ctype.h:54:_RuneLocale *__runes_for_locale(locale_t, int*);
+func X__runes_for_locale(t *TLS, l locale_t, p uintptr) uintptr {
+ panic(todo(""))
+}
+
+type file uintptr
+
+func (f file) fd() int32 { return int32((*stdio.FILE)(unsafe.Pointer(f)).F_file) }
+func (f file) setFd(fd int32) { (*stdio.FILE)(unsafe.Pointer(f)).F_file = int16(fd) }
+
+func (f file) err() bool {
+ return (*stdio.FILE)(unsafe.Pointer(f)).F_flags&1 != 0
+}
+
+func (f file) setErr() {
+ (*stdio.FILE)(unsafe.Pointer(f)).F_flags |= 1
+}
+
+func (f file) close(t *TLS) int32 {
+ r := Xclose(t, f.fd())
+ Xfree(t, uintptr(f))
+ if r < 0 {
+ return stdio.EOF
+ }
+
+ return 0
+}
+
+func newFile(t *TLS, fd int32) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(stdio.FILE{})))
+ if p == 0 {
+ return 0
+ }
+ file(p).setFd(fd)
+ return p
+}
+
+func fwrite(fd int32, b []byte) (int, error) {
+ if fd == unistd.STDOUT_FILENO {
+ return write(b)
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v: %s", origin(1), fd, b)
+ // }
+ return unix.Write(int(fd), b) //TODO use Xwrite
+}
+
+// unsigned long ___runetype(__ct_rune_t) __pure;
+func X___runetype(t *TLS, x types.X__ct_rune_t) ulong {
+ panic(todo(""))
+}
+
+// int fprintf(FILE *stream, const char *format, ...);
+func Xfprintf(t *TLS, stream, format, args uintptr) int32 {
+ n, _ := fwrite(int32((*stdio.FILE)(unsafe.Pointer(stream)).F_file), printf(format, args))
+ return int32(n)
+}
+
+// int usleep(useconds_t usec);
+func Xusleep(t *TLS, usec types.X__useconds_t) int32 {
+ gotime.Sleep(gotime.Microsecond * gotime.Duration(usec))
+ return 0
+}
+
+// int getrusage(int who, struct rusage *usage);
+func Xgetrusage(t *TLS, who int32, usage uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int fgetc(FILE *stream);
+func Xfgetc(t *TLS, stream uintptr) int32 {
+ fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_file)
+ var buf [1]byte
+ if n, _ := unix.Read(fd, buf[:]); n != 0 {
+ return int32(buf[0])
+ }
+
+ return stdio.EOF
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xlstat64(t, pathname, statbuf)
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xstat64(t, pathname, statbuf)
+}
+
+// int chdir(const char *path);
+func Xchdir(t *TLS, path uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHDIR, path, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ return 0
+}
+
+var localtime time.Tm
+
+// struct tm *localtime(const time_t *timep);
+func Xlocaltime(_ *TLS, timep uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ localtime.Ftm_sec = int32(t.Second())
+ localtime.Ftm_min = int32(t.Minute())
+ localtime.Ftm_hour = int32(t.Hour())
+ localtime.Ftm_mday = int32(t.Day())
+ localtime.Ftm_mon = int32(t.Month() - 1)
+ localtime.Ftm_year = int32(t.Year() - 1900)
+ localtime.Ftm_wday = int32(t.Weekday())
+ localtime.Ftm_yday = int32(t.YearDay())
+ localtime.Ftm_isdst = Bool32(isTimeDST(t))
+ return uintptr(unsafe.Pointer(&localtime))
+}
+
+// struct tm *localtime_r(const time_t *timep, struct tm *result);
+func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*unix.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t))
+ return result
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ return Xopen64(t, pathname, flags, args)
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen64(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ var mode types.Mode_t
+ if args != 0 {
+ mode = (types.Mode_t)(VaUint32(&args))
+ }
+ fdcwd := fcntl.AT_FDCWD
+ n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), pathname, uintptr(flags), uintptr(mode), 0, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q %#x: %v", origin(1), GoString(pathname), flags, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, n)
+ // }
+ return int32(n)
+}
+
+// off_t lseek(int fd, off_t offset, int whence);
+func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ return types.Off_t(Xlseek64(t, fd, offset, whence))
+}
+
+func whenceStr(whence int32) string {
+ panic(todo(""))
+}
+
+var fsyncStatbuf stat.Stat
+
+// int fsync(int fd);
+func Xfsync(t *TLS, fd int32) int32 {
+ if noFsync {
+ // Simulate -DSQLITE_NO_SYNC for sqlite3 testfixture, see function full_sync in sqlite3.c
+ return Xfstat(t, fd, uintptr(unsafe.Pointer(&fsyncStatbuf)))
+ }
+
+ if _, _, err := unix.Syscall(unix.SYS_FSYNC, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// long sysconf(int name);
+func Xsysconf(t *TLS, name int32) long {
+ switch name {
+ case unistd.X_SC_PAGESIZE:
+ return long(unix.Getpagesize())
+ case unistd.X_SC_GETPW_R_SIZE_MAX:
+ return -1
+ case unistd.X_SC_GETGR_R_SIZE_MAX:
+ return -1
+ }
+
+ panic(todo("", name))
+}
+
+// int close(int fd);
+func Xclose(t *TLS, fd int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CLOSE, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// char *getcwd(char *buf, size_t size);
+func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr {
+ if _, err := unix.Getcwd((*RawMem)(unsafe.Pointer(buf))[:size:size]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return buf
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 {
+ return Xfstat64(t, fd, statbuf)
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 {
+ if err := unix.Ftruncate(int(fd), int64(length)); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 {
+ return Xfcntl64(t, fd, cmd, args)
+}
+
+// ssize_t read(int fd, void *buf, size_t count);
+func Xread(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READ, uintptr(fd), buf, uintptr(count))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+}
+
+// ssize_t write(int fd, const void *buf, size_t count);
+func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ const retry = 5
+ var err syscall.Errno
+ for i := 0; i < retry; i++ {
+ var n uintptr
+ switch n, _, err = unix.Syscall(unix.SYS_WRITE, uintptr(fd), buf, uintptr(count)); err {
+ case 0:
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+ case errno.EAGAIN:
+ // nop
+ }
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err)
+ // }
+ t.setErrno(err)
+ return -1
+}
+
+// int fchmod(int fd, mode_t mode);
+func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHMOD, uintptr(fd), uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#o: ok", origin(1), fd, mode)
+ // }
+ return 0
+}
+
+// int fchown(int fd, uid_t owner, gid_t group);
+func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t geteuid(void);
+func Xgeteuid(t *TLS) types.Uid_t {
+ n, _, _ := unix.Syscall(unix.SYS_GETEUID, 0, 0, 0)
+ return types.Uid_t(n)
+}
+
+// int munmap(void *addr, size_t length);
+func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int gettimeofday(struct timeval *tv, struct timezone *tz);
+func Xgettimeofday(t *TLS, tv, tz uintptr) int32 {
+ if tz != 0 {
+ panic(todo(""))
+ }
+
+ var tvs unix.Timeval
+ err := unix.Gettimeofday(&tvs)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs
+ return 0
+}
+
+// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+func Xgetsockopt(t *TLS, sockfd, level, optname int32, optval, optlen uintptr) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+func Xsetsockopt(t *TLS, sockfd, level, optname int32, optval uintptr, optlen socket.Socklen_t) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_SETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, uintptr(optlen), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int ioctl(int fd, unsigned long request, ...);
+func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 {
+ var argp uintptr
+ if va != 0 {
+ argp = VaUintptr(&va)
+ }
+ n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetsockname(t *TLS, sockfd int32, addr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETSOCKNAME, uintptr(sockfd), addr, addrlen); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v: %v", origin(1), sockfd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
+func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 {
+ n, err := unix.Select(
+ int(nfds),
+ (*unix.FdSet)(unsafe.Pointer(readfds)),
+ (*unix.FdSet)(unsafe.Pointer(writefds)),
+ (*unix.FdSet)(unsafe.Pointer(exceptfds)),
+ (*unix.Timeval)(unsafe.Pointer(timeout)),
+ )
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int mkfifo(const char *pathname, mode_t mode);
+func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ panic(todo(""))
+}
+
+// mode_t umask(mode_t mask);
+func Xumask(t *TLS, mask types.Mode_t) types.Mode_t {
+ n, _, _ := unix.Syscall(unix.SYS_UMASK, uintptr(mask), 0, 0)
+ return types.Mode_t(n)
+}
+
+// int execvp(const char *file, char *const argv[]);
+func Xexecvp(t *TLS, file, argv uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// pid_t waitpid(pid_t pid, int *wstatus, int options);
+func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t {
+ n, _, err := unix.Syscall6(unix.SYS_WAIT4, uintptr(pid), wstatus, uintptr(optname), 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Pid_t(n)
+}
+
+// int uname(struct utsname *buf);
+func Xuname(t *TLS, buf uintptr) int32 {
+ if err := unix.Uname((*unix.Utsname)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+func Xrecv(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_RECVFROM, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+func Xsend(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_SENDTO, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// int shutdown(int sockfd, int how);
+func Xshutdown(t *TLS, sockfd, how int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetpeername(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETPEERNAME, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int socket(int domain, int type, int protocol);
+func Xsocket(t *TLS, domain, type1, protocol int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_SOCKET, uintptr(domain), uintptr(type1), uintptr(protocol))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xbind(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_BIND, uintptr(sockfd), addr, uintptr(addrlen))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xconnect(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CONNECT, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int listen(int sockfd, int backlog);
+func Xlisten(t *TLS, sockfd, backlog int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LISTEN, uintptr(sockfd), uintptr(backlog), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xaccept(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ n, _, err := unix.Syscall6(unix.SYS_ACCEPT4, uintptr(sockfd), addr, uintptr(addrlen), 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xgetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xsetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t getuid(void);
+func Xgetuid(t *TLS) types.Uid_t {
+ return types.Uid_t(os.Getuid())
+}
+
+// pid_t getpid(void);
+func Xgetpid(t *TLS) int32 {
+ return int32(os.Getpid())
+}
+
+// int system(const char *command);
+func Xsystem(t *TLS, command uintptr) int32 {
+ s := GoString(command)
+ if command == 0 {
+ panic(todo(""))
+ }
+
+ cmd := exec.Command("sh", "-c", s)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ ps := err.(*exec.ExitError)
+ return int32(ps.ExitCode())
+ }
+
+ return 0
+}
+
+// int setvbuf(FILE *stream, char *buf, int mode, size_t size);
+func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 {
+ return 0 //TODO
+}
+
+// int raise(int sig);
+func Xraise(t *TLS, sig int32) int32 {
+ panic(todo(""))
+}
+
+// int backtrace(void **buffer, int size);
+func Xbacktrace(t *TLS, buf uintptr, size int32) int32 {
+ panic(todo(""))
+}
+
+// void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) {
+ panic(todo(""))
+}
+
+// int fileno(FILE *stream);
+func Xfileno(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err)
+ return p
+}
+
+func ftsentClose(t *TLS, p uintptr) {
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path)
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp)
+}
+
+type ftstream struct {
+ s []uintptr
+ x int
+}
+
+func (f *ftstream) close(t *TLS) {
+ for _, p := range f.s {
+ ftsentClose(t, p)
+ Xfree(t, p)
+ }
+ *f = ftstream{}
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ return Xfts64_open(t, path_argv, options, compar)
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ f := &ftstream{}
+
+ var walk func(string)
+ walk = func(path string) {
+ var fi os.FileInfo
+ var err error
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ fi, err = os.Stat(path)
+ case options&fts.FTS_PHYSICAL != 0:
+ fi, err = os.Lstat(path)
+ default:
+ panic(todo(""))
+ }
+
+ if err != nil {
+ return
+ }
+
+ var statp *unix.Stat_t
+ if options&fts.FTS_NOSTAT == 0 {
+ var stat unix.Stat_t
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ if err := unix.Stat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ case options&fts.FTS_PHYSICAL != 0:
+ if err := unix.Lstat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ default:
+ panic(todo(""))
+ }
+
+ statp = &stat
+ }
+
+ out:
+ switch {
+ case fi.IsDir():
+ f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0))
+ g, err := os.Open(path)
+ switch x := err.(type) {
+ case nil:
+ // ok
+ case *os.PathError:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES))
+ break out
+ default:
+ panic(todo("%q: %v %T", path, x, x))
+ }
+
+ names, err := g.Readdirnames(-1)
+ g.Close()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ for _, name := range names {
+ walk(path + "/" + name)
+ if f == nil {
+ break out
+ }
+ }
+
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0))
+ default:
+ info := fts.FTS_F
+ if fi.Mode()&os.ModeSymlink != 0 {
+ info = fts.FTS_SL
+ }
+ switch {
+ case statp != nil:
+ f.s = append(f.s, newCFtsent(t, info, path, statp, 0))
+ case options&fts.FTS_NOSTAT != 0:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0))
+ default:
+ panic(todo(""))
+ }
+ }
+ }
+
+ for {
+ p := *(*uintptr)(unsafe.Pointer(path_argv))
+ if p == 0 {
+ if f == nil {
+ return 0
+ }
+
+ if compar != 0 {
+ panic(todo(""))
+ }
+
+ return addObject(f)
+ }
+
+ walk(GoString(p))
+ path_argv += unsafe.Sizeof(uintptr(0))
+ }
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts_read(t *TLS, ftsp uintptr) uintptr {
+ return Xfts64_read(t, ftsp)
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts64_read(t *TLS, ftsp uintptr) uintptr {
+ f := getObject(ftsp).(*ftstream)
+ if f.x == len(f.s) {
+ t.setErrno(0)
+ return 0
+ }
+
+ r := f.s[f.x]
+ if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 {
+ t.setErrno(e)
+ }
+ f.x++
+ return r
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts_close(t *TLS, ftsp uintptr) int32 {
+ return Xfts64_close(t, ftsp)
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts64_close(t *TLS, ftsp uintptr) int32 {
+ getObject(ftsp).(*ftstream).close(t)
+ removeObject(ftsp)
+ return 0
+}
+
+// void tzset (void);
+func Xtzset(t *TLS) {
+ //TODO
+}
+
+var strerrorBuf [100]byte
+
+// char *strerror(int errnum);
+func Xstrerror(t *TLS, errnum int32) uintptr {
+ if dmesgs {
+ dmesg("%v: %v\n%s", origin(1), errnum, debug.Stack())
+ }
+ copy(strerrorBuf[:], fmt.Sprintf("strerror(%d)\x00", errnum))
+ return uintptr(unsafe.Pointer(&strerrorBuf[0]))
+}
+
+// void *dlopen(const char *filename, int flags);
+func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr {
+ panic(todo(""))
+}
+
+// char *dlerror(void);
+func Xdlerror(t *TLS) uintptr {
+ panic(todo(""))
+}
+
+// int dlclose(void *handle);
+func Xdlclose(t *TLS, handle uintptr) int32 {
+ panic(todo(""))
+}
+
+// void *dlsym(void *handle, const char *symbol);
+func Xdlsym(t *TLS, handle, symbol uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void perror(const char *s);
+func Xperror(t *TLS, s uintptr) {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func Xpclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+var gai_strerrorBuf [100]byte
+
+// const char *gai_strerror(int errcode);
+func Xgai_strerror(t *TLS, errcode int32) uintptr {
+ copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode))
+ return uintptr(unsafe.Pointer(&gai_strerrorBuf))
+}
+
+// int tcgetattr(int fd, struct termios *termios_p);
+func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
+func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// speed_t cfgetospeed(const struct termios *termios_p);
+func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t {
+ panic(todo(""))
+}
+
+// int cfsetospeed(struct termios *termios_p, speed_t speed);
+func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// int cfsetispeed(struct termios *termios_p, speed_t speed);
+func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// pid_t fork(void);
+func Xfork(t *TLS) int32 {
+ t.setErrno(errno.ENOSYS)
+ return -1
+}
+
+var emptyStr = [1]byte{}
+
+// char *setlocale(int category, const char *locale);
+func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// char *nl_langinfo(nl_item item);
+func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// FILE *popen(const char *command, const char *type);
+func Xpopen(t *TLS, command, type1 uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *realpath(const char *path, char *resolved_path);
+func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr {
+ s, err := filepath.EvalSymlinks(GoString(path))
+ if err != nil {
+ if os.IsNotExist(err) {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(path), err)
+ // }
+ t.setErrno(errno.ENOENT)
+ return 0
+ }
+
+ panic(todo("", err))
+ }
+
+ if resolved_path == 0 {
+ panic(todo(""))
+ }
+
+ if len(s) >= limits.PATH_MAX {
+ s = s[:limits.PATH_MAX-1]
+ }
+
+ copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s)
+ (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0
+ return resolved_path
+}
+
+// struct tm *gmtime_r(const time_t *timep, struct tm *result);
+func Xgmtime_r(t *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *inet_ntoa(struct in_addr in);
+func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func X__ccgo_in6addr_anyp(t *TLS) uintptr {
+ return uintptr(unsafe.Pointer(&in6_addr_any))
+}
+
+func Xabort(t *TLS) {
+ if dmesgs {
+ dmesg("%v:", origin(1))
+ }
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(signal.Sigaction{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ (*signal.Sigaction)(unsafe.Pointer(p)).F__sigaction_u.F__sa_handler = signal.SIG_DFL
+ Xsigaction(t, signal.SIGABRT, p, 0)
+ Xfree(t, p)
+ unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT))
+ panic(todo("unrechable"))
+}
+
+// int fflush(FILE *stream);
+func Xfflush(t *TLS, stream uintptr) int32 {
+ return 0 //TODO
+}
+
+// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_READ, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// int fclose(FILE *stream);
+func Xfclose(t *TLS, stream uintptr) int32 {
+ return file(stream).close(t)
+}
+
+// int fputc(int c, FILE *stream);
+func Xfputc(t *TLS, c int32, stream uintptr) int32 {
+ if _, err := fwrite(file(stream).fd(), []byte{byte(c)}); err != nil {
+ return stdio.EOF
+ }
+
+ return int32(byte(c))
+}
+
+// int fseek(FILE *stream, long offset, int whence);
+func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 {
+ if n := Xlseek(t, int32(file(stream).fd()), types.Off_t(offset), whence); n < 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), file(stream).fd(), offset, whenceStr(whence), n)
+ // }
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), file(stream).fd(), offset, whenceStr(whence))
+ // }
+ return 0
+}
+
+// long ftell(FILE *stream);
+func Xftell(t *TLS, stream uintptr) long {
+ n := Xlseek(t, file(stream).fd(), 0, stdio.SEEK_CUR)
+ if n < 0 {
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, n %#x: ok %#x", origin(1), file(stream).fd(), n, long(n))
+ // }
+ return long(n)
+}
+
+// int ferror(FILE *stream);
+func Xferror(t *TLS, stream uintptr) int32 {
+ return Bool32(file(stream).err())
+}
+
+// int ungetc(int c, FILE *stream);
+func Xungetc(t *TLS, c int32, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fscanf(FILE *stream, const char *format, ...);
+func Xfscanf(t *TLS, stream, format, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fputs(const char *s, FILE *stream);
+func Xfputs(t *TLS, s, stream uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), s, uintptr(Xstrlen(t, s))); err != 0 {
+ return -1
+ }
+
+ return 0
+}
+
+var getservbynameStaticResult netdb.Servent
+
+// struct servent *getservbyname(const char *name, const char *proto);
+func Xgetservbyname(t *TLS, name, proto uintptr) uintptr {
+ var protoent *gonetdb.Protoent
+ if proto != 0 {
+ protoent = gonetdb.GetProtoByName(GoString(proto))
+ }
+ servent := gonetdb.GetServByName(GoString(name), protoent)
+ if servent == nil {
+ // if dmesgs {
+ // dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent)
+ // }
+ return 0
+ }
+
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name)
+ if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 {
+ for {
+ p := *(*uintptr)(unsafe.Pointer(v))
+ if p == 0 {
+ break
+ }
+
+ Xfree(t, p)
+ v += unsafe.Sizeof(uintptr(0))
+ }
+ Xfree(t, v)
+ }
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto)
+ cname, err := CString(servent.Name)
+ if err != nil {
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+
+ var protoname uintptr
+ if protoent != nil {
+ if protoname, err = CString(protoent.Name); err != nil {
+ Xfree(t, cname)
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ }
+ var a []uintptr
+ for _, v := range servent.Aliases {
+ cs, err := CString(v)
+ if err != nil {
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ return 0
+ }
+
+ a = append(a, cs)
+ }
+ v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0))))
+ if v == 0 {
+ Xfree(t, cname)
+ Xfree(t, protoname)
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ for _, p := range a {
+ *(*uintptr)(unsafe.Pointer(v)) = p
+ v += unsafe.Sizeof(uintptr(0))
+ }
+
+ getservbynameStaticResult = netdb.Servent{
+ Fs_name: cname,
+ Fs_aliases: v,
+ Fs_port: int32(servent.Port),
+ Fs_proto: protoname,
+ }
+ return uintptr(unsafe.Pointer(&getservbynameStaticResult))
+}
+
+func Xreaddir64(t *TLS, dir uintptr) uintptr {
+ return Xreaddir(t, dir)
+}
+
+func __syscall(r, _ uintptr, errno syscall.Errno) long {
+ if errno != 0 {
+ return long(-errno)
+ }
+
+ return long(r)
+}
+
+func X__syscall1(t *TLS, trap, p1 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0))
+}
+
+func X__syscall3(t *TLS, trap, p1, p2, p3 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3)))
+}
+
+func X__syscall4(t *TLS, trap, p1, p2, p3, p4 long) long {
+ return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0))
+}
+
+func fcntlCmdStr(cmd int32) string {
+ switch cmd {
+ case fcntl.F_GETOWN:
+ return "F_GETOWN"
+ case fcntl.F_SETLK:
+ return "F_SETLK"
+ case fcntl.F_GETLK:
+ return "F_GETLK"
+ case fcntl.F_SETFD:
+ return "F_SETFD"
+ case fcntl.F_GETFD:
+ return "F_GETFD"
+ default:
+ return fmt.Sprintf("cmd(%d)", cmd)
+ }
+}
+
+// int setenv(const char *name, const char *value, int overwrite);
+func Xsetenv(t *TLS, name, value uintptr, overwrite int32) int32 {
+ panic(todo(""))
+}
+
+// int unsetenv(const char *name);
+func Xunsetenv(t *TLS, name uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pause(void);
+func Xpause(t *TLS) int32 {
+ panic(todo(""))
+}
+
+// ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
+func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t {
+ panic(todo(""))
+}
+
+// int __isoc99_sscanf(const char *str, const char *format, ...);
+func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 {
+ r := Xsscanf(t, str, format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// void __assert(const char * func, const char * file, int line, const char *expr) __dead2;
+func X__assert(t *TLS, fn, file uintptr, line int32, expr uintptr) {
+ X__assert_fail(t, expr, file, uint32(line), fn)
+}
+
+// include/stdio.h:456:int __swbuf(int, FILE *);
+func X__swbuf(t *TLS, n int32, file uintptr) int32 {
+ return Xfputc(t, n, file) //TODO improve performance, use a real buffer.
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if err := unix.Rmdir(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// struct dirent *readdir(DIR *dirp);
+func Xreaddir(t *TLS, dir uintptr) uintptr {
+ if (*darwinDir)(unsafe.Pointer(dir)).eof {
+ return 0
+ }
+
+ if (*darwinDir)(unsafe.Pointer(dir)).l == (*darwinDir)(unsafe.Pointer(dir)).h {
+ n, err := unix.Getdirentries((*darwinDir)(unsafe.Pointer(dir)).fd, (*darwinDir)(unsafe.Pointer(dir)).buf[:], nil)
+ // trc("must read: %v %v", n, err)
+ if n == 0 {
+ if err != nil && err != io.EOF {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ }
+ (*darwinDir)(unsafe.Pointer(dir)).eof = true
+ return 0
+ }
+
+ (*darwinDir)(unsafe.Pointer(dir)).l = 0
+ (*darwinDir)(unsafe.Pointer(dir)).h = n
+ // trc("new l %v, h %v", (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h)
+ }
+ de := dir + unsafe.Offsetof(darwinDir{}.buf) + uintptr((*darwinDir)(unsafe.Pointer(dir)).l)
+ (*darwinDir)(unsafe.Pointer(dir)).l += int((*unix.Dirent)(unsafe.Pointer(de)).Reclen)
+ return de
+}
+
+type darwinDir struct {
+ buf [4096]byte
+ fd int
+ h int
+ l int
+
+ eof bool
+}
+
+// int sscanf(const char *str, const char *format, ...);
+func Xsscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// int * __error(void);
+func X__error(t *TLS) uintptr {
+ return t.errnop
+}
+
+func Xclosedir(t *TLS, dir uintptr) int32 {
+ r := Xclose(t, int32((*darwinDir)(unsafe.Pointer(dir)).fd))
+ Xfree(t, dir)
+ return r
+}
+
+// int __xuname(int namesize, void *namebuf)
+func X__xuname(t *TLS, namesize int32, namebuf uintptr) int32 {
+ return Xuname(t, namebuf)
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ var a [2]int
+ if err := syscall.Pipe(a[:]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*[2]int32)(unsafe.Pointer(pipefd)) = [2]int32{int32(a[0]), int32(a[1])}
+ if dmesgs {
+ dmesg("%v: %v ok", origin(1), a)
+ }
+ return 0
+}
+
+// char *inet_ntoa(struct in_addr in);
+func X__inet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ // Cannot avoid the syscall here, addr sometimes matter.
+ data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+const PTHREAD_MUTEX_DEFAULT = 0
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return (int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3)))
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return (*(*int32)(unsafe.Pointer((m /* &.__u */ /* &.__i */))) & 15)
+}
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4))
+}
+
+func Xpthread_attr_init(t *TLS, pAttr uintptr) int32 {
+ *(*pthread.Pthread_attr_t)(unsafe.Pointer(pAttr)) = pthread.Pthread_attr_t(0)
+ return 0
+}
+
+// The pthread_mutex_init() function shall initialize the mutex referenced by
+// mutex with attributes specified by attr. If attr is NULL, the default mutex
+// attributes are used; the effect shall be the same as passing the address of
+// a default mutex attributes object. Upon successful initialization, the state
+// of the mutex becomes initialized and unlocked.
+//
+// If successful, the pthread_mutex_destroy() and pthread_mutex_init()
+// functions shall return zero; otherwise, an error number shall be returned to
+// indicate the error.
+//
+// int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);
+func Xpthread_mutex_init(t *TLS, pMutex, pAttr uintptr) int32 {
+ typ := PTHREAD_MUTEX_DEFAULT
+ if pAttr != 0 {
+ typ = int(X__ccgo_pthreadMutexattrGettype(t, pAttr))
+ }
+ mutexesMu.Lock()
+
+ defer mutexesMu.Unlock()
+
+ mutexes[pMutex] = newMutex(typ)
+ return 0
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4))
+ return 0
+}
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4)) = state
+ return 0
+}
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1))
+ return 0
+}
+
+// int uuid_parse( char *in, uuid_t uu);
+func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 {
+ r, err := guuid.Parse(GoString(in))
+ if err != nil {
+ return -1
+ }
+
+ copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:])
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_freebsd_386.go b/vendor/modernc.org/libc/libc_freebsd_386.go
new file mode 100644
index 00000000..f34bf2e2
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_freebsd_386.go
@@ -0,0 +1,649 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "syscall"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/time"
+ "modernc.org/libc/utime"
+)
+
+type (
+ long = int32
+ ulong = uint32
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) time.Time_t {
+ panic(todo(""))
+ // n := time.Now().UTC().Unix()
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen size_t, serv uintptr, servlen size_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(347)
+ //TODO defer tls.Free(347)
+
+ //TODO // var ptr [78]int8 at bp, 78
+
+ //TODO // var buf [256]int8 at bp+78, 256
+
+ //TODO // var num [13]int8 at bp+334, 13
+
+ //TODO var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ //TODO var a uintptr
+ //TODO var scopeid uint32
+
+ //TODO switch af {
+ //TODO case 2:
+ //TODO a = (sa1 + 4 /* &.sin_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO mkptr4(tls, bp /* &ptr[0] */, a)
+ //TODO scopeid = uint32(0)
+ //TODO break
+ //TODO case 10:
+ //TODO a = (sa1 + 8 /* &.sin6_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 {
+ //TODO mkptr6(tls, bp /* &ptr[0] */, a)
+ //TODO } else {
+ //TODO mkptr4(tls, bp /* &ptr[0] */, (a + uintptr(12)))
+ //TODO }
+ //TODO scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ //TODO break
+ //TODO default:
+ //TODO return -6
+ //TODO }
+
+ //TODO if (node != 0) && (nodelen != 0) {
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x01) != 0) {
+ //TODO reverse_hosts(tls, bp+78 /* &buf[0] */, a, scopeid, af)
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) && !((flags & 0x01) != 0) {
+ //TODO Xabort(tls) //TODO-
+ //TODO // unsigned char query[18+PTR_MAX], reply[512];
+ //TODO // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ //TODO // 0, 0, 0, query, sizeof query);
+ //TODO // query[3] = 0; /* don't need AD flag */
+ //TODO // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ //TODO // buf[0] = 0;
+ //TODO // if (rlen > 0)
+ //TODO // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) {
+ //TODO if (flags & 0x08) != 0 {
+ //TODO return -2
+ //TODO }
+ //TODO Xinet_ntop(tls, af, a, bp+78 /* &buf[0] */, uint32(unsafe.Sizeof([256]int8{})))
+ //TODO if scopeid != 0 {
+ //TODO Xabort(tls) //TODO-
+ //TODO // char *p = 0, tmp[IF_NAMESIZE+1];
+ //TODO // if (!(flags & NI_NUMERICSCOPE) &&
+ //TODO // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ //TODO // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ //TODO // p = if_indextoname(scopeid, tmp+1);
+ //TODO // if (!p)
+ //TODO // p = itoa(num, scopeid);
+ //TODO // *--p = '%';
+ //TODO // strcat(buf, p);
+ //TODO }
+ //TODO }
+ //TODO if Xstrlen(tls, bp+78 /* &buf[0] */) >= size_t(nodelen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, node, bp+78 /* &buf[0] */)
+ //TODO }
+
+ //TODO if (serv != 0) && (servlen != 0) {
+ //TODO var p uintptr = bp + 78 /* buf */
+ //TODO var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x02) != 0) {
+ //TODO reverse_services(tls, bp+78 /* &buf[0] */, port, (flags & 0x10))
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ //TODO p = itoa(tls, bp+334 /* &num[0] */, uint32(port))
+ //TODO }
+ //TODO if Xstrlen(tls, p) >= size_t(servlen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, serv, p)
+ //TODO }
+
+ //TODO return 0
+}
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(28)
+ //TODO defer tls.Free(28)
+
+ //TODO //TODO union {
+ //TODO //TODO struct sockaddr_in sin;
+ //TODO //TODO struct sockaddr_in6 sin6;
+ //TODO //TODO } sa = { .sin.sin_family = af };
+ //TODO *(*struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO })(unsafe.Pointer(bp /* sa1 */)) = struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO }{} //TODO-
+ //TODO (*sockaddr_in)(unsafe.Pointer(bp /* &sa1 */)).sin_family = sa_family_t(af) //TODO-
+ //TODO var sl socklen_t
+ //TODO if af == 10 {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ //TODO } else {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ //TODO }
+ //TODO var i int32
+
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ //TODO // Load address argument into sockaddr structure
+ //TODO if (af == 10) && (l == socklen_t(16)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin6 */ + 8 /* &.sin6_addr */), a, uint64(16))
+ //TODO } else if (af == 2) && (l == socklen_t(4)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin */ + 4 /* &.sin_addr */), a, uint64(4))
+ //TODO } else {
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return 22
+ //TODO }
+
+ //TODO // Align buffer and check for space for pointers and ip address
+ //TODO i = (int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))))
+ //TODO if !(i != 0) {
+ //TODO i = int32(unsafe.Sizeof(uintptr(0)))
+ //TODO }
+ //TODO if buflen <= (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) {
+ //TODO return 34
+ //TODO }
+ //TODO buf += (uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i)))
+ //TODO buflen = buflen - (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l))
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+ //TODO (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ //TODO Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ //TODO buf += uintptr(l)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ //TODO switch Xgetnameinfo(tls, bp /* &sa1 */, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ //TODO case -3:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 2
+ //TODO return 11
+ //TODO case -12:
+ //TODO return 34
+ //TODO default:
+ //TODO fallthrough
+ //TODO case -10:
+ //TODO fallthrough
+ //TODO case -11:
+ //TODO fallthrough
+ //TODO case -4:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ //TODO case 0:
+ //TODO break
+ //TODO }
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ //TODO (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ //TODO (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = h
+ //TODO return 0
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+ var statp uintptr
+ if stat != nil {
+ statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+ if statp == 0 {
+ panic("OOM")
+ }
+
+ *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+ }
+ csp, errx := CString(path)
+ if errx != nil {
+ panic("OOM")
+ }
+
+ return &fts.FTSENT{
+ Ffts_info: int32(info),
+ Ffts_path: csp,
+ Ffts_pathlen: uint32(len(path)),
+ Ffts_statp: statp,
+ Ffts_errno: int32(err),
+ }
+}
+
+// DIR *opendir(const char *name);
+func Xopendir(t *TLS, name uintptr) uintptr {
+ p := Xmalloc(t, uint32(unsafe.Sizeof(darwinDir{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0))
+ if fd < 0 {
+ if dmesgs {
+ dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd)
+ }
+ Xfree(t, p)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ (*darwinDir)(unsafe.Pointer(p)).fd = fd
+ (*darwinDir)(unsafe.Pointer(p)).h = 0
+ (*darwinDir)(unsafe.Pointer(p)).l = 0
+ (*darwinDir)(unsafe.Pointer(p)).eof = false
+ return p
+}
+
+func X__srget(t *TLS, stream uintptr) int32 { return Xgetc(t, stream) }
+
+// int chflags(const char *path, u_int flags);
+func Xchflags(t *TLS, path uintptr, flags uint32) int32 {
+ if err := unix.Chflags(GoString(path), int(flags)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_freebsd_amd64.go b/vendor/modernc.org/libc/libc_freebsd_amd64.go
new file mode 100644
index 00000000..48f7fd78
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_freebsd_amd64.go
@@ -0,0 +1,647 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "syscall"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/time"
+ "modernc.org/libc/utime"
+)
+
+type (
+ long = int64
+ ulong = uint64
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) time.Time_t {
+ panic(todo(""))
+ // n := time.Now().UTC().Unix()
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen size_t, serv uintptr, servlen size_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(347)
+ //TODO defer tls.Free(347)
+
+ //TODO // var ptr [78]int8 at bp, 78
+
+ //TODO // var buf [256]int8 at bp+78, 256
+
+ //TODO // var num [13]int8 at bp+334, 13
+
+ //TODO var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ //TODO var a uintptr
+ //TODO var scopeid uint32
+
+ //TODO switch af {
+ //TODO case 2:
+ //TODO a = (sa1 + 4 /* &.sin_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO mkptr4(tls, bp /* &ptr[0] */, a)
+ //TODO scopeid = uint32(0)
+ //TODO break
+ //TODO case 10:
+ //TODO a = (sa1 + 8 /* &.sin6_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 {
+ //TODO mkptr6(tls, bp /* &ptr[0] */, a)
+ //TODO } else {
+ //TODO mkptr4(tls, bp /* &ptr[0] */, (a + uintptr(12)))
+ //TODO }
+ //TODO scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ //TODO break
+ //TODO default:
+ //TODO return -6
+ //TODO }
+
+ //TODO if (node != 0) && (nodelen != 0) {
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x01) != 0) {
+ //TODO reverse_hosts(tls, bp+78 /* &buf[0] */, a, scopeid, af)
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) && !((flags & 0x01) != 0) {
+ //TODO Xabort(tls) //TODO-
+ //TODO // unsigned char query[18+PTR_MAX], reply[512];
+ //TODO // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ //TODO // 0, 0, 0, query, sizeof query);
+ //TODO // query[3] = 0; /* don't need AD flag */
+ //TODO // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ //TODO // buf[0] = 0;
+ //TODO // if (rlen > 0)
+ //TODO // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) {
+ //TODO if (flags & 0x08) != 0 {
+ //TODO return -2
+ //TODO }
+ //TODO Xinet_ntop(tls, af, a, bp+78 /* &buf[0] */, uint32(unsafe.Sizeof([256]int8{})))
+ //TODO if scopeid != 0 {
+ //TODO Xabort(tls) //TODO-
+ //TODO // char *p = 0, tmp[IF_NAMESIZE+1];
+ //TODO // if (!(flags & NI_NUMERICSCOPE) &&
+ //TODO // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ //TODO // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ //TODO // p = if_indextoname(scopeid, tmp+1);
+ //TODO // if (!p)
+ //TODO // p = itoa(num, scopeid);
+ //TODO // *--p = '%';
+ //TODO // strcat(buf, p);
+ //TODO }
+ //TODO }
+ //TODO if Xstrlen(tls, bp+78 /* &buf[0] */) >= size_t(nodelen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, node, bp+78 /* &buf[0] */)
+ //TODO }
+
+ //TODO if (serv != 0) && (servlen != 0) {
+ //TODO var p uintptr = bp + 78 /* buf */
+ //TODO var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x02) != 0) {
+ //TODO reverse_services(tls, bp+78 /* &buf[0] */, port, (flags & 0x10))
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ //TODO p = itoa(tls, bp+334 /* &num[0] */, uint32(port))
+ //TODO }
+ //TODO if Xstrlen(tls, p) >= size_t(servlen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, serv, p)
+ //TODO }
+
+ //TODO return 0
+}
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(28)
+ //TODO defer tls.Free(28)
+
+ //TODO //TODO union {
+ //TODO //TODO struct sockaddr_in sin;
+ //TODO //TODO struct sockaddr_in6 sin6;
+ //TODO //TODO } sa = { .sin.sin_family = af };
+ //TODO *(*struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO })(unsafe.Pointer(bp /* sa1 */)) = struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO }{} //TODO-
+ //TODO (*sockaddr_in)(unsafe.Pointer(bp /* &sa1 */)).sin_family = sa_family_t(af) //TODO-
+ //TODO var sl socklen_t
+ //TODO if af == 10 {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ //TODO } else {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ //TODO }
+ //TODO var i int32
+
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ //TODO // Load address argument into sockaddr structure
+ //TODO if (af == 10) && (l == socklen_t(16)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin6 */ + 8 /* &.sin6_addr */), a, uint64(16))
+ //TODO } else if (af == 2) && (l == socklen_t(4)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin */ + 4 /* &.sin_addr */), a, uint64(4))
+ //TODO } else {
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return 22
+ //TODO }
+
+ //TODO // Align buffer and check for space for pointers and ip address
+ //TODO i = (int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))))
+ //TODO if !(i != 0) {
+ //TODO i = int32(unsafe.Sizeof(uintptr(0)))
+ //TODO }
+ //TODO if buflen <= (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) {
+ //TODO return 34
+ //TODO }
+ //TODO buf += (uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i)))
+ //TODO buflen = buflen - (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l))
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+ //TODO (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ //TODO Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ //TODO buf += uintptr(l)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ //TODO switch Xgetnameinfo(tls, bp /* &sa1 */, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ //TODO case -3:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 2
+ //TODO return 11
+ //TODO case -12:
+ //TODO return 34
+ //TODO default:
+ //TODO fallthrough
+ //TODO case -10:
+ //TODO fallthrough
+ //TODO case -11:
+ //TODO fallthrough
+ //TODO case -4:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ //TODO case 0:
+ //TODO break
+ //TODO }
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ //TODO (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ //TODO (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = h
+ //TODO return 0
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+ var statp uintptr
+ if stat != nil {
+ statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+ if statp == 0 {
+ panic("OOM")
+ }
+
+ *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+ }
+ csp, errx := CString(path)
+ if errx != nil {
+ panic("OOM")
+ }
+
+ return &fts.FTSENT{
+ Ffts_info: int32(info),
+ Ffts_path: csp,
+ Ffts_pathlen: uint64(len(path)),
+ Ffts_statp: statp,
+ Ffts_errno: int32(err),
+ }
+}
+
+// DIR *opendir(const char *name);
+func Xopendir(t *TLS, name uintptr) uintptr {
+ p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0))
+ if fd < 0 {
+ if dmesgs {
+ dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd)
+ }
+ Xfree(t, p)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ (*darwinDir)(unsafe.Pointer(p)).fd = fd
+ (*darwinDir)(unsafe.Pointer(p)).h = 0
+ (*darwinDir)(unsafe.Pointer(p)).l = 0
+ (*darwinDir)(unsafe.Pointer(p)).eof = false
+ return p
+}
+
+// int chflags(const char *path, u_int flags);
+func Xchflags(t *TLS, path uintptr, flags uint64) int32 {
+ if err := unix.Chflags(GoString(path), int(flags)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_linux.go b/vendor/modernc.org/libc/libc_linux.go
new file mode 100644
index 00000000..d594ab4a
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_linux.go
@@ -0,0 +1,1423 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "encoding/hex"
+ "fmt"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "runtime/debug"
+ "syscall"
+ "time"
+ "unsafe"
+
+ guuid "github.com/google/uuid"
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ gonetdb "modernc.org/libc/honnef.co/go/netdb"
+ "modernc.org/libc/langinfo"
+ "modernc.org/libc/limits"
+ "modernc.org/libc/netdb"
+ "modernc.org/libc/netinet/in"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/socket"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/termios"
+ ctime "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+ "modernc.org/libc/uuid/uuid"
+)
+
+var (
+ in6_addr_any in.In6_addr
+ _ = X__ctype_b_loc
+)
+
+type (
+ long = types.X__syscall_slong_t
+ ulong = types.X__syscall_ulong_t
+)
+
+type file uintptr
+
+func (f file) fd() int32 { return (*stdio.FILE)(unsafe.Pointer(f)).F_fileno }
+func (f file) setFd(fd int32) { (*stdio.FILE)(unsafe.Pointer(f)).F_fileno = fd }
+func (f file) err() bool { return (*stdio.FILE)(unsafe.Pointer(f)).F_flags2&stdio.X_IO_ERR_SEEN != 0 }
+func (f file) setErr() { (*stdio.FILE)(unsafe.Pointer(f)).F_flags2 |= stdio.X_IO_ERR_SEEN }
+
+func (f file) close(t *TLS) int32 {
+ r := Xclose(t, f.fd())
+ Xfree(t, uintptr(f))
+ if r < 0 {
+ return stdio.EOF
+ }
+ return 0
+}
+
+func newFile(t *TLS, fd int32) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(stdio.FILE{})))
+ if p == 0 {
+ return 0
+ }
+
+ file(p).setFd(fd)
+ return p
+}
+
+func fwrite(fd int32, b []byte) (int, error) {
+ if fd == unistd.STDOUT_FILENO {
+ return write(b)
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v: %s", origin(1), fd, b)
+ // }
+ return unix.Write(int(fd), b) //TODO use Xwrite
+}
+
+// int fprintf(FILE *stream, const char *format, ...);
+func Xfprintf(t *TLS, stream, format, args uintptr) int32 {
+ n, _ := fwrite((*stdio.FILE)(unsafe.Pointer(stream)).F_fileno, printf(format, args))
+ return int32(n)
+}
+
+// int usleep(useconds_t usec);
+func Xusleep(t *TLS, usec types.X__useconds_t) int32 {
+ time.Sleep(time.Microsecond * time.Duration(usec))
+ return 0
+}
+
+// int getrusage(int who, struct rusage *usage);
+func Xgetrusage(t *TLS, who int32, usage uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xlstat64(t, pathname, statbuf)
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xstat64(t, pathname, statbuf)
+}
+
+// int chdir(const char *path);
+func Xchdir(t *TLS, path uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHDIR, path, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ return 0
+}
+
+var localtime ctime.Tm
+
+// struct tm *localtime(const time_t *timep);
+func Xlocaltime(_ *TLS, timep uintptr) uintptr {
+ loc := time.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = time.FixedZone(zone, -off)
+ }
+ ut := *(*unix.Time_t)(unsafe.Pointer(timep))
+ t := time.Unix(int64(ut), 0).In(loc)
+ localtime.Ftm_sec = int32(t.Second())
+ localtime.Ftm_min = int32(t.Minute())
+ localtime.Ftm_hour = int32(t.Hour())
+ localtime.Ftm_mday = int32(t.Day())
+ localtime.Ftm_mon = int32(t.Month() - 1)
+ localtime.Ftm_year = int32(t.Year() - 1900)
+ localtime.Ftm_wday = int32(t.Weekday())
+ localtime.Ftm_yday = int32(t.YearDay())
+ localtime.Ftm_isdst = Bool32(isTimeDST(t))
+ return uintptr(unsafe.Pointer(&localtime))
+}
+
+// struct tm *localtime_r(const time_t *timep, struct tm *result);
+func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
+ loc := time.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = time.FixedZone(zone, -off)
+ }
+ ut := *(*unix.Time_t)(unsafe.Pointer(timep))
+ t := time.Unix(int64(ut), 0).In(loc)
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute())
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour())
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day())
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1)
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900)
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday())
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay())
+ (*ctime.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t))
+ return result
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ return Xopen64(t, pathname, flags, args)
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen64(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ //TODO- flags |= fcntl.O_LARGEFILE
+ var mode types.Mode_t
+ if args != 0 {
+ mode = (types.Mode_t)(VaUint32(&args))
+ }
+ fdcwd := fcntl.AT_FDCWD
+ n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), pathname, uintptr(flags|unix.O_LARGEFILE), uintptr(mode), 0, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q %#x: %v", origin(1), GoString(pathname), flags, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, n)
+ // }
+ return int32(n)
+}
+
+// off_t lseek(int fd, off_t offset, int whence);
+func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ return types.Off_t(Xlseek64(t, fd, offset, whence))
+}
+
+func whenceStr(whence int32) string {
+ switch whence {
+ case fcntl.SEEK_CUR:
+ return "SEEK_CUR"
+ case fcntl.SEEK_END:
+ return "SEEK_END"
+ case fcntl.SEEK_SET:
+ return "SEEK_SET"
+ default:
+ return fmt.Sprintf("whence(%d)", whence)
+ }
+}
+
+var fsyncStatbuf stat.Stat
+
+// int fsync(int fd);
+func Xfsync(t *TLS, fd int32) int32 {
+ if noFsync {
+ // Simulate -DSQLITE_NO_SYNC for sqlite3 testfixture, see function full_sync in sqlite3.c
+ return Xfstat(t, fd, uintptr(unsafe.Pointer(&fsyncStatbuf)))
+ }
+
+ if _, _, err := unix.Syscall(unix.SYS_FSYNC, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// long sysconf(int name);
+func Xsysconf(t *TLS, name int32) long {
+ switch name {
+ case unistd.X_SC_PAGESIZE:
+ return long(unix.Getpagesize())
+ case unistd.X_SC_GETPW_R_SIZE_MAX:
+ return -1
+ case unistd.X_SC_GETGR_R_SIZE_MAX:
+ return -1
+ }
+
+ panic(todo("", name))
+}
+
+// int close(int fd);
+func Xclose(t *TLS, fd int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CLOSE, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// char *getcwd(char *buf, size_t size);
+func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr {
+ n, _, err := unix.Syscall(unix.SYS_GETCWD, buf, uintptr(size), 0)
+ if err != 0 {
+ t.setErrno(err)
+ return 0
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(buf))
+ // }
+ return n
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 {
+ return Xfstat64(t, fd, statbuf)
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 {
+ return Xftruncate64(t, fd, length)
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 {
+ return Xfcntl64(t, fd, cmd, args)
+}
+
+// ssize_t read(int fd, void *buf, size_t count);
+func Xread(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READ, uintptr(fd), buf, uintptr(count))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+}
+
+// ssize_t write(int fd, const void *buf, size_t count);
+func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ const retry = 5
+ var err syscall.Errno
+ for i := 0; i < retry; i++ {
+ var n uintptr
+ switch n, _, err = unix.Syscall(unix.SYS_WRITE, uintptr(fd), buf, uintptr(count)); err {
+ case 0:
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+ case errno.EAGAIN:
+ // nop
+ }
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err)
+ // }
+ t.setErrno(err)
+ return -1
+}
+
+// int fchmod(int fd, mode_t mode);
+func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHMOD, uintptr(fd), uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#o: ok", origin(1), fd, mode)
+ // }
+ return 0
+}
+
+// int fchown(int fd, uid_t owner, gid_t group);
+func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t geteuid(void);
+func Xgeteuid(t *TLS) types.Uid_t {
+ n, _, _ := unix.Syscall(unix.SYS_GETEUID, 0, 0, 0)
+ return types.Uid_t(n)
+}
+
+// int munmap(void *addr, size_t length);
+func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int gettimeofday(struct timeval *tv, struct timezone *tz);
+func Xgettimeofday(t *TLS, tv, tz uintptr) int32 {
+ if tz != 0 {
+ panic(todo(""))
+ }
+
+ var tvs unix.Timeval
+ err := unix.Gettimeofday(&tvs)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs
+ return 0
+}
+
+// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+func Xgetsockopt(t *TLS, sockfd, level, optname int32, optval, optlen uintptr) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+func Xsetsockopt(t *TLS, sockfd, level, optname int32, optval uintptr, optlen socket.Socklen_t) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_SETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, uintptr(optlen), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int ioctl(int fd, unsigned long request, ...);
+func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 {
+ var argp uintptr
+ if va != 0 {
+ argp = VaUintptr(&va)
+ }
+ n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetsockname(t *TLS, sockfd int32, addr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETSOCKNAME, uintptr(sockfd), addr, addrlen); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v: %v", origin(1), sockfd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
+func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 {
+ n, err := unix.Select(
+ int(nfds),
+ (*unix.FdSet)(unsafe.Pointer(readfds)),
+ (*unix.FdSet)(unsafe.Pointer(writefds)),
+ (*unix.FdSet)(unsafe.Pointer(exceptfds)),
+ (*unix.Timeval)(unsafe.Pointer(timeout)),
+ )
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int mkfifo(const char *pathname, mode_t mode);
+func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkfifo(GoString(pathname), mode); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// mode_t umask(mode_t mask);
+func Xumask(t *TLS, mask types.Mode_t) types.Mode_t {
+ n, _, _ := unix.Syscall(unix.SYS_UMASK, uintptr(mask), 0, 0)
+ return types.Mode_t(n)
+}
+
+// int execvp(const char *file, char *const argv[]);
+func Xexecvp(t *TLS, file, argv uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// pid_t waitpid(pid_t pid, int *wstatus, int options);
+func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t {
+ n, _, err := unix.Syscall6(unix.SYS_WAIT4, uintptr(pid), wstatus, uintptr(optname), 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Pid_t(n)
+}
+
+// int uname(struct utsname *buf);
+func Xuname(t *TLS, buf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UNAME, buf, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+func Xrecv(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_RECVFROM, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+func Xsend(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_SENDTO, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// int shutdown(int sockfd, int how);
+func Xshutdown(t *TLS, sockfd, how int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetpeername(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETPEERNAME, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int socket(int domain, int type, int protocol);
+func Xsocket(t *TLS, domain, type1, protocol int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_SOCKET, uintptr(domain), uintptr(type1), uintptr(protocol))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xbind(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_BIND, uintptr(sockfd), addr, uintptr(addrlen))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xconnect(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CONNECT, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int listen(int sockfd, int backlog);
+func Xlisten(t *TLS, sockfd, backlog int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LISTEN, uintptr(sockfd), uintptr(backlog), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xaccept(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ n, _, err := unix.Syscall6(unix.SYS_ACCEPT4, uintptr(sockfd), addr, uintptr(addrlen), 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xgetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xsetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t getuid(void);
+func Xgetuid(t *TLS) types.Uid_t {
+ return types.Uid_t(os.Getuid())
+}
+
+// pid_t getpid(void);
+func Xgetpid(t *TLS) int32 {
+ return int32(os.Getpid())
+}
+
+// int system(const char *command);
+func Xsystem(t *TLS, command uintptr) int32 {
+ s := GoString(command)
+ if command == 0 {
+ panic(todo(""))
+ }
+
+ cmd := exec.Command("sh", "-c", s)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ ps := err.(*exec.ExitError)
+ return int32(ps.ExitCode())
+ }
+
+ return 0
+}
+
+// int setvbuf(FILE *stream, char *buf, int mode, size_t size);
+func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 {
+ return 0 //TODO
+}
+
+// int raise(int sig);
+func Xraise(t *TLS, sig int32) int32 {
+ panic(todo(""))
+}
+
+// int backtrace(void **buffer, int size);
+func Xbacktrace(t *TLS, buf uintptr, size int32) int32 {
+ panic(todo(""))
+}
+
+// void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) {
+ panic(todo(""))
+}
+
+// int fileno(FILE *stream);
+func Xfileno(t *TLS, stream uintptr) int32 {
+ if stream == 0 {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ if fd := (*stdio.FILE)(unsafe.Pointer(stream)).F_fileno; fd >= 0 {
+ return fd
+ }
+
+ t.setErrno(errno.EBADF)
+ return -1
+}
+
+func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+ var statp uintptr
+ if stat != nil {
+ statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+ if statp == 0 {
+ panic("OOM")
+ }
+
+ *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+ }
+ csp, errx := CString(path)
+ if errx != nil {
+ panic("OOM")
+ }
+
+ return &fts.FTSENT{
+ Ffts_info: uint16(info),
+ Ffts_path: csp,
+ Ffts_pathlen: uint16(len(path)),
+ Ffts_statp: statp,
+ Ffts_errno: int32(err),
+ }
+}
+
+func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err)
+ return p
+}
+
+func ftsentClose(t *TLS, p uintptr) {
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path)
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp)
+}
+
+type ftstream struct {
+ s []uintptr
+ x int
+}
+
+func (f *ftstream) close(t *TLS) {
+ for _, p := range f.s {
+ ftsentClose(t, p)
+ Xfree(t, p)
+ }
+ *f = ftstream{}
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ return Xfts64_open(t, path_argv, options, compar)
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ f := &ftstream{}
+
+ var walk func(string)
+ walk = func(path string) {
+ var fi os.FileInfo
+ var err error
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ fi, err = os.Stat(path)
+ case options&fts.FTS_PHYSICAL != 0:
+ fi, err = os.Lstat(path)
+ default:
+ panic(todo(""))
+ }
+
+ if err != nil {
+ return
+ }
+
+ var statp *unix.Stat_t
+ if options&fts.FTS_NOSTAT == 0 {
+ var stat unix.Stat_t
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ if err := unix.Stat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ case options&fts.FTS_PHYSICAL != 0:
+ if err := unix.Lstat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ default:
+ panic(todo(""))
+ }
+
+ statp = &stat
+ }
+
+ out:
+ switch {
+ case fi.IsDir():
+ f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0))
+ g, err := os.Open(path)
+ switch x := err.(type) {
+ case nil:
+ // ok
+ case *os.PathError:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES))
+ break out
+ default:
+ panic(todo("%q: %v %T", path, x, x))
+ }
+
+ names, err := g.Readdirnames(-1)
+ g.Close()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ for _, name := range names {
+ walk(path + "/" + name)
+ if f == nil {
+ break out
+ }
+ }
+
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0))
+ default:
+ info := fts.FTS_F
+ if fi.Mode()&os.ModeSymlink != 0 {
+ info = fts.FTS_SL
+ }
+ switch {
+ case statp != nil:
+ f.s = append(f.s, newCFtsent(t, info, path, statp, 0))
+ case options&fts.FTS_NOSTAT != 0:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0))
+ default:
+ panic(todo(""))
+ }
+ }
+ }
+
+ for {
+ p := *(*uintptr)(unsafe.Pointer(path_argv))
+ if p == 0 {
+ if f == nil {
+ return 0
+ }
+
+ if compar != 0 {
+ panic(todo(""))
+ }
+
+ return addObject(f)
+ }
+
+ walk(GoString(p))
+ path_argv += unsafe.Sizeof(uintptr(0))
+ }
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts_read(t *TLS, ftsp uintptr) uintptr {
+ return Xfts64_read(t, ftsp)
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts64_read(t *TLS, ftsp uintptr) uintptr {
+ f := getObject(ftsp).(*ftstream)
+ if f.x == len(f.s) {
+ t.setErrno(0)
+ return 0
+ }
+
+ r := f.s[f.x]
+ if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 {
+ t.setErrno(e)
+ }
+ f.x++
+ return r
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts_close(t *TLS, ftsp uintptr) int32 {
+ return Xfts64_close(t, ftsp)
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts64_close(t *TLS, ftsp uintptr) int32 {
+ getObject(ftsp).(*ftstream).close(t)
+ removeObject(ftsp)
+ return 0
+}
+
+// void tzset (void);
+func Xtzset(t *TLS) {
+ //TODO
+}
+
+var strerrorBuf [100]byte
+
+// char *strerror(int errnum);
+func Xstrerror(t *TLS, errnum int32) uintptr {
+ if dmesgs {
+ dmesg("%v: %v\n%s", origin(1), errnum, debug.Stack())
+ }
+ copy(strerrorBuf[:], fmt.Sprintf("strerror(%d)\x00", errnum))
+ return uintptr(unsafe.Pointer(&strerrorBuf[0]))
+}
+
+// void *dlopen(const char *filename, int flags);
+func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr {
+ panic(todo("%q", GoString(filename)))
+}
+
+// char *dlerror(void);
+func Xdlerror(t *TLS) uintptr {
+ panic(todo(""))
+}
+
+// int dlclose(void *handle);
+func Xdlclose(t *TLS, handle uintptr) int32 {
+ panic(todo(""))
+}
+
+// void *dlsym(void *handle, const char *symbol);
+func Xdlsym(t *TLS, handle, symbol uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void perror(const char *s);
+func Xperror(t *TLS, s uintptr) {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func Xpclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+var gai_strerrorBuf [100]byte
+
+// const char *gai_strerror(int errcode);
+func Xgai_strerror(t *TLS, errcode int32) uintptr {
+ copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode))
+ return uintptr(unsafe.Pointer(&gai_strerrorBuf))
+}
+
+// int tcgetattr(int fd, struct termios *termios_p);
+func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
+func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// speed_t cfgetospeed(const struct termios *termios_p);
+func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t {
+ panic(todo(""))
+}
+
+// int cfsetospeed(struct termios *termios_p, speed_t speed);
+func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// int cfsetispeed(struct termios *termios_p, speed_t speed);
+func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// pid_t fork(void);
+func Xfork(t *TLS) int32 {
+ t.setErrno(errno.ENOSYS)
+ return -1
+}
+
+var emptyStr = [1]byte{}
+
+// char *setlocale(int category, const char *locale);
+func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// char *nl_langinfo(nl_item item);
+func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// FILE *popen(const char *command, const char *type);
+func Xpopen(t *TLS, command, type1 uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *realpath(const char *path, char *resolved_path);
+func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr {
+ s, err := filepath.EvalSymlinks(GoString(path))
+ if err != nil {
+ if os.IsNotExist(err) {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(path), err)
+ // }
+ t.setErrno(errno.ENOENT)
+ return 0
+ }
+
+ panic(todo("", err))
+ }
+
+ if resolved_path == 0 {
+ panic(todo(""))
+ }
+
+ if len(s) >= limits.PATH_MAX {
+ s = s[:limits.PATH_MAX-1]
+ }
+
+ copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s)
+ (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0
+ return resolved_path
+}
+
+// struct tm *gmtime_r(const time_t *timep, struct tm *result);
+func Xgmtime_r(t *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *inet_ntoa(struct in_addr in);
+func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func X__ccgo_in6addr_anyp(t *TLS) uintptr {
+ return uintptr(unsafe.Pointer(&in6_addr_any))
+}
+
+func Xabort(t *TLS) {
+ // if dmesgs {
+ // dmesg("%v:\n%s", origin(1), debug.Stack())
+ // }
+ p := Xmalloc(t, types.Size_t(unsafe.Sizeof(signal.Sigaction{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ *(*signal.Sigaction)(unsafe.Pointer(p)) = signal.Sigaction{
+ F__sigaction_handler: struct{ Fsa_handler signal.X__sighandler_t }{Fsa_handler: signal.SIG_DFL},
+ }
+ Xsigaction(t, signal.SIGABRT, p, 0)
+ Xfree(t, p)
+ unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT))
+ panic(todo("unrechable"))
+}
+
+// int fflush(FILE *stream);
+func Xfflush(t *TLS, stream uintptr) int32 {
+ return 0 //TODO
+}
+
+// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_READ, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// int fclose(FILE *stream);
+func Xfclose(t *TLS, stream uintptr) int32 {
+ return file(stream).close(t)
+}
+
+// int fputc(int c, FILE *stream);
+func Xfputc(t *TLS, c int32, stream uintptr) int32 {
+ if _, err := fwrite(file(stream).fd(), []byte{byte(c)}); err != nil {
+ return stdio.EOF
+ }
+
+ return int32(byte(c))
+}
+
+// int fseek(FILE *stream, long offset, int whence);
+func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 {
+ if n := Xlseek(t, int32(file(stream).fd()), types.Off_t(offset), whence); n < 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), file(stream).fd(), offset, whenceStr(whence), n)
+ // }
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), file(stream).fd(), offset, whenceStr(whence))
+ // }
+ return 0
+}
+
+// long ftell(FILE *stream);
+func Xftell(t *TLS, stream uintptr) long {
+ n := Xlseek(t, file(stream).fd(), 0, stdio.SEEK_CUR)
+ if n < 0 {
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, n %#x: ok %#x", origin(1), file(stream).fd(), n, long(n))
+ // }
+ return long(n)
+}
+
+// int ferror(FILE *stream);
+func Xferror(t *TLS, stream uintptr) int32 {
+ return Bool32(file(stream).err())
+}
+
+// int ungetc(int c, FILE *stream);
+func Xungetc(t *TLS, c int32, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fscanf(FILE *stream, const char *format, ...);
+func Xfscanf(t *TLS, stream, format, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fputs(const char *s, FILE *stream);
+func Xfputs(t *TLS, s, stream uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), s, uintptr(Xstrlen(t, s))); err != 0 {
+ return -1
+ }
+
+ return 0
+}
+
+var getservbynameStaticResult netdb.Servent
+
+// struct servent *getservbyname(const char *name, const char *proto);
+func Xgetservbyname(t *TLS, name, proto uintptr) uintptr {
+ var protoent *gonetdb.Protoent
+ if proto != 0 {
+ protoent = gonetdb.GetProtoByName(GoString(proto))
+ }
+ servent := gonetdb.GetServByName(GoString(name), protoent)
+ if servent == nil {
+ // if dmesgs {
+ // dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent)
+ // }
+ return 0
+ }
+
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name)
+ if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 {
+ for {
+ p := *(*uintptr)(unsafe.Pointer(v))
+ if p == 0 {
+ break
+ }
+
+ Xfree(t, p)
+ v += unsafe.Sizeof(uintptr(0))
+ }
+ Xfree(t, v)
+ }
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto)
+ cname, err := CString(servent.Name)
+ if err != nil {
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+
+ var protoname uintptr
+ if protoent != nil {
+ if protoname, err = CString(protoent.Name); err != nil {
+ Xfree(t, cname)
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ }
+ var a []uintptr
+ for _, v := range servent.Aliases {
+ cs, err := CString(v)
+ if err != nil {
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ return 0
+ }
+
+ a = append(a, cs)
+ }
+ v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0))))
+ if v == 0 {
+ Xfree(t, cname)
+ Xfree(t, protoname)
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ for _, p := range a {
+ *(*uintptr)(unsafe.Pointer(v)) = p
+ v += unsafe.Sizeof(uintptr(0))
+ }
+
+ getservbynameStaticResult = netdb.Servent{
+ Fs_name: cname,
+ Fs_aliases: v,
+ Fs_port: int32(servent.Port),
+ Fs_proto: protoname,
+ }
+ return uintptr(unsafe.Pointer(&getservbynameStaticResult))
+}
+
+func Xreaddir64(t *TLS, dir uintptr) uintptr {
+ return Xreaddir(t, dir)
+}
+
+func __syscall(r, _ uintptr, errno syscall.Errno) long {
+ if errno != 0 {
+ return long(-errno)
+ }
+
+ return long(r)
+}
+
+func X__syscall1(t *TLS, trap, p1 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0))
+}
+
+func X__syscall3(t *TLS, trap, p1, p2, p3 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3)))
+}
+
+func X__syscall4(t *TLS, trap, p1, p2, p3, p4 long) long {
+ return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0))
+}
+
+func fcntlCmdStr(cmd int32) string {
+ switch cmd {
+ case fcntl.F_GETOWN:
+ return "F_GETOWN"
+ case fcntl.F_SETLK:
+ return "F_SETLK"
+ case fcntl.F_GETLK:
+ return "F_GETLK"
+ case fcntl.F_SETFD:
+ return "F_SETFD"
+ case fcntl.F_GETFD:
+ return "F_GETFD"
+ default:
+ return fmt.Sprintf("cmd(%d)", cmd)
+ }
+}
+
+// int setenv(const char *name, const char *value, int overwrite);
+func Xsetenv(t *TLS, name, value uintptr, overwrite int32) int32 {
+ panic(todo(""))
+}
+
+// int unsetenv(const char *name);
+func Xunsetenv(t *TLS, name uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pause(void);
+func Xpause(t *TLS) int32 {
+ err := unix.Pause()
+ if err != nil {
+ t.setErrno(err)
+ }
+
+ return -1
+}
+
+// ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
+func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t {
+ // if dmesgs {
+ // dmesg("%v: fd %v iov %#x iovcnt %v", origin(1), fd, iov, iovcnt)
+ // }
+ if iovcnt == 0 {
+ panic(todo(""))
+ }
+
+ iovs := make([][]byte, iovcnt)
+ for ; iovcnt != 0; iovcnt-- {
+ base := (*unix.Iovec)(unsafe.Pointer(iov)).Base
+ len := (*unix.Iovec)(unsafe.Pointer(iov)).Len
+ // if dmesgs {
+ // dmesg("%v: base %#x len %v", origin(1), base, len)
+ // }
+ if base != nil && len != 0 {
+ iovs = append(iovs, (*RawMem)(unsafe.Pointer(base))[:len:len])
+ iov += unsafe.Sizeof(unix.Iovec{})
+ }
+ }
+ n, err := unix.Writev(int(fd), iovs)
+ if err != nil {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ panic(todo(""))
+ }
+
+ return types.Ssize_t(n)
+}
+
+// int __isoc99_sscanf(const char *str, const char *format, ...);
+func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 {
+ r := Xsscanf(t, str, format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// var ctimeStaticBuf [32]byte
+//
+// // char *ctime(const time_t *timep);
+// func Xctime(t *TLS, timep uintptr) uintptr {
+// return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0])))
+// }
+//
+// // char *ctime_r(const time_t *timep, char *buf);
+// func Xctime_r(t *TLS, timep, buf uintptr) uintptr {
+// ut := *(*unix.Time_t)(unsafe.Pointer(timep))
+// tm := time.Unix(int64(ut), 0).Local()
+// s := tm.Format(time.ANSIC) + "\n\x00"
+// copy((*RawMem)(unsafe.Pointer(buf))[:26:26], s)
+// return buf
+// }
+
+// ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
+func Xpwrite(t *TLS, fd int32, buf uintptr, count types.Size_t, offset types.Off_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case count == 0:
+ n, err = unix.Pwrite(int(fd), nil, int64(offset))
+ default:
+ n, err = unix.Pwrite(int(fd), (*RawMem)(unsafe.Pointer(buf))[:count:count], int64(offset))
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, count %#x\n%s", origin(1), fd, offset, count, hex.Dump((*RawMem)(unsafe.Pointer(buf))[:count:count]))
+ }
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Ssize_t(n)
+}
+
+// int fstatfs(int fd, struct statfs *buf);
+func Xfstatfs(t *TLS, fd int32, buf uintptr) int32 {
+ if err := unix.Fstatfs(int(fd), (*unix.Statfs_t)(unsafe.Pointer(buf))); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// ssize_t getrandom(void *buf, size_t buflen, unsigned int flags);
+func Xgetrandom(t *TLS, buf uintptr, buflen size_t, flags uint32) ssize_t {
+ n, err := unix.Getrandom((*RawMem)(unsafe.Pointer(buf))[:buflen], int(flags))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return ssize_t(n)
+}
+
+// int posix_fadvise(int fd, off_t offset, off_t len, int advice);
+func Xposix_fadvise(t *TLS, fd int32, offset, len types.Off_t, advice int32) int32 {
+ if err := unix.Fadvise(int(fd), int64(offset), int64(len), int(advice)); err != nil {
+ return int32(err.(unix.Errno))
+ }
+
+ return 0
+}
+
+// int fgetc(FILE *stream);
+func Xfgetc(t *TLS, stream uintptr) int32 {
+ fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_fileno)
+ var buf [1]byte
+ if n, _ := unix.Read(fd, buf[:]); n != 0 {
+ return int32(buf[0])
+ }
+
+ return stdio.EOF
+}
+
+// void uuid_copy(uuid_t dst, uuid_t src);
+func Xuuid_copy(t *TLS, dst, src uintptr) {
+ *(*uuid.Uuid_t)(unsafe.Pointer(dst)) = *(*uuid.Uuid_t)(unsafe.Pointer(src))
+}
+
+// int uuid_parse( char *in, uuid_t uu);
+func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 {
+ r, err := guuid.Parse(GoString(in))
+ if err != nil {
+ return -1
+ }
+
+ copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:])
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_linux_386.go b/vendor/modernc.org/libc/libc_linux_386.go
new file mode 100644
index 00000000..a8e5c526
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_linux_386.go
@@ -0,0 +1,457 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "os"
+ "strings"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ // musl/arch/x32/ksigaction.h
+ //
+ // struct k_sigaction {
+ // void (*handler)(int);
+ // unsigned long flags;
+ // void (*restorer)(void);
+ // unsigned mask[2];
+ // };
+ type k_sigaction struct {
+ handler uintptr
+ flags ulong
+ restorer uintptr
+ mask [2]uint32
+ }
+
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(k_sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ }
+ Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ if cmd == fcntl.F_SETFL {
+ arg |= unix.O_LARGEFILE
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL64, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LSTAT64, pathname, statbuf, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_STAT64, pathname, statbuf, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FSTAT64, uintptr(fd), statbuf, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %d: %v", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d, size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ }
+ return 0
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ data, _, err := unix.Syscall6(unix.SYS_MMAP2, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset>>12))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %d: %v", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ bp := t.Alloc(int(unsafe.Sizeof(types.X__loff_t(0))))
+ defer t.Free(int(unsafe.Sizeof(types.X__loff_t(0))))
+ if _, _, err := unix.Syscall6(unix.SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), bp, uintptr(whence), 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), *(*types.Off_t)(unsafe.Pointer(bp)))
+ }
+ return *(*types.Off_t)(unsafe.Pointer(bp))
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UTIME, filename, times, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ if err != 0 {
+ panic(todo(""))
+ }
+
+ return uint32(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n, _, err := unix.Syscall(unix.SYS_TIME, tloc, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return types.Time_t(-1)
+ }
+
+ if tloc != 0 {
+ *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ }
+ return types.Time_t(n)
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MKDIR, path, uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SYMLINK, target, linkpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHMOD, pathname, uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UTIMES, filename, times, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(filename))
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UNLINK, pathname, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_ACCESS, pathname, uintptr(mode), 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_RMDIR, pathname, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_RENAME, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_PIPE, pipefd, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READLINK, path, buf, uintptr(bufsize))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ fd, _, err := unix.Syscall(unix.SYS_OPEN, pathname, uintptr(flags|unix.O_LARGEFILE), 0666)
+ if err != 0 {
+ t.setErrno(err)
+ return 0
+ }
+
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ Xclose(t, int32(fd))
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_linux_amd64.go b/vendor/modernc.org/libc/libc_linux_amd64.go
new file mode 100644
index 00000000..23e4f853
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_linux_amd64.go
@@ -0,0 +1,467 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "os"
+ "strings"
+ "unicode"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/wctype"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ // musl/arch/x86_64/ksigaction.h
+ //
+ // struct k_sigaction {
+ // void (*handler)(int);
+ // unsigned long flags;
+ // void (*restorer)(void);
+ // unsigned mask[2];
+ // };
+ type k_sigaction struct {
+ handler uintptr
+ flags ulong
+ restorer uintptr
+ mask [2]uint32
+ }
+
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(k_sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ }
+ Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ if cmd == fcntl.F_SETFL {
+ arg |= unix.O_LARGEFILE
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ // }
+ return int32(n)
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LSTAT, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_STAT, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FSTAT, uintptr(fd), statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ // }
+ return 0
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ return data
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ return data
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ // }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, _, err := unix.Syscall(unix.SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), n)
+ // }
+ return types.Off_t(n)
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UTIME, filename, times, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ if err != 0 {
+ panic(todo(""))
+ }
+
+ return uint32(n)
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n, _, err := unix.Syscall(unix.SYS_TIME, tloc, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return types.Time_t(-1)
+ }
+
+ if tloc != 0 {
+ *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ }
+ return types.Time_t(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MKDIR, path, uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SYMLINK, target, linkpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ // }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHMOD, pathname, uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ // }
+ return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UTIMES, filename, times, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(filename))
+ // }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UNLINK, pathname, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_ACCESS, pathname, uintptr(mode), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ // }
+ return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_RMDIR, pathname, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_RENAME, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_PIPE, pipefd, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READLINK, path, buf, uintptr(bufsize))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ fd, _, err := unix.Syscall(unix.SYS_OPEN, pathname, uintptr(flags|unix.O_LARGEFILE), 0666)
+ if err != 0 {
+ t.setErrno(err)
+ return 0
+ }
+
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ Xclose(t, int32(fd))
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
+
+// int iswspace(wint_t wc);
+func Xiswspace(t *TLS, wc wctype.Wint_t) int32 {
+ return Bool32(unicode.IsSpace(rune(wc)))
+}
+
+// int iswalnum(wint_t wc);
+func Xiswalnum(t *TLS, wc wctype.Wint_t) int32 {
+ return Bool32(unicode.IsLetter(rune(wc)) || unicode.IsNumber(rune(wc)))
+}
diff --git a/vendor/modernc.org/libc/libc_linux_arm.go b/vendor/modernc.org/libc/libc_linux_arm.go
new file mode 100644
index 00000000..cfabe77f
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_linux_arm.go
@@ -0,0 +1,449 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "os"
+ "strings"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ // musl/arch/x32/ksigaction.h
+ //
+ // struct k_sigaction {
+ // void (*handler)(int);
+ // unsigned long flags;
+ // void (*restorer)(void);
+ // unsigned mask[2];
+ // };
+ type k_sigaction struct {
+ handler uintptr
+ flags ulong
+ restorer uintptr
+ mask [2]uint32
+ }
+
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(k_sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ }
+ Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ if cmd == fcntl.F_SETFL {
+ arg |= unix.O_LARGEFILE
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL64, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_STAT64, pathname, statbuf, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FSTAT64, uintptr(fd), statbuf, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %d: %v", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d, size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ }
+ return 0
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ data, _, err := unix.Syscall6(unix.SYS_MMAP2, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset>>12))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %d: %v", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), n)
+ }
+ return types.Off_t(n)
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ if err := unix.Utime(GoString(filename), (*unix.Utimbuf)(unsafe.Pointer(times))); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if err := unix.Getrlimit(int(resource), (*unix.Rlimit)(unsafe.Pointer(rlim))); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n := time.Now().UTC().Unix()
+ if tloc != 0 {
+ *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ }
+ return types.Time_t(n)
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var tv []unix.Timeval
+ if times != 0 {
+ tv = make([]unix.Timeval, 2)
+ *(*[2]unix.Timeval)(unsafe.Pointer(&tv[0])) = *(*[2]unix.Timeval)(unsafe.Pointer(times))
+ }
+ if err := unix.Utimes(GoString(filename), tv); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if times != 0 {
+ *(*[2]unix.Timeval)(unsafe.Pointer(times)) = *(*[2]unix.Timeval)(unsafe.Pointer(&tv[0]))
+ }
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(filename))
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlinkat(unix.AT_FDCWD, GoString(pathname), 0); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Faccessat(unix.AT_FDCWD, GoString(pathname), uint32(mode), 0); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if err := unix.Rmdir(GoString(pathname)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if err := unix.Chown(GoString(pathname), int(owner), int(group)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_PIPE2, pipefd, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ n, err := unix.Readlink(GoString(path), GoBytes(buf, int(bufsize)))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ fd, _, err := unix.Syscall(unix.SYS_OPEN, pathname, uintptr(flags|unix.O_LARGEFILE), 0666)
+ if err != 0 {
+ t.setErrno(err)
+ return 0
+ }
+
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ Xclose(t, int32(fd))
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+//TODO- // int sscanf(const char *str, const char *format, ...);
+//TODO- func Xsscanf(t *TLS, str, format, va uintptr) int32 {
+//TODO- r := scanf(strings.NewReader(GoString(str)), format, va)
+//TODO- // if dmesgs {
+//TODO- // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+//TODO- // }
+//TODO- return r
+//TODO- }
diff --git a/vendor/modernc.org/libc/libc_linux_arm64.go b/vendor/modernc.org/libc/libc_linux_arm64.go
new file mode 100644
index 00000000..b8607c9c
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_linux_arm64.go
@@ -0,0 +1,439 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "os"
+ "strings"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ // musl/src/internal/ksigaction.h
+ //
+ // struct k_sigaction {
+ // void (*handler)(int);
+ // unsigned long flags;
+ // void (*restorer)(void);
+ // unsigned mask[2];
+ // };
+ type k_sigaction struct {
+ handler uintptr
+ flags ulong
+ restorer uintptr
+ mask [2]uint32
+ }
+
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(k_sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ }
+ Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Fstatat(unix.AT_FDCWD, GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf)), 0); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlinkat(unix.AT_FDCWD, GoString(pathname), 0); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Faccessat(unix.AT_FDCWD, GoString(pathname), uint32(mode), 0); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, _, err := unix.Syscall(unix.SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), n)
+ }
+ return types.Off_t(n)
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FSTAT, uintptr(fd), statbuf, 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %d: %v", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ }
+ return 0
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0); err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %d: %v", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ if cmd == fcntl.F_SETFL {
+ arg |= unix.O_LARGEFILE
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if err := unix.Rmdir(GoString(pathname)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if err := unix.Chown(GoString(pathname), int(owner), int(group)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_PIPE2, pipefd, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ n, err := unix.Readlink(GoString(path), GoBytes(buf, int(bufsize)))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ fd, err := unix.Openat(unix.AT_FDCWD, GoString(pathname), flags, 0666)
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ Xclose(t, int32(fd))
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n := time.Now().UTC().Unix()
+ if tloc != 0 {
+ *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ }
+ return types.Time_t(n)
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var tv []unix.Timeval
+ if times != 0 {
+ tv = make([]unix.Timeval, 2)
+ *(*[2]unix.Timeval)(unsafe.Pointer(&tv[0])) = *(*[2]unix.Timeval)(unsafe.Pointer(times))
+ }
+ if err := unix.Utimes(GoString(filename), tv); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if times != 0 {
+ *(*[2]unix.Timeval)(unsafe.Pointer(times)) = *(*[2]unix.Timeval)(unsafe.Pointer(&tv[0]))
+ }
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(filename))
+ }
+ return 0
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ if err := unix.Utime(GoString(filename), (*unix.Utimbuf)(unsafe.Pointer(times))); err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+}
diff --git a/vendor/modernc.org/libc/libc_linux_s390x.go b/vendor/modernc.org/libc/libc_linux_s390x.go
new file mode 100644
index 00000000..dfb7aa2f
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_linux_s390x.go
@@ -0,0 +1,466 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "os"
+ "strings"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/sys/types"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ // musl/src/internal/ksigaction.h
+ // struct k_sigaction {
+ // void (*handler)(int);
+ // unsigned long flags;
+ // void (*restorer)(void);
+ // unsigned mask[2];
+ // };
+ type k_sigaction struct {
+ handler uintptr
+ flags ulong
+ restorer uintptr
+ mask [2]uint32
+ }
+
+ var kact, koldact uintptr
+ if act != 0 {
+ sz := int(unsafe.Sizeof(k_sigaction{}))
+ kact = t.Alloc(sz)
+ defer t.Free(sz)
+ *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ }
+ Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ }
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ if oldact != 0 {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ if cmd == fcntl.F_SETFL {
+ arg |= unix.O_LARGEFILE
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ // }
+ return int32(n)
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LSTAT, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_STAT, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FSTAT, uintptr(fd), statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ // }
+ return 0
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ // https://github.com/golang/go/blob/7d822af4500831d131562f17dcf53374469d823e/src/syscall/syscall_linux_s390x.go#L77
+ args := [6]uintptr{addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}
+ data, _, err := unix.Syscall(unix.SYS_MMAP, uintptr(unsafe.Pointer(&args[0])), 0, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: addr %#x, length %#x, prot %#x, flags %#x, fd %v, offset %#x: %v", origin(1), addr, length, prot, flags, fd, offset, err)
+ // }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: addr %#x, length %#x, prot %#x, flags %#x, fd %v, offset %#x: ok", origin(1), addr, length, prot, flags, fd, offset)
+ // }
+ return data
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ return data
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ // }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, _, err := unix.Syscall(unix.SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), n)
+ // }
+ return types.Off_t(n)
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UTIME, filename, times, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ if err != 0 {
+ panic(todo(""))
+ }
+
+ return uint32(n)
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ n, err := unix.Time((*unix.Time_t)(unsafe.Pointer(tloc)))
+ if err != nil {
+ t.setErrno(err)
+ return types.Time_t(-1)
+ }
+
+ return types.Time_t(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MKDIR, path, uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SYMLINK, target, linkpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ // }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHMOD, pathname, uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ // }
+ return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UTIMES, filename, times, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(filename))
+ // }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_UNLINK, pathname, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_ACCESS, pathname, uintptr(mode), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ // }
+ return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_RMDIR, pathname, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ return 0
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_RENAME, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_PIPE, pipefd, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READLINK, path, buf, uintptr(bufsize))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ fd, _, err := unix.Syscall(unix.SYS_OPEN, pathname, uintptr(flags|unix.O_LARGEFILE), 0666)
+ if err != 0 {
+ t.setErrno(err)
+ return 0
+ }
+
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ Xclose(t, int32(fd))
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
+
+//TODO-
+func __syscall1(t *TLS, trap, p1 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0))
+}
+
+func __syscall3(t *TLS, trap, p1, p2, p3 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3)))
+}
+
+func __syscall4(t *TLS, trap, p1, p2, p3, p4 long) long {
+ return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0))
+}
diff --git a/vendor/modernc.org/libc/libc_netbsd.go b/vendor/modernc.org/libc/libc_netbsd.go
new file mode 100644
index 00000000..978c5955
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_netbsd.go
@@ -0,0 +1,1594 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "runtime/debug"
+ "strings"
+ "syscall"
+ gotime "time"
+ "unsafe"
+
+ guuid "github.com/google/uuid"
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ gonetdb "modernc.org/libc/honnef.co/go/netdb"
+ "modernc.org/libc/langinfo"
+ "modernc.org/libc/limits"
+ "modernc.org/libc/netdb"
+ "modernc.org/libc/netinet/in"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/socket"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/termios"
+ "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+ "modernc.org/libc/uuid"
+)
+
+var (
+ in6_addr_any in.In6_addr
+)
+
+type (
+ long = int64
+ ulong = uint64
+)
+
+// // Keep these outside of the var block otherwise go generate will miss them.
+var X__stderrp = Xstdout
+var X__stdinp = Xstdin
+var X__stdoutp = Xstdout
+var X__sF [3]stdio.FILE
+var X_tolower_tab_ = Xmalloc(nil, 2*65537)
+var X_toupper_tab_ = Xmalloc(nil, 2*65537)
+
+func init() {
+ for c := rune(0); c < 0xffff; c++ {
+ y := c
+ s := strings.ToLower(string(c))
+ a := []rune(s)
+ if len(a) != 0 {
+ y = a[0]
+ }
+ (*[65536]uint16)(unsafe.Pointer(X_tolower_tab_))[c+1] = uint16(y)
+ y = c
+ s = strings.ToUpper(string(c))
+ a = []rune(s)
+ if len(a) != 0 {
+ y = a[0]
+ }
+ (*[65536]uint16)(unsafe.Pointer(X_toupper_tab_))[c+1] = uint16(y)
+ }
+}
+
+// include/stdio.h:486:extern int __isthreaded;
+var X__isthreaded int32
+
+// lib/libc/locale/mblocal.h:62: int __mb_sb_limit;
+var X__mb_sb_limit int32 = 128 // UTF-8
+
+// include/runetype.h:94:extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
+var X_ThreadRuneLocale uintptr //TODO initialize and implement _Thread_local semantics.
+
+// include/xlocale/_ctype.h:54:_RuneLocale *__runes_for_locale(locale_t, int*);
+func X__runes_for_locale(t *TLS, l locale_t, p uintptr) uintptr {
+ panic(todo(""))
+}
+
+type file uintptr
+
+func (f file) fd() int32 { return int32((*stdio.FILE)(unsafe.Pointer(f)).F_file) }
+func (f file) setFd(fd int32) { (*stdio.FILE)(unsafe.Pointer(f)).F_file = int16(fd) }
+
+func (f file) err() bool {
+ return (*stdio.FILE)(unsafe.Pointer(f)).F_flags&1 != 0
+}
+
+func (f file) setErr() {
+ (*stdio.FILE)(unsafe.Pointer(f)).F_flags |= 1
+}
+
+func (f file) close(t *TLS) int32 {
+ fd := f.fd()
+ r := Xclose(t, fd)
+ switch fd {
+ case unistd.STDIN_FILENO, unistd.STDOUT_FILENO, unistd.STDERR_FILENO:
+ X__sF[fd] = stdio.FILE{}
+ default:
+ Xfree(t, uintptr(f))
+ }
+ if r < 0 {
+ return stdio.EOF
+ }
+
+ return 0
+}
+
+func newFile(t *TLS, fd int32) uintptr {
+ var p uintptr
+ switch fd {
+ case unistd.STDIN_FILENO:
+ p = uintptr(unsafe.Pointer(&X__sF[0]))
+ case unistd.STDOUT_FILENO:
+ p = uintptr(unsafe.Pointer(&X__sF[1]))
+ case unistd.STDERR_FILENO:
+ p = uintptr(unsafe.Pointer(&X__sF[2]))
+ default:
+ if p = Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(stdio.FILE{}))); p == 0 {
+ return 0
+ }
+ }
+ file(p).setFd(fd)
+ return p
+}
+
+func fwrite(fd int32, b []byte) (int, error) {
+ if fd == unistd.STDOUT_FILENO {
+ return write(b)
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v: %s", origin(1), fd, b)
+ // }
+ return unix.Write(int(fd), b) //TODO use Xwrite
+}
+
+// unsigned long ___runetype(__ct_rune_t) __pure;
+func X___runetype(t *TLS, x int32) ulong {
+ panic(todo(""))
+}
+
+// int fprintf(FILE *stream, const char *format, ...);
+func Xfprintf(t *TLS, stream, format, args uintptr) int32 {
+ n, _ := fwrite(int32((*stdio.FILE)(unsafe.Pointer(stream)).F_file), printf(format, args))
+ return int32(n)
+}
+
+// int usleep(useconds_t usec);
+func Xusleep(t *TLS, usec uint32) int32 {
+ gotime.Sleep(gotime.Microsecond * gotime.Duration(usec))
+ return 0
+}
+
+// int getrusage(int who, struct rusage *usage);
+func Xgetrusage(t *TLS, who int32, usage uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int fgetc(FILE *stream);
+func Xfgetc(t *TLS, stream uintptr) int32 {
+ fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_file)
+ var buf [1]byte
+ if n, _ := unix.Read(fd, buf[:]); n != 0 {
+ return int32(buf[0])
+ }
+
+ return stdio.EOF
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xlstat64(t, pathname, statbuf)
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xstat64(t, pathname, statbuf)
+}
+
+// int chdir(const char *path);
+func Xchdir(t *TLS, path uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHDIR, path, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ return 0
+}
+
+var localtime time.Tm
+
+// struct tm *localtime(const time_t *timep);
+func Xlocaltime(_ *TLS, timep uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ localtime.Ftm_sec = int32(t.Second())
+ localtime.Ftm_min = int32(t.Minute())
+ localtime.Ftm_hour = int32(t.Hour())
+ localtime.Ftm_mday = int32(t.Day())
+ localtime.Ftm_mon = int32(t.Month() - 1)
+ localtime.Ftm_year = int32(t.Year() - 1900)
+ localtime.Ftm_wday = int32(t.Weekday())
+ localtime.Ftm_yday = int32(t.YearDay())
+ localtime.Ftm_isdst = Bool32(isTimeDST(t))
+ return uintptr(unsafe.Pointer(&localtime))
+}
+
+// struct tm *localtime_r(const time_t *timep, struct tm *result);
+func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t))
+ return result
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ return Xopen64(t, pathname, flags, args)
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen64(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ var mode types.Mode_t
+ if args != 0 {
+ mode = (types.Mode_t)(VaUint32(&args))
+ }
+ fdcwd := fcntl.AT_FDCWD
+ n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), pathname, uintptr(flags), uintptr(mode), 0, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q %#x: %v", origin(1), GoString(pathname), flags, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, n)
+ // }
+ return int32(n)
+}
+
+// off_t lseek(int fd, off_t offset, int whence);
+func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ return types.Off_t(Xlseek64(t, fd, offset, whence))
+}
+
+func whenceStr(whence int32) string {
+ panic(todo(""))
+}
+
+var fsyncStatbuf stat.Stat
+
+// int fsync(int fd);
+func Xfsync(t *TLS, fd int32) int32 {
+ if noFsync {
+ // Simulate -DSQLITE_NO_SYNC for sqlite3 testfixture, see function full_sync in sqlite3.c
+ return Xfstat(t, fd, uintptr(unsafe.Pointer(&fsyncStatbuf)))
+ }
+
+ if _, _, err := unix.Syscall(unix.SYS_FSYNC, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// long sysconf(int name);
+func Xsysconf(t *TLS, name int32) long {
+ switch name {
+ case unistd.X_SC_PAGESIZE:
+ return long(unix.Getpagesize())
+ case unistd.X_SC_GETPW_R_SIZE_MAX:
+ return -1
+ case unistd.X_SC_GETGR_R_SIZE_MAX:
+ return -1
+ }
+
+ panic(todo("", name))
+}
+
+// int close(int fd);
+func Xclose(t *TLS, fd int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CLOSE, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// char *getcwd(char *buf, size_t size);
+func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr {
+ if _, err := unix.Getcwd((*RawMem)(unsafe.Pointer(buf))[:size:size]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return buf
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 {
+ return Xfstat64(t, fd, statbuf)
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 {
+ if err := unix.Ftruncate(int(fd), int64(length)); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 {
+ return Xfcntl64(t, fd, cmd, args)
+}
+
+// ssize_t read(int fd, void *buf, size_t count);
+func Xread(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READ, uintptr(fd), buf, uintptr(count))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+}
+
+// ssize_t write(int fd, const void *buf, size_t count);
+func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ const retry = 5
+ var err syscall.Errno
+ for i := 0; i < retry; i++ {
+ var n uintptr
+ switch n, _, err = unix.Syscall(unix.SYS_WRITE, uintptr(fd), buf, uintptr(count)); err {
+ case 0:
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+ case errno.EAGAIN:
+ // nop
+ }
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err)
+ // }
+ t.setErrno(err)
+ return -1
+}
+
+// int fchmod(int fd, mode_t mode);
+func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHMOD, uintptr(fd), uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#o: ok", origin(1), fd, mode)
+ // }
+ return 0
+}
+
+// int fchown(int fd, uid_t owner, gid_t group);
+func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t geteuid(void);
+func Xgeteuid(t *TLS) types.Uid_t {
+ n, _, _ := unix.Syscall(unix.SYS_GETEUID, 0, 0, 0)
+ return types.Uid_t(n)
+}
+
+// int munmap(void *addr, size_t length);
+func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int gettimeofday(struct timeval *tv, struct timezone *tz);
+func Xgettimeofday(t *TLS, tv, tz uintptr) int32 {
+ if tz != 0 {
+ panic(todo(""))
+ }
+
+ var tvs unix.Timeval
+ err := unix.Gettimeofday(&tvs)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs
+ return 0
+}
+
+// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+func Xgetsockopt(t *TLS, sockfd, level, optname int32, optval, optlen uintptr) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+func Xsetsockopt(t *TLS, sockfd, level, optname int32, optval uintptr, optlen socket.Socklen_t) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_SETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, uintptr(optlen), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int ioctl(int fd, unsigned long request, ...);
+func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 {
+ var argp uintptr
+ if va != 0 {
+ argp = VaUintptr(&va)
+ }
+ n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetsockname(t *TLS, sockfd int32, addr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETSOCKNAME, uintptr(sockfd), addr, addrlen); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v: %v", origin(1), sockfd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
+func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 {
+ n, err := unix.Select(
+ int(nfds),
+ (*unix.FdSet)(unsafe.Pointer(readfds)),
+ (*unix.FdSet)(unsafe.Pointer(writefds)),
+ (*unix.FdSet)(unsafe.Pointer(exceptfds)),
+ (*unix.Timeval)(unsafe.Pointer(timeout)),
+ )
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int mkfifo(const char *pathname, mode_t mode);
+func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ panic(todo(""))
+}
+
+// mode_t umask(mode_t mask);
+func Xumask(t *TLS, mask types.Mode_t) types.Mode_t {
+ n, _, _ := unix.Syscall(unix.SYS_UMASK, uintptr(mask), 0, 0)
+ return types.Mode_t(n)
+}
+
+// int execvp(const char *file, char *const argv[]);
+func Xexecvp(t *TLS, file, argv uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// pid_t waitpid(pid_t pid, int *wstatus, int options);
+func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t {
+ n, _, err := unix.Syscall6(unix.SYS_WAIT4, uintptr(pid), wstatus, uintptr(optname), 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Pid_t(n)
+}
+
+// int uname(struct utsname *buf);
+func Xuname(t *TLS, buf uintptr) int32 {
+ if err := unix.Uname((*unix.Utsname)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+func Xrecv(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_RECVFROM, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+func Xsend(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_SENDTO, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// int shutdown(int sockfd, int how);
+func Xshutdown(t *TLS, sockfd, how int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetpeername(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETPEERNAME, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int socket(int domain, int type, int protocol);
+func Xsocket(t *TLS, domain, type1, protocol int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_SOCKET, uintptr(domain), uintptr(type1), uintptr(protocol))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xbind(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_BIND, uintptr(sockfd), addr, uintptr(addrlen))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xconnect(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CONNECT, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int listen(int sockfd, int backlog);
+func Xlisten(t *TLS, sockfd, backlog int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LISTEN, uintptr(sockfd), uintptr(backlog), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xaccept(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall6(unix.SYS_ACCEPT4, uintptr(sockfd), addr, uintptr(addrlen), 0, 0, 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xgetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xsetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t getuid(void);
+func Xgetuid(t *TLS) types.Uid_t {
+ return types.Uid_t(os.Getuid())
+}
+
+// pid_t getpid(void);
+func Xgetpid(t *TLS) int32 {
+ return int32(os.Getpid())
+}
+
+// int system(const char *command);
+func Xsystem(t *TLS, command uintptr) int32 {
+ s := GoString(command)
+ if command == 0 {
+ panic(todo(""))
+ }
+
+ cmd := exec.Command("sh", "-c", s)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ ps := err.(*exec.ExitError)
+ return int32(ps.ExitCode())
+ }
+
+ return 0
+}
+
+// int setvbuf(FILE *stream, char *buf, int mode, size_t size);
+func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 {
+ return 0 //TODO
+}
+
+// int raise(int sig);
+func Xraise(t *TLS, sig int32) int32 {
+ panic(todo(""))
+}
+
+// int backtrace(void **buffer, int size);
+func Xbacktrace(t *TLS, buf uintptr, size int32) int32 {
+ panic(todo(""))
+}
+
+// void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) {
+ panic(todo(""))
+}
+
+// int fileno(FILE *stream);
+func Xfileno(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+ var statp uintptr
+ if stat != nil {
+ statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+ if statp == 0 {
+ panic("OOM")
+ }
+
+ *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+ }
+ csp, errx := CString(path)
+ if errx != nil {
+ panic("OOM")
+ }
+
+ return &fts.FTSENT{
+ Ffts_info: uint16(info),
+ Ffts_path: csp,
+ Ffts_pathlen: uint32(len(path)),
+ Ffts_statp: statp,
+ Ffts_errno: int32(err),
+ }
+}
+
+func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err)
+ return p
+}
+
+func ftsentClose(t *TLS, p uintptr) {
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path)
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp)
+}
+
+type ftstream struct {
+ s []uintptr
+ x int
+}
+
+func (f *ftstream) close(t *TLS) {
+ for _, p := range f.s {
+ ftsentClose(t, p)
+ Xfree(t, p)
+ }
+ *f = ftstream{}
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ return Xfts64_open(t, path_argv, options, compar)
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ f := &ftstream{}
+
+ var walk func(string)
+ walk = func(path string) {
+ var fi os.FileInfo
+ var err error
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ fi, err = os.Stat(path)
+ case options&fts.FTS_PHYSICAL != 0:
+ fi, err = os.Lstat(path)
+ default:
+ panic(todo(""))
+ }
+
+ if err != nil {
+ return
+ }
+
+ var statp *unix.Stat_t
+ if options&fts.FTS_NOSTAT == 0 {
+ var stat unix.Stat_t
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ if err := unix.Stat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ case options&fts.FTS_PHYSICAL != 0:
+ if err := unix.Lstat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ default:
+ panic(todo(""))
+ }
+
+ statp = &stat
+ }
+
+ out:
+ switch {
+ case fi.IsDir():
+ f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0))
+ g, err := os.Open(path)
+ switch x := err.(type) {
+ case nil:
+ // ok
+ case *os.PathError:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES))
+ break out
+ default:
+ panic(todo("%q: %v %T", path, x, x))
+ }
+
+ names, err := g.Readdirnames(-1)
+ g.Close()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ for _, name := range names {
+ walk(path + "/" + name)
+ if f == nil {
+ break out
+ }
+ }
+
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0))
+ default:
+ info := fts.FTS_F
+ if fi.Mode()&os.ModeSymlink != 0 {
+ info = fts.FTS_SL
+ }
+ switch {
+ case statp != nil:
+ f.s = append(f.s, newCFtsent(t, info, path, statp, 0))
+ case options&fts.FTS_NOSTAT != 0:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0))
+ default:
+ panic(todo(""))
+ }
+ }
+ }
+
+ for {
+ p := *(*uintptr)(unsafe.Pointer(path_argv))
+ if p == 0 {
+ if f == nil {
+ return 0
+ }
+
+ if compar != 0 {
+ panic(todo(""))
+ }
+
+ return addObject(f)
+ }
+
+ walk(GoString(p))
+ path_argv += unsafe.Sizeof(uintptr(0))
+ }
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts_read(t *TLS, ftsp uintptr) uintptr {
+ return Xfts64_read(t, ftsp)
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts64_read(t *TLS, ftsp uintptr) uintptr {
+ f := getObject(ftsp).(*ftstream)
+ if f.x == len(f.s) {
+ t.setErrno(0)
+ return 0
+ }
+
+ r := f.s[f.x]
+ if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 {
+ t.setErrno(e)
+ }
+ f.x++
+ return r
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts_close(t *TLS, ftsp uintptr) int32 {
+ return Xfts64_close(t, ftsp)
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts64_close(t *TLS, ftsp uintptr) int32 {
+ getObject(ftsp).(*ftstream).close(t)
+ removeObject(ftsp)
+ return 0
+}
+
+// void tzset (void);
+func Xtzset(t *TLS) {
+ //TODO
+}
+
+var strerrorBuf [100]byte
+
+// char *strerror(int errnum);
+func Xstrerror(t *TLS, errnum int32) uintptr {
+ if dmesgs {
+ dmesg("%v: %v\n%s", origin(1), errnum, debug.Stack())
+ }
+ copy(strerrorBuf[:], fmt.Sprintf("strerror(%d)\x00", errnum))
+ return uintptr(unsafe.Pointer(&strerrorBuf[0]))
+}
+
+// void *dlopen(const char *filename, int flags);
+func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr {
+ panic(todo(""))
+}
+
+// char *dlerror(void);
+func Xdlerror(t *TLS) uintptr {
+ panic(todo(""))
+}
+
+// int dlclose(void *handle);
+func Xdlclose(t *TLS, handle uintptr) int32 {
+ panic(todo(""))
+}
+
+// void *dlsym(void *handle, const char *symbol);
+func Xdlsym(t *TLS, handle, symbol uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void perror(const char *s);
+func Xperror(t *TLS, s uintptr) {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func Xpclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+var gai_strerrorBuf [100]byte
+
+// const char *gai_strerror(int errcode);
+func Xgai_strerror(t *TLS, errcode int32) uintptr {
+ copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode))
+ return uintptr(unsafe.Pointer(&gai_strerrorBuf))
+}
+
+// int tcgetattr(int fd, struct termios *termios_p);
+func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
+func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// speed_t cfgetospeed(const struct termios *termios_p);
+func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t {
+ panic(todo(""))
+}
+
+// int cfsetospeed(struct termios *termios_p, speed_t speed);
+func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// int cfsetispeed(struct termios *termios_p, speed_t speed);
+func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// pid_t fork(void);
+func Xfork(t *TLS) int32 {
+ t.setErrno(errno.ENOSYS)
+ return -1
+}
+
+var emptyStr = [1]byte{}
+
+// char *setlocale(int category, const char *locale);
+func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// char *nl_langinfo(nl_item item);
+func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// FILE *popen(const char *command, const char *type);
+func Xpopen(t *TLS, command, type1 uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *realpath(const char *path, char *resolved_path);
+func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr {
+ s, err := filepath.EvalSymlinks(GoString(path))
+ if err != nil {
+ if os.IsNotExist(err) {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(path), err)
+ // }
+ t.setErrno(errno.ENOENT)
+ return 0
+ }
+
+ panic(todo("", err))
+ }
+
+ if resolved_path == 0 {
+ panic(todo(""))
+ }
+
+ if len(s) >= limits.PATH_MAX {
+ s = s[:limits.PATH_MAX-1]
+ }
+
+ copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s)
+ (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0
+ return resolved_path
+}
+
+// struct tm *gmtime_r(const time_t *timep, struct tm *result);
+func Xgmtime_r(t *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *inet_ntoa(struct in_addr in);
+func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func X__ccgo_in6addr_anyp(t *TLS) uintptr {
+ return uintptr(unsafe.Pointer(&in6_addr_any))
+}
+
+func Xabort(t *TLS) {
+ panic(todo("")) //TODO
+ // if dmesgs {
+ // dmesg("%v:", origin(1))
+ // }
+ // p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(signal.Sigaction{})))
+ // if p == 0 {
+ // panic("OOM")
+ // }
+
+ // (*signal.Sigaction)(unsafe.Pointer(p)).F__sigaction_u.F__sa_handler = signal.SIG_DFL
+ // Xsigaction(t, signal.SIGABRT, p, 0)
+ // Xfree(t, p)
+ // unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT))
+ // panic(todo("unrechable"))
+}
+
+// int fflush(FILE *stream);
+func Xfflush(t *TLS, stream uintptr) int32 {
+ return 0 //TODO
+}
+
+// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_READ, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// int fclose(FILE *stream);
+func Xfclose(t *TLS, stream uintptr) int32 {
+ return file(stream).close(t)
+}
+
+// int fputc(int c, FILE *stream);
+func Xfputc(t *TLS, c int32, stream uintptr) int32 {
+ if _, err := fwrite(file(stream).fd(), []byte{byte(c)}); err != nil {
+ return stdio.EOF
+ }
+
+ return int32(byte(c))
+}
+
+// int fseek(FILE *stream, long offset, int whence);
+func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 {
+ if n := Xlseek(t, int32(file(stream).fd()), types.Off_t(offset), whence); n < 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), file(stream).fd(), offset, whenceStr(whence), n)
+ // }
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), file(stream).fd(), offset, whenceStr(whence))
+ // }
+ return 0
+}
+
+// long ftell(FILE *stream);
+func Xftell(t *TLS, stream uintptr) long {
+ n := Xlseek(t, file(stream).fd(), 0, stdio.SEEK_CUR)
+ if n < 0 {
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, n %#x: ok %#x", origin(1), file(stream).fd(), n, long(n))
+ // }
+ return long(n)
+}
+
+// int ferror(FILE *stream);
+func Xferror(t *TLS, stream uintptr) int32 {
+ return Bool32(file(stream).err())
+}
+
+// int ungetc(int c, FILE *stream);
+func Xungetc(t *TLS, c int32, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fscanf(FILE *stream, const char *format, ...);
+func Xfscanf(t *TLS, stream, format, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fputs(const char *s, FILE *stream);
+func Xfputs(t *TLS, s, stream uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), s, uintptr(Xstrlen(t, s))); err != 0 {
+ return -1
+ }
+
+ return 0
+}
+
+var getservbynameStaticResult netdb.Servent
+
+// struct servent *getservbyname(const char *name, const char *proto);
+func Xgetservbyname(t *TLS, name, proto uintptr) uintptr {
+ var protoent *gonetdb.Protoent
+ if proto != 0 {
+ protoent = gonetdb.GetProtoByName(GoString(proto))
+ }
+ servent := gonetdb.GetServByName(GoString(name), protoent)
+ if servent == nil {
+ // if dmesgs {
+ // dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent)
+ // }
+ return 0
+ }
+
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name)
+ if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 {
+ for {
+ p := *(*uintptr)(unsafe.Pointer(v))
+ if p == 0 {
+ break
+ }
+
+ Xfree(t, p)
+ v += unsafe.Sizeof(uintptr(0))
+ }
+ Xfree(t, v)
+ }
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto)
+ cname, err := CString(servent.Name)
+ if err != nil {
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+
+ var protoname uintptr
+ if protoent != nil {
+ if protoname, err = CString(protoent.Name); err != nil {
+ Xfree(t, cname)
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ }
+ var a []uintptr
+ for _, v := range servent.Aliases {
+ cs, err := CString(v)
+ if err != nil {
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ return 0
+ }
+
+ a = append(a, cs)
+ }
+ v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0))))
+ if v == 0 {
+ Xfree(t, cname)
+ Xfree(t, protoname)
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ for _, p := range a {
+ *(*uintptr)(unsafe.Pointer(v)) = p
+ v += unsafe.Sizeof(uintptr(0))
+ }
+
+ getservbynameStaticResult = netdb.Servent{
+ Fs_name: cname,
+ Fs_aliases: v,
+ Fs_port: int32(servent.Port),
+ Fs_proto: protoname,
+ }
+ return uintptr(unsafe.Pointer(&getservbynameStaticResult))
+}
+
+func Xreaddir64(t *TLS, dir uintptr) uintptr {
+ return Xreaddir(t, dir)
+}
+
+func __syscall(r, _ uintptr, errno syscall.Errno) long {
+ if errno != 0 {
+ return long(-errno)
+ }
+
+ return long(r)
+}
+
+func X__syscall1(t *TLS, trap, p1 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0))
+}
+
+func X__syscall3(t *TLS, trap, p1, p2, p3 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3)))
+}
+
+func X__syscall4(t *TLS, trap, p1, p2, p3, p4 long) long {
+ return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0))
+}
+
+func fcntlCmdStr(cmd int32) string {
+ switch cmd {
+ case fcntl.F_GETOWN:
+ return "F_GETOWN"
+ case fcntl.F_SETLK:
+ return "F_SETLK"
+ case fcntl.F_GETLK:
+ return "F_GETLK"
+ case fcntl.F_SETFD:
+ return "F_SETFD"
+ case fcntl.F_GETFD:
+ return "F_GETFD"
+ default:
+ return fmt.Sprintf("cmd(%d)", cmd)
+ }
+}
+
+// int setenv(const char *name, const char *value, int overwrite);
+func Xsetenv(t *TLS, name, value uintptr, overwrite int32) int32 {
+ panic(todo(""))
+}
+
+// int unsetenv(const char *name);
+func Xunsetenv(t *TLS, name uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pause(void);
+func Xpause(t *TLS) int32 {
+ panic(todo(""))
+}
+
+// ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
+func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t {
+ panic(todo(""))
+}
+
+// int __isoc99_sscanf(const char *str, const char *format, ...);
+func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 {
+ r := Xsscanf(t, str, format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// void __assert(const char * func, const char * file, int line, const char *expr) __dead2;
+func X__assert(t *TLS, fn, file uintptr, line int32, expr uintptr) {
+ X__assert_fail(t, expr, file, uint32(line), fn)
+}
+
+func X__assert13(t *TLS, file uintptr, line int32, fn, msg uintptr) {
+ X__assert_fail(t, msg, file, uint32(line), fn)
+}
+
+// include/stdio.h:456:int __swbuf(int, FILE *);
+func X__swbuf(t *TLS, n int32, file uintptr) int32 {
+ return Xfputc(t, n, file) //TODO improve performance, use a real buffer.
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if err := unix.Rmdir(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// struct dirent *readdir(DIR *dirp);
+func Xreaddir(t *TLS, dir uintptr) uintptr {
+ if (*darwinDir)(unsafe.Pointer(dir)).eof {
+ return 0
+ }
+
+ if (*darwinDir)(unsafe.Pointer(dir)).l == (*darwinDir)(unsafe.Pointer(dir)).h {
+ n, err := unix.Getdirentries((*darwinDir)(unsafe.Pointer(dir)).fd, (*darwinDir)(unsafe.Pointer(dir)).buf[:], nil)
+ // trc("must read: %v %v", n, err)
+ if n == 0 {
+ if err != nil && err != io.EOF {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ }
+ (*darwinDir)(unsafe.Pointer(dir)).eof = true
+ return 0
+ }
+
+ (*darwinDir)(unsafe.Pointer(dir)).l = 0
+ (*darwinDir)(unsafe.Pointer(dir)).h = n
+ // trc("new l %v, h %v", (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h)
+ }
+ de := dir + unsafe.Offsetof(darwinDir{}.buf) + uintptr((*darwinDir)(unsafe.Pointer(dir)).l)
+ (*darwinDir)(unsafe.Pointer(dir)).l += int((*unix.Dirent)(unsafe.Pointer(de)).Reclen)
+ return de
+}
+
+type darwinDir struct {
+ buf [4096]byte
+ fd int
+ h int
+ l int
+
+ eof bool
+}
+
+// int sscanf(const char *str, const char *format, ...);
+func Xsscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// int * __error(void);
+func X__error(t *TLS) uintptr {
+ return t.errnop
+}
+
+func Xclosedir(t *TLS, dir uintptr) int32 {
+ r := Xclose(t, int32((*darwinDir)(unsafe.Pointer(dir)).fd))
+ Xfree(t, dir)
+ return r
+}
+
+// DIR *opendir(const char *name);
+func Xopendir(t *TLS, name uintptr) uintptr {
+ p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0))
+ if fd < 0 {
+ if dmesgs {
+ dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd)
+ }
+ Xfree(t, p)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ (*darwinDir)(unsafe.Pointer(p)).fd = fd
+ (*darwinDir)(unsafe.Pointer(p)).h = 0
+ (*darwinDir)(unsafe.Pointer(p)).l = 0
+ (*darwinDir)(unsafe.Pointer(p)).eof = false
+ return p
+}
+
+// int __xuname(int namesize, void *namebuf)
+func X__xuname(t *TLS, namesize int32, namebuf uintptr) int32 {
+ return Xuname(t, namebuf)
+}
+
+// int chflags(const char *path, u_int flags);
+func Xchflags(t *TLS, path uintptr, flags uint64) int32 {
+ if err := unix.Chflags(GoString(path), int(flags)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ var a [2]int
+ if err := syscall.Pipe(a[:]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*[2]int32)(unsafe.Pointer(pipefd)) = [2]int32{int32(a[0]), int32(a[1])}
+ if dmesgs {
+ dmesg("%v: %v ok", origin(1), a)
+ }
+ return 0
+}
+
+// char *inet_ntoa(struct in_addr in);
+func X__inet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ // Cannot avoid the syscall here, addr sometimes matter.
+ data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+func X__errno(t *TLS) uintptr {
+ return X__errno_location(t)
+}
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return (int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3)))
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return (*(*int32)(unsafe.Pointer((m /* &.__u */ /* &.__i */))) & 15)
+}
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4))
+ return 0
+}
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4)) = state
+ return 0
+}
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1))
+ return 0
+}
+
+// int uuid_parse( char *in, uuid_t uu);
+func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 {
+ r, err := guuid.Parse(GoString(in))
+ if err != nil {
+ return -1
+ }
+
+ copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:])
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_netbsd_amd64.go b/vendor/modernc.org/libc/libc_netbsd_amd64.go
new file mode 100644
index 00000000..9c963d00
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_netbsd_amd64.go
@@ -0,0 +1,576 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/time"
+ "modernc.org/libc/utime"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) time.Time_t {
+ panic(todo(""))
+ // n := time.Now().UTC().Unix()
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+// int getnameinfo(const struct sockaddr * restrict sa, socklen_t salen, char * restrict host, socklen_t hostlen, char * restrict serv, socklen_t servlen, int flags);
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(347)
+ //TODO defer tls.Free(347)
+
+ //TODO // var ptr [78]int8 at bp, 78
+
+ //TODO // var buf [256]int8 at bp+78, 256
+
+ //TODO // var num [13]int8 at bp+334, 13
+
+ //TODO var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ //TODO var a uintptr
+ //TODO var scopeid uint32
+
+ //TODO switch af {
+ //TODO case 2:
+ //TODO a = (sa1 + 4 /* &.sin_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO mkptr4(tls, bp /* &ptr[0] */, a)
+ //TODO scopeid = uint32(0)
+ //TODO break
+ //TODO case 10:
+ //TODO a = (sa1 + 8 /* &.sin6_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 {
+ //TODO mkptr6(tls, bp /* &ptr[0] */, a)
+ //TODO } else {
+ //TODO mkptr4(tls, bp /* &ptr[0] */, (a + uintptr(12)))
+ //TODO }
+ //TODO scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ //TODO break
+ //TODO default:
+ //TODO return -6
+ //TODO }
+
+ //TODO if (node != 0) && (nodelen != 0) {
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x01) != 0) {
+ //TODO reverse_hosts(tls, bp+78 /* &buf[0] */, a, scopeid, af)
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) && !((flags & 0x01) != 0) {
+ //TODO Xabort(tls) //TODO-
+ //TODO // unsigned char query[18+PTR_MAX], reply[512];
+ //TODO // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ //TODO // 0, 0, 0, query, sizeof query);
+ //TODO // query[3] = 0; /* don't need AD flag */
+ //TODO // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ //TODO // buf[0] = 0;
+ //TODO // if (rlen > 0)
+ //TODO // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) {
+ //TODO if (flags & 0x08) != 0 {
+ //TODO return -2
+ //TODO }
+ //TODO Xinet_ntop(tls, af, a, bp+78 /* &buf[0] */, uint32(unsafe.Sizeof([256]int8{})))
+ //TODO if scopeid != 0 {
+ //TODO Xabort(tls) //TODO-
+ //TODO // char *p = 0, tmp[IF_NAMESIZE+1];
+ //TODO // if (!(flags & NI_NUMERICSCOPE) &&
+ //TODO // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ //TODO // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ //TODO // p = if_indextoname(scopeid, tmp+1);
+ //TODO // if (!p)
+ //TODO // p = itoa(num, scopeid);
+ //TODO // *--p = '%';
+ //TODO // strcat(buf, p);
+ //TODO }
+ //TODO }
+ //TODO if Xstrlen(tls, bp+78 /* &buf[0] */) >= size_t(nodelen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, node, bp+78 /* &buf[0] */)
+ //TODO }
+
+ //TODO if (serv != 0) && (servlen != 0) {
+ //TODO var p uintptr = bp + 78 /* buf */
+ //TODO var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x02) != 0) {
+ //TODO reverse_services(tls, bp+78 /* &buf[0] */, port, (flags & 0x10))
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ //TODO p = itoa(tls, bp+334 /* &num[0] */, uint32(port))
+ //TODO }
+ //TODO if Xstrlen(tls, p) >= size_t(servlen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, serv, p)
+ //TODO }
+
+ //TODO return 0
+}
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(28)
+ //TODO defer tls.Free(28)
+
+ //TODO //TODO union {
+ //TODO //TODO struct sockaddr_in sin;
+ //TODO //TODO struct sockaddr_in6 sin6;
+ //TODO //TODO } sa = { .sin.sin_family = af };
+ //TODO *(*struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO })(unsafe.Pointer(bp /* sa1 */)) = struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO }{} //TODO-
+ //TODO (*sockaddr_in)(unsafe.Pointer(bp /* &sa1 */)).sin_family = sa_family_t(af) //TODO-
+ //TODO var sl socklen_t
+ //TODO if af == 10 {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ //TODO } else {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ //TODO }
+ //TODO var i int32
+
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ //TODO // Load address argument into sockaddr structure
+ //TODO if (af == 10) && (l == socklen_t(16)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin6 */ + 8 /* &.sin6_addr */), a, uint64(16))
+ //TODO } else if (af == 2) && (l == socklen_t(4)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin */ + 4 /* &.sin_addr */), a, uint64(4))
+ //TODO } else {
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return 22
+ //TODO }
+
+ //TODO // Align buffer and check for space for pointers and ip address
+ //TODO i = (int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))))
+ //TODO if !(i != 0) {
+ //TODO i = int32(unsafe.Sizeof(uintptr(0)))
+ //TODO }
+ //TODO if buflen <= (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) {
+ //TODO return 34
+ //TODO }
+ //TODO buf += (uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i)))
+ //TODO buflen = buflen - (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l))
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+ //TODO (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ //TODO Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ //TODO buf += uintptr(l)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ //TODO switch Xgetnameinfo(tls, bp /* &sa1 */, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ //TODO case -3:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 2
+ //TODO return 11
+ //TODO case -12:
+ //TODO return 34
+ //TODO default:
+ //TODO fallthrough
+ //TODO case -10:
+ //TODO fallthrough
+ //TODO case -11:
+ //TODO fallthrough
+ //TODO case -4:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ //TODO case 0:
+ //TODO break
+ //TODO }
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ //TODO (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ //TODO (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = h
+ //TODO return 0
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_openbsd.go b/vendor/modernc.org/libc/libc_openbsd.go
new file mode 100644
index 00000000..2e941341
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_openbsd.go
@@ -0,0 +1,1607 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "runtime/debug"
+ "strings"
+ "syscall"
+ gotime "time"
+ "unsafe"
+
+ guuid "github.com/google/uuid"
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/fts"
+ gonetdb "modernc.org/libc/honnef.co/go/netdb"
+ "modernc.org/libc/langinfo"
+ "modernc.org/libc/limits"
+ "modernc.org/libc/netdb"
+ "modernc.org/libc/netinet/in"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/socket"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/termios"
+ "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+ "modernc.org/libc/uuid"
+)
+
+var (
+ in6_addr_any in.In6_addr
+)
+
+type (
+ long = int64
+ ulong = uint64
+)
+
+// // Keep these outside of the var block otherwise go generate will miss them.
+var X__stderrp = Xstdout
+var X__stdinp = Xstdin
+var X__stdoutp = Xstdout
+var X__sF [3]stdio.FILE
+var X_tolower_tab_ = Xmalloc(nil, 2*65537)
+var X_toupper_tab_ = Xmalloc(nil, 2*65537)
+
+func init() {
+ for c := rune(0); c < 0xffff; c++ {
+ y := c
+ s := strings.ToLower(string(c))
+ a := []rune(s)
+ if len(a) != 0 {
+ y = a[0]
+ }
+ (*[65536]uint16)(unsafe.Pointer(X_tolower_tab_))[c+1] = uint16(y)
+ y = c
+ s = strings.ToUpper(string(c))
+ a = []rune(s)
+ if len(a) != 0 {
+ y = a[0]
+ }
+ (*[65536]uint16)(unsafe.Pointer(X_toupper_tab_))[c+1] = uint16(y)
+ }
+}
+
+// include/stdio.h:486:extern int __isthreaded;
+var X__isthreaded int32
+
+// lib/libc/locale/mblocal.h:62: int __mb_sb_limit;
+var X__mb_sb_limit int32 = 128 // UTF-8
+
+// include/runetype.h:94:extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
+var X_ThreadRuneLocale uintptr //TODO initialize and implement _Thread_local semantics.
+
+// include/xlocale/_ctype.h:54:_RuneLocale *__runes_for_locale(locale_t, int*);
+func X__runes_for_locale(t *TLS, l locale_t, p uintptr) uintptr {
+ panic(todo(""))
+}
+
+type file uintptr
+
+func (f file) fd() int32 { return int32((*stdio.FILE)(unsafe.Pointer(f)).F_file) }
+func (f file) setFd(fd int32) { (*stdio.FILE)(unsafe.Pointer(f)).F_file = int16(fd) }
+
+func (f file) err() bool {
+ return (*stdio.FILE)(unsafe.Pointer(f)).F_flags&1 != 0
+}
+
+func (f file) setErr() {
+ (*stdio.FILE)(unsafe.Pointer(f)).F_flags |= 1
+}
+
+func (f file) close(t *TLS) int32 {
+ fd := f.fd()
+ r := Xclose(t, fd)
+ switch fd {
+ case unistd.STDIN_FILENO, unistd.STDOUT_FILENO, unistd.STDERR_FILENO:
+ X__sF[fd] = stdio.FILE{}
+ default:
+ Xfree(t, uintptr(f))
+ }
+ if r < 0 {
+ return stdio.EOF
+ }
+
+ return 0
+}
+
+func newFile(t *TLS, fd int32) uintptr {
+ var p uintptr
+ switch fd {
+ case unistd.STDIN_FILENO:
+ p = uintptr(unsafe.Pointer(&X__sF[0]))
+ case unistd.STDOUT_FILENO:
+ p = uintptr(unsafe.Pointer(&X__sF[1]))
+ case unistd.STDERR_FILENO:
+ p = uintptr(unsafe.Pointer(&X__sF[2]))
+ default:
+ if p = Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(stdio.FILE{}))); p == 0 {
+ return 0
+ }
+ }
+ file(p).setFd(fd)
+ return p
+}
+
+func fwrite(fd int32, b []byte) (int, error) {
+ if fd == unistd.STDOUT_FILENO {
+ return write(b)
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v: %s", origin(1), fd, b)
+ // }
+ return unix.Write(int(fd), b) //TODO use Xwrite
+}
+
+// unsigned long ___runetype(__ct_rune_t) __pure;
+func X___runetype(t *TLS, x int32) ulong {
+ panic(todo(""))
+}
+
+// int fprintf(FILE *stream, const char *format, ...);
+func Xfprintf(t *TLS, stream, format, args uintptr) int32 {
+ n, _ := fwrite(int32((*stdio.FILE)(unsafe.Pointer(stream)).F_file), printf(format, args))
+ return int32(n)
+}
+
+// int usleep(useconds_t usec);
+func Xusleep(t *TLS, usec uint32) int32 {
+ gotime.Sleep(gotime.Microsecond * gotime.Duration(usec))
+ return 0
+}
+
+// int getrusage(int who, struct rusage *usage);
+func Xgetrusage(t *TLS, who int32, usage uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int fgetc(FILE *stream);
+func Xfgetc(t *TLS, stream uintptr) int32 {
+ fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_file)
+ var buf [1]byte
+ if n, _ := unix.Read(fd, buf[:]); n != 0 {
+ return int32(buf[0])
+ }
+
+ return stdio.EOF
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xlstat64(t, pathname, statbuf)
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xstat64(t, pathname, statbuf)
+}
+
+// int chdir(const char *path);
+func Xchdir(t *TLS, path uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHDIR, path, 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ return 0
+}
+
+var localtime time.Tm
+
+// struct tm *localtime(const time_t *timep);
+func Xlocaltime(_ *TLS, timep uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ localtime.Ftm_sec = int32(t.Second())
+ localtime.Ftm_min = int32(t.Minute())
+ localtime.Ftm_hour = int32(t.Hour())
+ localtime.Ftm_mday = int32(t.Day())
+ localtime.Ftm_mon = int32(t.Month() - 1)
+ localtime.Ftm_year = int32(t.Year() - 1900)
+ localtime.Ftm_wday = int32(t.Weekday())
+ localtime.Ftm_yday = int32(t.YearDay())
+ localtime.Ftm_isdst = Bool32(isTimeDST(t))
+ return uintptr(unsafe.Pointer(&localtime))
+}
+
+// struct tm *localtime_r(const time_t *timep, struct tm *result);
+func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900)
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay())
+ (*time.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t))
+ return result
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ return Xopen64(t, pathname, flags, args)
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen64(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ var mode types.Mode_t
+ if args != 0 {
+ mode = (types.Mode_t)(VaUint32(&args))
+ }
+ fdcwd := fcntl.AT_FDCWD
+ n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), pathname, uintptr(flags), uintptr(mode), 0, 0)
+ if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q %#x: %v", origin(1), GoString(pathname), flags, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, n)
+ // }
+ return int32(n)
+}
+
+// off_t lseek(int fd, off_t offset, int whence);
+func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ return types.Off_t(Xlseek64(t, fd, offset, whence))
+}
+
+func whenceStr(whence int32) string {
+ panic(todo(""))
+}
+
+var fsyncStatbuf stat.Stat
+
+// int fsync(int fd);
+func Xfsync(t *TLS, fd int32) int32 {
+ if noFsync {
+ // Simulate -DSQLITE_NO_SYNC for sqlite3 testfixture, see function full_sync in sqlite3.c
+ return Xfstat(t, fd, uintptr(unsafe.Pointer(&fsyncStatbuf)))
+ }
+
+ if _, _, err := unix.Syscall(unix.SYS_FSYNC, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// long sysconf(int name);
+func Xsysconf(t *TLS, name int32) long {
+ switch name {
+ case unistd.X_SC_PAGESIZE:
+ return long(unix.Getpagesize())
+ case unistd.X_SC_GETPW_R_SIZE_MAX:
+ return -1
+ case unistd.X_SC_GETGR_R_SIZE_MAX:
+ return -1
+ }
+
+ panic(todo("", name))
+}
+
+// int close(int fd);
+func Xclose(t *TLS, fd int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CLOSE, uintptr(fd), 0, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d: ok", origin(1), fd)
+ // }
+ return 0
+}
+
+// char *getcwd(char *buf, size_t size);
+func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr {
+ if _, err := unix.Getcwd((*RawMem)(unsafe.Pointer(buf))[:size:size]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return buf
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 {
+ return Xfstat64(t, fd, statbuf)
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 {
+ if err := unix.Ftruncate(int(fd), int64(length)); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ }
+ return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 {
+ return Xfcntl64(t, fd, cmd, args)
+}
+
+// ssize_t read(int fd, void *buf, size_t count);
+func Xread(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_READ, uintptr(fd), buf, uintptr(count))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+}
+
+// ssize_t write(int fd, const void *buf, size_t count);
+func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t {
+ const retry = 5
+ var err syscall.Errno
+ for i := 0; i < retry; i++ {
+ var n uintptr
+ switch n, _, err = unix.Syscall(unix.SYS_WRITE, uintptr(fd), buf, uintptr(count)); err {
+ case 0:
+ // if dmesgs {
+ // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ // }
+ return types.Ssize_t(n)
+ case errno.EAGAIN:
+ // nop
+ }
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err)
+ // }
+ t.setErrno(err)
+ return -1
+}
+
+// int fchmod(int fd, mode_t mode);
+func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHMOD, uintptr(fd), uintptr(mode), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#o: ok", origin(1), fd, mode)
+ // }
+ return 0
+}
+
+// int fchown(int fd, uid_t owner, gid_t group);
+func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t geteuid(void);
+func Xgeteuid(t *TLS) types.Uid_t {
+ n, _, _ := unix.Syscall(unix.SYS_GETEUID, 0, 0, 0)
+ return types.Uid_t(n)
+}
+
+// int munmap(void *addr, size_t length);
+func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int gettimeofday(struct timeval *tv, struct timezone *tz);
+func Xgettimeofday(t *TLS, tv, tz uintptr) int32 {
+ if tz != 0 {
+ panic(todo(""))
+ }
+
+ var tvs unix.Timeval
+ err := unix.Gettimeofday(&tvs)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs
+ return 0
+}
+
+// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+func Xgetsockopt(t *TLS, sockfd, level, optname int32, optval, optlen uintptr) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+func Xsetsockopt(t *TLS, sockfd, level, optname int32, optval uintptr, optlen socket.Socklen_t) int32 {
+ if _, _, err := unix.Syscall6(unix.SYS_SETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, uintptr(optlen), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int ioctl(int fd, unsigned long request, ...);
+func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 {
+ var argp uintptr
+ if va != 0 {
+ argp = VaUintptr(&va)
+ }
+ n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetsockname(t *TLS, sockfd int32, addr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETSOCKNAME, uintptr(sockfd), addr, addrlen); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v: %v", origin(1), sockfd, err)
+ // }
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
+func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 {
+ n, err := unix.Select(
+ int(nfds),
+ (*unix.FdSet)(unsafe.Pointer(readfds)),
+ (*unix.FdSet)(unsafe.Pointer(writefds)),
+ (*unix.FdSet)(unsafe.Pointer(exceptfds)),
+ (*unix.Timeval)(unsafe.Pointer(timeout)),
+ )
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int mkfifo(const char *pathname, mode_t mode);
+func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ panic(todo(""))
+}
+
+// mode_t umask(mode_t mask);
+func Xumask(t *TLS, mask types.Mode_t) types.Mode_t {
+ n, _, _ := unix.Syscall(unix.SYS_UMASK, uintptr(mask), 0, 0)
+ return types.Mode_t(n)
+}
+
+// int execvp(const char *file, char *const argv[]);
+func Xexecvp(t *TLS, file, argv uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// pid_t waitpid(pid_t pid, int *wstatus, int options);
+func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t {
+ n, _, err := unix.Syscall6(unix.SYS_WAIT4, uintptr(pid), wstatus, uintptr(optname), 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Pid_t(n)
+}
+
+// int uname(struct utsname *buf);
+func Xuname(t *TLS, buf uintptr) int32 {
+ if err := unix.Uname((*unix.Utsname)(unsafe.Pointer(buf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+func Xrecv(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_RECVFROM, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+func Xsend(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall6(unix.SYS_SENDTO, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// int shutdown(int sockfd, int how);
+func Xshutdown(t *TLS, sockfd, how int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xgetpeername(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETPEERNAME, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int socket(int domain, int type, int protocol);
+func Xsocket(t *TLS, domain, type1, protocol int32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_SOCKET, uintptr(domain), uintptr(type1), uintptr(protocol))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xbind(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ n, _, err := unix.Syscall(unix.SYS_BIND, uintptr(sockfd), addr, uintptr(addrlen))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+func Xconnect(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CONNECT, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int listen(int sockfd, int backlog);
+func Xlisten(t *TLS, sockfd, backlog int32) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_LISTEN, uintptr(sockfd), uintptr(backlog), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
+func Xaccept(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall6(unix.SYS_ACCEPT4, uintptr(sockfd), addr, uintptr(addrlen), 0, 0, 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xgetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xsetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// uid_t getuid(void);
+func Xgetuid(t *TLS) types.Uid_t {
+ return types.Uid_t(os.Getuid())
+}
+
+// pid_t getpid(void);
+func Xgetpid(t *TLS) int32 {
+ return int32(os.Getpid())
+}
+
+// int system(const char *command);
+func Xsystem(t *TLS, command uintptr) int32 {
+ s := GoString(command)
+ if command == 0 {
+ panic(todo(""))
+ }
+
+ cmd := exec.Command("sh", "-c", s)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ ps := err.(*exec.ExitError)
+ return int32(ps.ExitCode())
+ }
+
+ return 0
+}
+
+// int setvbuf(FILE *stream, char *buf, int mode, size_t size);
+func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 {
+ return 0 //TODO
+}
+
+// int raise(int sig);
+func Xraise(t *TLS, sig int32) int32 {
+ panic(todo(""))
+}
+
+// int backtrace(void **buffer, int size);
+func Xbacktrace(t *TLS, buf uintptr, size int32) int32 {
+ panic(todo(""))
+}
+
+// void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) {
+ panic(todo(""))
+}
+
+// int fileno(FILE *stream);
+func Xfileno(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+ var statp uintptr
+ if stat != nil {
+ statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+ if statp == 0 {
+ panic("OOM")
+ }
+
+ *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+ }
+ csp, errx := CString(path)
+ if errx != nil {
+ panic("OOM")
+ }
+
+ return &fts.FTSENT{
+ Ffts_info: uint16(info),
+ Ffts_path: csp,
+ Ffts_pathlen: uint64(len(path)),
+ Ffts_statp: statp,
+ Ffts_errno: int32(err),
+ }
+}
+
+func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr {
+ p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err)
+ return p
+}
+
+func ftsentClose(t *TLS, p uintptr) {
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path)
+ Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp)
+}
+
+type ftstream struct {
+ s []uintptr
+ x int
+}
+
+func (f *ftstream) close(t *TLS) {
+ for _, p := range f.s {
+ ftsentClose(t, p)
+ Xfree(t, p)
+ }
+ *f = ftstream{}
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ return Xfts64_open(t, path_argv, options, compar)
+}
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ f := &ftstream{}
+
+ var walk func(string)
+ walk = func(path string) {
+ var fi os.FileInfo
+ var err error
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ fi, err = os.Stat(path)
+ case options&fts.FTS_PHYSICAL != 0:
+ fi, err = os.Lstat(path)
+ default:
+ panic(todo(""))
+ }
+
+ if err != nil {
+ return
+ }
+
+ var statp *unix.Stat_t
+ if options&fts.FTS_NOSTAT == 0 {
+ var stat unix.Stat_t
+ switch {
+ case options&fts.FTS_LOGICAL != 0:
+ if err := unix.Stat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ case options&fts.FTS_PHYSICAL != 0:
+ if err := unix.Lstat(path, &stat); err != nil {
+ panic(todo(""))
+ }
+ default:
+ panic(todo(""))
+ }
+
+ statp = &stat
+ }
+
+ out:
+ switch {
+ case fi.IsDir():
+ f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0))
+ g, err := os.Open(path)
+ switch x := err.(type) {
+ case nil:
+ // ok
+ case *os.PathError:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES))
+ break out
+ default:
+ panic(todo("%q: %v %T", path, x, x))
+ }
+
+ names, err := g.Readdirnames(-1)
+ g.Close()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ for _, name := range names {
+ walk(path + "/" + name)
+ if f == nil {
+ break out
+ }
+ }
+
+ f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0))
+ default:
+ info := fts.FTS_F
+ if fi.Mode()&os.ModeSymlink != 0 {
+ info = fts.FTS_SL
+ }
+ switch {
+ case statp != nil:
+ f.s = append(f.s, newCFtsent(t, info, path, statp, 0))
+ case options&fts.FTS_NOSTAT != 0:
+ f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0))
+ default:
+ panic(todo(""))
+ }
+ }
+ }
+
+ for {
+ p := *(*uintptr)(unsafe.Pointer(path_argv))
+ if p == 0 {
+ if f == nil {
+ return 0
+ }
+
+ if compar != 0 {
+ panic(todo(""))
+ }
+
+ return addObject(f)
+ }
+
+ walk(GoString(p))
+ path_argv += unsafe.Sizeof(uintptr(0))
+ }
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts_read(t *TLS, ftsp uintptr) uintptr {
+ return Xfts64_read(t, ftsp)
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts64_read(t *TLS, ftsp uintptr) uintptr {
+ f := getObject(ftsp).(*ftstream)
+ if f.x == len(f.s) {
+ t.setErrno(0)
+ return 0
+ }
+
+ r := f.s[f.x]
+ if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 {
+ t.setErrno(e)
+ }
+ f.x++
+ return r
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts_close(t *TLS, ftsp uintptr) int32 {
+ return Xfts64_close(t, ftsp)
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts64_close(t *TLS, ftsp uintptr) int32 {
+ getObject(ftsp).(*ftstream).close(t)
+ removeObject(ftsp)
+ return 0
+}
+
+// void tzset (void);
+func Xtzset(t *TLS) {
+ //TODO
+}
+
+var strerrorBuf [100]byte
+
+// char *strerror(int errnum);
+func Xstrerror(t *TLS, errnum int32) uintptr {
+ if dmesgs {
+ dmesg("%v: %v\n%s", origin(1), errnum, debug.Stack())
+ }
+ copy(strerrorBuf[:], fmt.Sprintf("strerror(%d)\x00", errnum))
+ return uintptr(unsafe.Pointer(&strerrorBuf[0]))
+}
+
+// void *dlopen(const char *filename, int flags);
+func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr {
+ panic(todo(""))
+}
+
+// char *dlerror(void);
+func Xdlerror(t *TLS) uintptr {
+ panic(todo(""))
+}
+
+// int dlclose(void *handle);
+func Xdlclose(t *TLS, handle uintptr) int32 {
+ panic(todo(""))
+}
+
+// void *dlsym(void *handle, const char *symbol);
+func Xdlsym(t *TLS, handle, symbol uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void perror(const char *s);
+func Xperror(t *TLS, s uintptr) {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func Xpclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+var gai_strerrorBuf [100]byte
+
+// const char *gai_strerror(int errcode);
+func Xgai_strerror(t *TLS, errcode int32) uintptr {
+ copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode))
+ return uintptr(unsafe.Pointer(&gai_strerrorBuf))
+}
+
+// int tcgetattr(int fd, struct termios *termios_p);
+func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
+func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// speed_t cfgetospeed(const struct termios *termios_p);
+func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t {
+ panic(todo(""))
+}
+
+// int cfsetospeed(struct termios *termios_p, speed_t speed);
+func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// int cfsetispeed(struct termios *termios_p, speed_t speed);
+func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// pid_t fork(void);
+func Xfork(t *TLS) int32 {
+ t.setErrno(errno.ENOSYS)
+ return -1
+}
+
+var emptyStr = [1]byte{}
+
+// char *setlocale(int category, const char *locale);
+func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// char *nl_langinfo(nl_item item);
+func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr {
+ return uintptr(unsafe.Pointer(&emptyStr)) //TODO
+}
+
+// FILE *popen(const char *command, const char *type);
+func Xpopen(t *TLS, command, type1 uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *realpath(const char *path, char *resolved_path);
+func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr {
+ s, err := filepath.EvalSymlinks(GoString(path))
+ if err != nil {
+ if os.IsNotExist(err) {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(path), err)
+ // }
+ t.setErrno(errno.ENOENT)
+ return 0
+ }
+
+ panic(todo("", err))
+ }
+
+ if resolved_path == 0 {
+ panic(todo(""))
+ }
+
+ if len(s) >= limits.PATH_MAX {
+ s = s[:limits.PATH_MAX-1]
+ }
+
+ copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s)
+ (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0
+ return resolved_path
+}
+
+// struct tm *gmtime_r(const time_t *timep, struct tm *result);
+func Xgmtime_r(t *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *inet_ntoa(struct in_addr in);
+func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func X__ccgo_in6addr_anyp(t *TLS) uintptr {
+ return uintptr(unsafe.Pointer(&in6_addr_any))
+}
+
+func Xabort(t *TLS) {
+ panic(todo("")) //TODO
+ // if dmesgs {
+ // dmesg("%v:", origin(1))
+ // }
+ // p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(signal.Sigaction{})))
+ // if p == 0 {
+ // panic("OOM")
+ // }
+
+ // (*signal.Sigaction)(unsafe.Pointer(p)).F__sigaction_u.F__sa_handler = signal.SIG_DFL
+ // Xsigaction(t, signal.SIGABRT, p, 0)
+ // Xfree(t, p)
+ // unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT))
+ // panic(todo("unrechable"))
+}
+
+// int fflush(FILE *stream);
+func Xfflush(t *TLS, stream uintptr) int32 {
+ return 0 //TODO
+}
+
+// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_READ, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ m, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb))
+ if err != 0 {
+ file(stream).setErr()
+ return 0
+ }
+
+ // if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size)
+ // }
+ return types.Size_t(m) / size
+}
+
+// int fclose(FILE *stream);
+func Xfclose(t *TLS, stream uintptr) int32 {
+ return file(stream).close(t)
+}
+
+// int fputc(int c, FILE *stream);
+func Xfputc(t *TLS, c int32, stream uintptr) int32 {
+ if _, err := fwrite(file(stream).fd(), []byte{byte(c)}); err != nil {
+ return stdio.EOF
+ }
+
+ return int32(byte(c))
+}
+
+// int fseek(FILE *stream, long offset, int whence);
+func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 {
+ if n := Xlseek(t, int32(file(stream).fd()), types.Off_t(offset), whence); n < 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), file(stream).fd(), offset, whenceStr(whence), n)
+ // }
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), file(stream).fd(), offset, whenceStr(whence))
+ // }
+ return 0
+}
+
+// long ftell(FILE *stream);
+func Xftell(t *TLS, stream uintptr) long {
+ n := Xlseek(t, file(stream).fd(), 0, stdio.SEEK_CUR)
+ if n < 0 {
+ file(stream).setErr()
+ return -1
+ }
+
+ // if dmesgs {
+ // dmesg("%v: fd %v, n %#x: ok %#x", origin(1), file(stream).fd(), n, long(n))
+ // }
+ return long(n)
+}
+
+// int ferror(FILE *stream);
+func Xferror(t *TLS, stream uintptr) int32 {
+ return Bool32(file(stream).err())
+}
+
+// int ungetc(int c, FILE *stream);
+func Xungetc(t *TLS, c int32, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fscanf(FILE *stream, const char *format, ...);
+func Xfscanf(t *TLS, stream, format, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fputs(const char *s, FILE *stream);
+func Xfputs(t *TLS, s, stream uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), s, uintptr(Xstrlen(t, s))); err != 0 {
+ return -1
+ }
+
+ return 0
+}
+
+var getservbynameStaticResult netdb.Servent
+
+// struct servent *getservbyname(const char *name, const char *proto);
+func Xgetservbyname(t *TLS, name, proto uintptr) uintptr {
+ var protoent *gonetdb.Protoent
+ if proto != 0 {
+ protoent = gonetdb.GetProtoByName(GoString(proto))
+ }
+ servent := gonetdb.GetServByName(GoString(name), protoent)
+ if servent == nil {
+ // if dmesgs {
+ // dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent)
+ // }
+ return 0
+ }
+
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name)
+ if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 {
+ for {
+ p := *(*uintptr)(unsafe.Pointer(v))
+ if p == 0 {
+ break
+ }
+
+ Xfree(t, p)
+ v += unsafe.Sizeof(uintptr(0))
+ }
+ Xfree(t, v)
+ }
+ Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto)
+ cname, err := CString(servent.Name)
+ if err != nil {
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+
+ var protoname uintptr
+ if protoent != nil {
+ if protoname, err = CString(protoent.Name); err != nil {
+ Xfree(t, cname)
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ }
+ var a []uintptr
+ for _, v := range servent.Aliases {
+ cs, err := CString(v)
+ if err != nil {
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ return 0
+ }
+
+ a = append(a, cs)
+ }
+ v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0))))
+ if v == 0 {
+ Xfree(t, cname)
+ Xfree(t, protoname)
+ for _, v := range a {
+ Xfree(t, v)
+ }
+ getservbynameStaticResult = netdb.Servent{}
+ return 0
+ }
+ for _, p := range a {
+ *(*uintptr)(unsafe.Pointer(v)) = p
+ v += unsafe.Sizeof(uintptr(0))
+ }
+
+ getservbynameStaticResult = netdb.Servent{
+ Fs_name: cname,
+ Fs_aliases: v,
+ Fs_port: int32(servent.Port),
+ Fs_proto: protoname,
+ }
+ return uintptr(unsafe.Pointer(&getservbynameStaticResult))
+}
+
+func Xreaddir64(t *TLS, dir uintptr) uintptr {
+ return Xreaddir(t, dir)
+}
+
+func __syscall(r, _ uintptr, errno syscall.Errno) long {
+ if errno != 0 {
+ return long(-errno)
+ }
+
+ return long(r)
+}
+
+func X__syscall1(t *TLS, trap, p1 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0))
+}
+
+func X__syscall3(t *TLS, trap, p1, p2, p3 long) long {
+ return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3)))
+}
+
+func X__syscall4(t *TLS, trap, p1, p2, p3, p4 long) long {
+ return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0))
+}
+
+func fcntlCmdStr(cmd int32) string {
+ switch cmd {
+ case fcntl.F_GETOWN:
+ return "F_GETOWN"
+ case fcntl.F_SETLK:
+ return "F_SETLK"
+ case fcntl.F_GETLK:
+ return "F_GETLK"
+ case fcntl.F_SETFD:
+ return "F_SETFD"
+ case fcntl.F_GETFD:
+ return "F_GETFD"
+ default:
+ return fmt.Sprintf("cmd(%d)", cmd)
+ }
+}
+
+// int setenv(const char *name, const char *value, int overwrite);
+func Xsetenv(t *TLS, name, value uintptr, overwrite int32) int32 {
+ panic(todo(""))
+}
+
+// int unsetenv(const char *name);
+func Xunsetenv(t *TLS, name uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pause(void);
+func Xpause(t *TLS) int32 {
+ panic(todo(""))
+}
+
+// ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
+func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t {
+ panic(todo(""))
+}
+
+// int __isoc99_sscanf(const char *str, const char *format, ...);
+func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 {
+ r := Xsscanf(t, str, format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// void __assert(const char * func, const char * file, int line, const char *expr) __dead2;
+func X__assert(t *TLS, fn, file uintptr, line int32, expr uintptr) {
+ X__assert_fail(t, expr, file, uint32(line), fn)
+}
+
+func X__assert13(t *TLS, file uintptr, line int32, fn, msg uintptr) {
+ X__assert_fail(t, msg, file, uint32(line), fn)
+}
+
+// include/stdio.h:456:int __swbuf(int, FILE *);
+func X__swbuf(t *TLS, n int32, file uintptr) int32 {
+ return Xfputc(t, n, file) //TODO improve performance, use a real buffer.
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ if err := unix.Rmdir(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// struct dirent *readdir(DIR *dirp);
+func Xreaddir(t *TLS, dir uintptr) uintptr {
+ if (*darwinDir)(unsafe.Pointer(dir)).eof {
+ return 0
+ }
+
+ if (*darwinDir)(unsafe.Pointer(dir)).l == (*darwinDir)(unsafe.Pointer(dir)).h {
+ n, err := unix.Getdirentries((*darwinDir)(unsafe.Pointer(dir)).fd, (*darwinDir)(unsafe.Pointer(dir)).buf[:], nil)
+ // trc("must read: %v %v", n, err)
+ if n == 0 {
+ if err != nil && err != io.EOF {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ }
+ (*darwinDir)(unsafe.Pointer(dir)).eof = true
+ return 0
+ }
+
+ (*darwinDir)(unsafe.Pointer(dir)).l = 0
+ (*darwinDir)(unsafe.Pointer(dir)).h = n
+ // trc("new l %v, h %v", (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h)
+ }
+ de := dir + unsafe.Offsetof(darwinDir{}.buf) + uintptr((*darwinDir)(unsafe.Pointer(dir)).l)
+ (*darwinDir)(unsafe.Pointer(dir)).l += int((*unix.Dirent)(unsafe.Pointer(de)).Reclen)
+ return de
+}
+
+type darwinDir struct {
+ buf [4096]byte
+ fd int
+ h int
+ l int
+
+ eof bool
+}
+
+// int sscanf(const char *str, const char *format, ...);
+func Xsscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// int * __error(void);
+func X__error(t *TLS) uintptr {
+ return t.errnop
+}
+
+func Xclosedir(t *TLS, dir uintptr) int32 {
+ r := Xclose(t, int32((*darwinDir)(unsafe.Pointer(dir)).fd))
+ Xfree(t, dir)
+ return r
+}
+
+// DIR *opendir(const char *name);
+func Xopendir(t *TLS, name uintptr) uintptr {
+ p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{})))
+ if p == 0 {
+ panic("OOM")
+ }
+
+ fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0))
+ if fd < 0 {
+ if dmesgs {
+ dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd)
+ }
+ Xfree(t, p)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ (*darwinDir)(unsafe.Pointer(p)).fd = fd
+ (*darwinDir)(unsafe.Pointer(p)).h = 0
+ (*darwinDir)(unsafe.Pointer(p)).l = 0
+ (*darwinDir)(unsafe.Pointer(p)).eof = false
+ return p
+}
+
+// int __xuname(int namesize, void *namebuf)
+func X__xuname(t *TLS, namesize int32, namebuf uintptr) int32 {
+ return Xuname(t, namebuf)
+}
+
+// int chflags(const char *path, u_int flags);
+func Xchflags(t *TLS, path uintptr, flags uint64) int32 {
+ if err := unix.Chflags(GoString(path), int(flags)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ var a [2]int
+ if err := syscall.Pipe(a[:]); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ *(*[2]int32)(unsafe.Pointer(pipefd)) = [2]int32{int32(a[0]), int32(a[1])}
+ if dmesgs {
+ dmesg("%v: %v ok", origin(1), a)
+ }
+ return 0
+}
+
+// char *inet_ntoa(struct in_addr in);
+func X__inet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+ panic(todo(""))
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ // Cannot avoid the syscall here, addr sometimes matter.
+ data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return ^uintptr(0) // (void*)-1
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), data)
+ }
+ return data
+}
+
+func X__errno(t *TLS) uintptr {
+ return X__errno_location(t)
+}
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return (int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3)))
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return (*(*int32)(unsafe.Pointer((m /* &.__u */ /* &.__i */))) & 15)
+}
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4))
+ return 0
+}
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4)) = state
+ return 0
+}
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1))
+ return 0
+}
+
+// int uuid_parse( char *in, uuid_t uu);
+func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 {
+ r, err := guuid.Parse(GoString(in))
+ if err != nil {
+ return -1
+ }
+
+ copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:])
+ return 0
+}
+
+func X__srget(t *TLS, stream uintptr) int32 { return Xgetc(t, stream) }
+
+// void __assert2(const char *, int, const char *, const char *);
+// __assert2(__FILE__, __LINE__, __func__, #e))
+func X__assert2(t *TLS, file uintptr, line int32, fn, expr uintptr) {
+ X__assert_fail(t, expr, file, uint32(line), fn)
+}
+
+// int getpagesize(void);
+func Xgetpagesize(t *TLS) int32 {
+ return int32(unix.Getpagesize())
+}
diff --git a/vendor/modernc.org/libc/libc_openbsd_amd64.go b/vendor/modernc.org/libc/libc_openbsd_amd64.go
new file mode 100644
index 00000000..9c963d00
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_openbsd_amd64.go
@@ -0,0 +1,576 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/time"
+ "modernc.org/libc/utime"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = fcntl.O_RDONLY
+ case "r+":
+ flags = fcntl.O_RDWR
+ case "w":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "w+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC
+ case "a":
+ flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND
+ case "a+":
+ flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND
+ default:
+ panic(m)
+ }
+ fd, err := unix.Open(GoString(pathname), int(flags), 0666)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err)
+ }
+ t.setErrno(err)
+ return 0
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd)
+ }
+ if p := newFile(t, int32(fd)); p != 0 {
+ return p
+ }
+
+ panic("OOM")
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+ return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ if err := unix.Access(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ if err := unix.Unlink(GoString(pathname)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ var n int
+ var err error
+ switch {
+ case buf == 0 || bufsize == 0:
+ n, err = unix.Readlink(GoString(path), nil)
+ default:
+ n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize])
+ }
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok")
+ }
+ return types.Ssize_t(n)
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chmod(const char *pathname, mode_t mode)
+func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ }
+ return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) time.Time_t {
+ panic(todo(""))
+ // n := time.Now().UTC().Unix()
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0] = *(*unix.Timeval)(unsafe.Pointer(times))
+ a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{})))
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil {
+ if dmesgs {
+ dmesg("%v: fd %d: %v FAIL", origin(1), fd, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ n, err := unix.Seek(int(fd), int64(offset), int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return types.Off_t(n)
+}
+
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ var arg uintptr
+ if args != 0 {
+ arg = *(*uintptr)(unsafe.Pointer(args))
+ }
+ n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ if err != 0 {
+ if dmesgs {
+ dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ }
+ return int32(n)
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ var a []unix.Timeval
+ if times != 0 {
+ a = make([]unix.Timeval, 2)
+ a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime
+ a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime
+ }
+ if err := unix.Utimes(GoString(filename), a); err != nil {
+ if dmesgs {
+ dmesg("%v: %v FAIL", origin(1), err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: ok", origin(1))
+ }
+ return 0
+}
+
+// int chown(const char *pathname, uid_t owner, gid_t group);
+func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+// int getnameinfo(const struct sockaddr * restrict sa, socklen_t salen, char * restrict host, socklen_t hostlen, char * restrict serv, socklen_t servlen, int flags);
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(347)
+ //TODO defer tls.Free(347)
+
+ //TODO // var ptr [78]int8 at bp, 78
+
+ //TODO // var buf [256]int8 at bp+78, 256
+
+ //TODO // var num [13]int8 at bp+334, 13
+
+ //TODO var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ //TODO var a uintptr
+ //TODO var scopeid uint32
+
+ //TODO switch af {
+ //TODO case 2:
+ //TODO a = (sa1 + 4 /* &.sin_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO mkptr4(tls, bp /* &ptr[0] */, a)
+ //TODO scopeid = uint32(0)
+ //TODO break
+ //TODO case 10:
+ //TODO a = (sa1 + 8 /* &.sin6_addr */)
+ //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{}))) {
+ //TODO return -6
+ //TODO }
+ //TODO if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 {
+ //TODO mkptr6(tls, bp /* &ptr[0] */, a)
+ //TODO } else {
+ //TODO mkptr4(tls, bp /* &ptr[0] */, (a + uintptr(12)))
+ //TODO }
+ //TODO scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ //TODO break
+ //TODO default:
+ //TODO return -6
+ //TODO }
+
+ //TODO if (node != 0) && (nodelen != 0) {
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x01) != 0) {
+ //TODO reverse_hosts(tls, bp+78 /* &buf[0] */, a, scopeid, af)
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) && !((flags & 0x01) != 0) {
+ //TODO Xabort(tls) //TODO-
+ //TODO // unsigned char query[18+PTR_MAX], reply[512];
+ //TODO // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ //TODO // 0, 0, 0, query, sizeof query);
+ //TODO // query[3] = 0; /* don't need AD flag */
+ //TODO // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ //TODO // buf[0] = 0;
+ //TODO // if (rlen > 0)
+ //TODO // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) {
+ //TODO if (flags & 0x08) != 0 {
+ //TODO return -2
+ //TODO }
+ //TODO Xinet_ntop(tls, af, a, bp+78 /* &buf[0] */, uint32(unsafe.Sizeof([256]int8{})))
+ //TODO if scopeid != 0 {
+ //TODO Xabort(tls) //TODO-
+ //TODO // char *p = 0, tmp[IF_NAMESIZE+1];
+ //TODO // if (!(flags & NI_NUMERICSCOPE) &&
+ //TODO // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ //TODO // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ //TODO // p = if_indextoname(scopeid, tmp+1);
+ //TODO // if (!p)
+ //TODO // p = itoa(num, scopeid);
+ //TODO // *--p = '%';
+ //TODO // strcat(buf, p);
+ //TODO }
+ //TODO }
+ //TODO if Xstrlen(tls, bp+78 /* &buf[0] */) >= size_t(nodelen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, node, bp+78 /* &buf[0] */)
+ //TODO }
+
+ //TODO if (serv != 0) && (servlen != 0) {
+ //TODO var p uintptr = bp + 78 /* buf */
+ //TODO var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0)
+ //TODO if !((flags & 0x02) != 0) {
+ //TODO reverse_services(tls, bp+78 /* &buf[0] */, port, (flags & 0x10))
+ //TODO }
+ //TODO if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ //TODO p = itoa(tls, bp+334 /* &num[0] */, uint32(port))
+ //TODO }
+ //TODO if Xstrlen(tls, p) >= size_t(servlen) {
+ //TODO return -12
+ //TODO }
+ //TODO Xstrcpy(tls, serv, p)
+ //TODO }
+
+ //TODO return 0
+}
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ panic(todo(""))
+ //TODO bp := tls.Alloc(28)
+ //TODO defer tls.Free(28)
+
+ //TODO //TODO union {
+ //TODO //TODO struct sockaddr_in sin;
+ //TODO //TODO struct sockaddr_in6 sin6;
+ //TODO //TODO } sa = { .sin.sin_family = af };
+ //TODO *(*struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO })(unsafe.Pointer(bp /* sa1 */)) = struct {
+ //TODO sin sockaddr_in
+ //TODO _ [12]byte
+ //TODO }{} //TODO-
+ //TODO (*sockaddr_in)(unsafe.Pointer(bp /* &sa1 */)).sin_family = sa_family_t(af) //TODO-
+ //TODO var sl socklen_t
+ //TODO if af == 10 {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ //TODO } else {
+ //TODO sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ //TODO }
+ //TODO var i int32
+
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ //TODO // Load address argument into sockaddr structure
+ //TODO if (af == 10) && (l == socklen_t(16)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin6 */ + 8 /* &.sin6_addr */), a, uint64(16))
+ //TODO } else if (af == 2) && (l == socklen_t(4)) {
+ //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin */ + 4 /* &.sin_addr */), a, uint64(4))
+ //TODO } else {
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return 22
+ //TODO }
+
+ //TODO // Align buffer and check for space for pointers and ip address
+ //TODO i = (int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))))
+ //TODO if !(i != 0) {
+ //TODO i = int32(unsafe.Sizeof(uintptr(0)))
+ //TODO }
+ //TODO if buflen <= (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) {
+ //TODO return 34
+ //TODO }
+ //TODO buf += (uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i)))
+ //TODO buflen = buflen - (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l))
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+ //TODO (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))))
+
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ //TODO Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ //TODO buf += uintptr(l)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ //TODO switch Xgetnameinfo(tls, bp /* &sa1 */, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ //TODO case -3:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 2
+ //TODO return 11
+ //TODO case -12:
+ //TODO return 34
+ //TODO default:
+ //TODO fallthrough
+ //TODO case -10:
+ //TODO fallthrough
+ //TODO case -11:
+ //TODO fallthrough
+ //TODO case -4:
+ //TODO *(*int32)(unsafe.Pointer(err)) = 3
+ //TODO return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ //TODO case 0:
+ //TODO break
+ //TODO }
+
+ //TODO (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ //TODO (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ //TODO (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ //TODO *(*uintptr)(unsafe.Pointer(res)) = h
+ //TODO return 0
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
diff --git a/vendor/modernc.org/libc/libc_unix.go b/vendor/modernc.org/libc/libc_unix.go
new file mode 100644
index 00000000..eb31f1d3
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_unix.go
@@ -0,0 +1,994 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build linux || darwin || freebsd || netbsd || openbsd
+// +build linux darwin freebsd netbsd openbsd
+
+package libc // import "modernc.org/libc"
+
+import (
+ "bufio"
+ "io/ioutil"
+ "math"
+ "math/rand"
+ "os"
+ gosignal "os/signal"
+ "reflect"
+ "strconv"
+ "strings"
+ "sync"
+ "syscall"
+ "time"
+ "unsafe"
+
+ guuid "github.com/google/uuid"
+ "golang.org/x/sys/unix"
+ "modernc.org/libc/errno"
+ "modernc.org/libc/grp"
+ "modernc.org/libc/poll"
+ "modernc.org/libc/pwd"
+ "modernc.org/libc/signal"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/stdlib"
+ "modernc.org/libc/sys/types"
+ ctime "modernc.org/libc/time"
+)
+
+var staticGetpwnam pwd.Passwd
+
+func init() {
+ atExit = append(atExit, func() { closePasswd(&staticGetpwnam) })
+}
+
+// sighandler_t signal(int signum, sighandler_t handler);
+func Xsignal(t *TLS, signum int32, handler uintptr) uintptr { //TODO use sigaction?
+ signalsMu.Lock()
+
+ defer signalsMu.Unlock()
+
+ r := signals[signum]
+ signals[signum] = handler
+ switch handler {
+ case signal.SIG_DFL:
+ panic(todo("%v %#x", syscall.Signal(signum), handler))
+ case signal.SIG_IGN:
+ switch r {
+ case signal.SIG_DFL:
+ gosignal.Ignore(syscall.Signal(signum)) //TODO
+ case signal.SIG_IGN:
+ gosignal.Ignore(syscall.Signal(signum))
+ default:
+ panic(todo("%v %#x", syscall.Signal(signum), handler))
+ }
+ default:
+ switch r {
+ case signal.SIG_DFL:
+ c := make(chan os.Signal, 1)
+ gosignal.Notify(c, syscall.Signal(signum))
+ go func() { //TODO mechanism to stop/cancel
+ for {
+ <-c
+ var f func(*TLS, int32)
+ *(*uintptr)(unsafe.Pointer(&f)) = handler
+ tls := NewTLS()
+ f(tls, signum)
+ tls.Close()
+ }
+ }()
+ case signal.SIG_IGN:
+ panic(todo("%v %#x", syscall.Signal(signum), handler))
+ default:
+ panic(todo("%v %#x", syscall.Signal(signum), handler))
+ }
+ }
+ return r
+}
+
+// void rewind(FILE *stream);
+func Xrewind(t *TLS, stream uintptr) {
+ Xfseek(t, stream, 0, stdio.SEEK_SET)
+}
+
+// int putchar(int c);
+func Xputchar(t *TLS, c int32) int32 {
+ if _, err := write([]byte{byte(c)}); err != nil {
+ return stdio.EOF
+ }
+
+ return int32(c)
+}
+
+// int gethostname(char *name, size_t len);
+func Xgethostname(t *TLS, name uintptr, slen types.Size_t) int32 {
+ if slen < 0 {
+ t.setErrno(errno.EINVAL)
+ return -1
+ }
+
+ if slen == 0 {
+ return 0
+ }
+
+ s, err := os.Hostname()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ n := len(s)
+ if len(s) >= int(slen) {
+ n = int(slen) - 1
+ }
+ sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
+ copy((*RawMem)(unsafe.Pointer(name))[:n:n], (*RawMem)(unsafe.Pointer(sh.Data))[:n:n])
+ *(*byte)(unsafe.Pointer(name + uintptr(n))) = 0
+ return 0
+}
+
+// int remove(const char *pathname);
+func Xremove(t *TLS, pathname uintptr) int32 {
+ panic(todo(""))
+}
+
+// long pathconf(const char *path, int name);
+func Xpathconf(t *TLS, path uintptr, name int32) long {
+ panic(todo(""))
+}
+
+// ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
+func Xrecvfrom(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32, src_addr, addrlen uintptr) types.Ssize_t {
+ panic(todo(""))
+}
+
+// ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);
+func Xsendto(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32, src_addr uintptr, addrlen socklen_t) types.Ssize_t {
+ panic(todo(""))
+}
+
+// void srand48(long int seedval);
+func Xsrand48(t *TLS, seedval long) {
+ panic(todo(""))
+}
+
+// long int lrand48(void);
+func Xlrand48(t *TLS) long {
+ panic(todo(""))
+}
+
+// ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);
+func Xsendmsg(t *TLS, sockfd int32, msg uintptr, flags int32) types.Ssize_t {
+ panic(todo(""))
+}
+
+// int poll(struct pollfd *fds, nfds_t nfds, int timeout);
+func Xpoll(t *TLS, fds uintptr, nfds poll.Nfds_t, timeout int32) int32 {
+ if nfds == 0 {
+ panic(todo(""))
+ }
+
+ // if dmesgs {
+ // dmesg("%v: %#x %v %v, %+v", origin(1), fds, nfds, timeout, (*[1000]unix.PollFd)(unsafe.Pointer(fds))[:nfds:nfds])
+ // }
+ n, err := unix.Poll((*[1000]unix.PollFd)(unsafe.Pointer(fds))[:nfds:nfds], int(timeout))
+ // if dmesgs {
+ // dmesg("%v: %v %v", origin(1), n, err)
+ // }
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(n)
+}
+
+// ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
+func Xrecvmsg(t *TLS, sockfd int32, msg uintptr, flags int32) types.Ssize_t {
+ n, _, err := unix.Syscall(unix.SYS_RECVMSG, uintptr(sockfd), msg, uintptr(flags))
+ if err != 0 {
+ t.setErrno(err)
+ return -1
+ }
+
+ return types.Ssize_t(n)
+}
+
+// struct cmsghdr *CMSG_NXTHDR(struct msghdr *msgh, struct cmsghdr *cmsg);
+func X__cmsg_nxthdr(t *TLS, msgh, cmsg uintptr) uintptr {
+ panic(todo(""))
+}
+
+// wchar_t *wcschr(const wchar_t *wcs, wchar_t wc);
+func Xwcschr(t *TLS, wcs uintptr, wc wchar_t) wchar_t {
+ panic(todo(""))
+}
+
+// gid_t getegid(void);
+func Xgetegid(t *TLS) types.Gid_t {
+ panic(todo(""))
+}
+
+// gid_t getgid(void);
+func Xgetgid(t *TLS) types.Gid_t {
+ panic(todo(""))
+}
+
+// void *shmat(int shmid, const void *shmaddr, int shmflg);
+func Xshmat(t *TLS, shmid int32, shmaddr uintptr, shmflg int32) uintptr {
+ panic(todo(""))
+}
+
+// int shmctl(int shmid, int cmd, struct shmid_ds *buf);
+func Xshmctl(t *TLS, shmid, cmd int32, buf uintptr) int32 {
+ panic(todo(""))
+}
+
+// int shmdt(const void *shmaddr);
+func Xshmdt(t *TLS, shmaddr uintptr) int32 {
+ panic(todo(""))
+}
+
+// int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
+func Xgetresuid(t *TLS, ruid, euid, suid uintptr) int32 {
+ panic(todo(""))
+}
+
+// int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
+func Xgetresgid(t *TLS, rgid, egid, sgid uintptr) int32 {
+ panic(todo(""))
+}
+
+// FILE *tmpfile(void);
+func Xtmpfile(t *TLS) uintptr {
+ f, err := ioutil.TempFile("", "tmpfile-")
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+
+ cf := newFile(t, int32(f.Fd()))
+ AtExit(func() {
+ nm := f.Name()
+ file(cf).close(t)
+ os.Remove(nm)
+ })
+
+ return cf
+}
+
+// FILE *fdopen(int fd, const char *mode);
+func Xfdopen(t *TLS, fd int32, mode uintptr) uintptr {
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ switch m {
+ case
+ "a",
+ "a+",
+ "r",
+ "r+",
+ "w",
+ "w+":
+ default:
+ t.setErrno(errno.EINVAL)
+ return 0
+ }
+
+ if p := newFile(t, fd); p != 0 {
+ return p
+ }
+
+ t.setErrno(errno.EINVAL)
+ return 0
+}
+
+// struct passwd *getpwnam(const char *name);
+func Xgetpwnam(t *TLS, name uintptr) uintptr {
+ f, err := os.Open("/etc/passwd")
+ if err != nil {
+ panic(todo("", err))
+ }
+
+ defer f.Close()
+
+ sname := GoString(name)
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if s == "" || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:0:root:/root:/bin/bash"
+ a := strings.Split(s, ":")
+ if len(a) < 7 {
+ panic(todo(""))
+ }
+
+ if a[0] == sname {
+ uid, err := strconv.Atoi(a[2])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ gid, err := strconv.Atoi(a[3])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ closePasswd(&staticGetpwnam)
+ gecos := a[4]
+ if strings.Contains(gecos, ",") {
+ a := strings.Split(gecos, ",")
+ gecos = a[0]
+ }
+ initPasswd(t, &staticGetpwnam, a[0], a[1], uint32(uid), uint32(gid), gecos, a[5], a[6])
+ return uintptr(unsafe.Pointer(&staticGetpwnam))
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int getpwnam_r(char *name, struct passwd *pwd, char *buf, size_t buflen, struct passwd **result);
+func Xgetpwnam_r(t *TLS, name, cpwd, buf uintptr, buflen types.Size_t, result uintptr) int32 {
+ f, err := os.Open("/etc/passwd")
+ if err != nil {
+ panic(todo("", err))
+ }
+
+ defer f.Close()
+
+ sname := GoString(name)
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if s == "" || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:0:root:/root:/bin/bash"
+ a := strings.Split(s, ":")
+ if len(a) < 7 {
+ panic(todo("%q", s))
+ }
+
+ if a[0] == sname {
+ uid, err := strconv.Atoi(a[2])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ gid, err := strconv.Atoi(a[3])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ gecos := a[4]
+ if strings.Contains(gecos, ",") {
+ a := strings.Split(gecos, ",")
+ gecos = a[0]
+ }
+ var v pwd.Passwd
+ if initPasswd2(t, buf, buflen, &v, a[0], a[1], uint32(uid), uint32(gid), gecos, a[5], a[6]) {
+ *(*pwd.Passwd)(unsafe.Pointer(cpwd)) = v
+ *(*uintptr)(unsafe.Pointer(result)) = cpwd
+ return 0
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return errno.ERANGE
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return 0
+}
+
+func init() {
+ atExit = append(atExit, func() { closeGroup(&staticGetgrgid) })
+}
+
+var staticGetgrgid grp.Group
+
+// struct group *getgrgid(gid_t gid);
+func Xgetgrgid(t *TLS, gid uint32) uintptr {
+ f, err := os.Open("/etc/group")
+ if err != nil {
+ panic(todo(""))
+ }
+
+ defer f.Close()
+
+ sid := strconv.Itoa(int(gid))
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if s == "" || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:"
+ a := strings.Split(s, ":")
+ if len(a) < 4 {
+ panic(todo("%q", s))
+ }
+
+ if a[2] == sid {
+ closeGroup(&staticGetgrgid)
+ var names []string
+ if a[3] != "" {
+ names = strings.Split(a[3], ",")
+ }
+ initGroup(t, &staticGetgrgid, a[0], a[1], gid, names)
+ return uintptr(unsafe.Pointer(&staticGetgrgid))
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int getgrgid_r(gid_t gid, struct group *grp, char *buf, size_t buflen, struct group **result);
+func Xgetgrgid_r(t *TLS, gid uint32, pGrp, buf uintptr, buflen types.Size_t, result uintptr) int32 {
+ f, err := os.Open("/etc/group")
+ if err != nil {
+ panic(todo(""))
+ }
+
+ defer f.Close()
+
+ sid := strconv.Itoa(int(gid))
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if s == "" || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:"
+ a := strings.Split(s, ":")
+ if len(a) < 4 {
+ panic(todo("%q", s))
+ }
+
+ if a[2] == sid {
+ var names []string
+ if a[3] != "" {
+ names = strings.Split(a[3], ",")
+ }
+ var x grp.Group
+ if initGroup2(buf, buflen, &x, a[0], a[1], gid, names) {
+ *(*grp.Group)(unsafe.Pointer(pGrp)) = x
+ *(*uintptr)(unsafe.Pointer(result)) = pGrp
+ return 0
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return 0
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return 0
+}
+
+func initPasswd2(t *TLS, buf uintptr, buflen types.Size_t, p *pwd.Passwd, name, pwd string, uid, gid uint32, gecos, dir, shell string) bool {
+ p.Fpw_name, buf, buflen = bufString(buf, buflen, name)
+ if buf == 0 {
+ return false
+ }
+
+ p.Fpw_passwd, buf, buflen = bufString(buf, buflen, pwd)
+ if buf == 0 {
+ return false
+ }
+
+ p.Fpw_uid = uid
+ p.Fpw_gid = gid
+ if buf == 0 {
+ return false
+ }
+
+ p.Fpw_gecos, buf, buflen = bufString(buf, buflen, gecos)
+ if buf == 0 {
+ return false
+ }
+
+ p.Fpw_dir, buf, buflen = bufString(buf, buflen, dir)
+ if buf == 0 {
+ return false
+ }
+
+ p.Fpw_shell, buf, buflen = bufString(buf, buflen, shell)
+ if buf == 0 {
+ return false
+ }
+
+ return true
+}
+
+func bufString(buf uintptr, buflen types.Size_t, s string) (uintptr, uintptr, types.Size_t) {
+ buf0 := buf
+ rq := len(s) + 1
+ if rq > int(buflen) {
+ return 0, 0, 0
+ }
+
+ copy((*RawMem)(unsafe.Pointer(buf))[:len(s):len(s)], s)
+ buf += uintptr(len(s))
+ *(*byte)(unsafe.Pointer(buf)) = 0
+ return buf0, buf + 1, buflen - types.Size_t(rq)
+}
+
+func closeGroup(p *grp.Group) {
+ Xfree(nil, p.Fgr_name)
+ Xfree(nil, p.Fgr_passwd)
+ if p := p.Fgr_mem; p != 0 {
+ for {
+ q := *(*uintptr)(unsafe.Pointer(p))
+ if q == 0 {
+ break
+ }
+
+ Xfree(nil, q)
+ p += unsafe.Sizeof(uintptr(0))
+ }
+ }
+ *p = grp.Group{}
+}
+
+func initGroup(t *TLS, p *grp.Group, name, pwd string, gid uint32, names []string) {
+ p.Fgr_name = cString(t, name)
+ p.Fgr_passwd = cString(t, pwd)
+ p.Fgr_gid = gid
+ a := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(uintptr(0)))*types.Size_t((len(names)+1)))
+ if a == 0 {
+ panic("OOM")
+ }
+
+ for p := a; len(names) != 0; p += unsafe.Sizeof(uintptr(0)) {
+ *(*uintptr)(unsafe.Pointer(p)) = cString(t, names[0])
+ names = names[1:]
+ }
+ p.Fgr_mem = a
+}
+
+func initGroup2(buf uintptr, buflen types.Size_t, p *grp.Group, name, pwd string, gid uint32, names []string) bool {
+ p.Fgr_name, buf, buflen = bufString(buf, buflen, name)
+ if buf == 0 {
+ return false
+ }
+
+ p.Fgr_passwd, buf, buflen = bufString(buf, buflen, pwd)
+ if buf == 0 {
+ return false
+ }
+
+ p.Fgr_gid = gid
+ rq := unsafe.Sizeof(uintptr(0)) * uintptr(len(names)+1)
+ if rq > uintptr(buflen) {
+ return false
+ }
+
+ a := buf
+ buf += rq
+ for ; len(names) != 0; buf += unsafe.Sizeof(uintptr(0)) {
+ if len(names[0])+1 > int(buflen) {
+ return false
+ }
+
+ *(*uintptr)(unsafe.Pointer(buf)), buf, buflen = bufString(buf, buflen, names[0])
+ names = names[1:]
+ }
+ *(*uintptr)(unsafe.Pointer(buf)) = 0
+ p.Fgr_mem = a
+ return true
+}
+
+func init() {
+ atExit = append(atExit, func() { closeGroup(&staticGetgrgid) })
+}
+
+var staticGetpwuid pwd.Passwd
+
+func init() {
+ atExit = append(atExit, func() { closePasswd(&staticGetpwuid) })
+}
+
+func closePasswd(p *pwd.Passwd) {
+ Xfree(nil, p.Fpw_name)
+ Xfree(nil, p.Fpw_passwd)
+ Xfree(nil, p.Fpw_gecos)
+ Xfree(nil, p.Fpw_dir)
+ Xfree(nil, p.Fpw_shell)
+ *p = pwd.Passwd{}
+}
+
+var staticGetgrnam grp.Group
+
+func init() {
+ atExit = append(atExit, func() { closeGroup(&staticGetgrnam) })
+}
+
+// struct passwd *getpwuid(uid_t uid);
+func Xgetpwuid(t *TLS, uid uint32) uintptr {
+ f, err := os.Open("/etc/passwd")
+ if err != nil {
+ panic(todo("", err))
+ }
+
+ defer f.Close()
+
+ sid := strconv.Itoa(int(uid))
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if len(s) == 0 || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:0:root:/root:/bin/bash"
+ a := strings.Split(s, ":")
+ if len(a) < 7 {
+ panic(todo("%q", s))
+ }
+
+ if a[2] == sid {
+ uid, err := strconv.Atoi(a[2])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ gid, err := strconv.Atoi(a[3])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ closePasswd(&staticGetpwuid)
+ gecos := a[4]
+ if strings.Contains(gecos, ",") {
+ a := strings.Split(gecos, ",")
+ gecos = a[0]
+ }
+ initPasswd(t, &staticGetpwuid, a[0], a[1], uint32(uid), uint32(gid), gecos, a[5], a[6])
+ return uintptr(unsafe.Pointer(&staticGetpwuid))
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+func initPasswd(t *TLS, p *pwd.Passwd, name, pwd string, uid, gid uint32, gecos, dir, shell string) {
+ p.Fpw_name = cString(t, name)
+ p.Fpw_passwd = cString(t, pwd)
+ p.Fpw_uid = uid
+ p.Fpw_gid = gid
+ p.Fpw_gecos = cString(t, gecos)
+ p.Fpw_dir = cString(t, dir)
+ p.Fpw_shell = cString(t, shell)
+}
+
+// struct group *getgrnam(const char *name);
+func Xgetgrnam(t *TLS, name uintptr) uintptr {
+ f, err := os.Open("/etc/group")
+ if err != nil {
+ panic(todo(""))
+ }
+
+ defer f.Close()
+
+ sname := GoString(name)
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if len(s) == 0 || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:"
+ a := strings.Split(s, ":")
+ if len(a) < 4 {
+ panic(todo("%q", s))
+ }
+
+ if a[0] == sname {
+ closeGroup(&staticGetgrnam)
+ gid, err := strconv.Atoi(a[2])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ var names []string
+ if a[3] != "" {
+ names = strings.Split(a[3], ",")
+ }
+ initGroup(t, &staticGetgrnam, a[0], a[1], uint32(gid), names)
+ return uintptr(unsafe.Pointer(&staticGetgrnam))
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ return 0
+}
+
+// int getgrnam_r(const char *name, struct group *grp, char *buf, size_t buflen, struct group **result);
+func Xgetgrnam_r(t *TLS, name, pGrp, buf uintptr, buflen types.Size_t, result uintptr) int32 {
+ f, err := os.Open("/etc/group")
+ if err != nil {
+ panic(todo(""))
+ }
+
+ defer f.Close()
+
+ sname := GoString(name)
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if len(s) == 0 || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:"
+ a := strings.Split(s, ":")
+ if len(a) < 4 {
+ panic(todo("%q", s))
+ }
+
+ if a[0] == sname {
+ gid, err := strconv.Atoi(a[2])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ var names []string
+ if a[3] != "" {
+ names = strings.Split(a[3], ",")
+ }
+ var x grp.Group
+ if initGroup2(buf, buflen, &x, a[0], a[1], uint32(gid), names) {
+ *(*grp.Group)(unsafe.Pointer(pGrp)) = x
+ *(*uintptr)(unsafe.Pointer(result)) = pGrp
+ return 0
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return 0
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return 0
+}
+
+// int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf, size_t buflen, struct passwd **result);
+func Xgetpwuid_r(t *TLS, uid types.Uid_t, cpwd, buf uintptr, buflen types.Size_t, result uintptr) int32 {
+ f, err := os.Open("/etc/passwd")
+ if err != nil {
+ panic(todo("", err))
+ }
+
+ defer f.Close()
+
+ sid := strconv.Itoa(int(uid))
+ sc := bufio.NewScanner(f)
+ for sc.Scan() {
+ s := strings.TrimSpace(sc.Text())
+ if len(s) == 0 || strings.HasPrefix(s, "#") {
+ continue
+ }
+
+ // eg. "root:x:0:0:root:/root:/bin/bash"
+ a := strings.Split(s, ":")
+ if len(a) < 7 {
+ panic(todo("%q", s))
+ }
+
+ if a[2] == sid {
+ uid, err := strconv.Atoi(a[2])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ gid, err := strconv.Atoi(a[3])
+ if err != nil {
+ panic(todo(""))
+ }
+
+ gecos := a[4]
+ if strings.Contains(gecos, ",") {
+ a := strings.Split(gecos, ",")
+ gecos = a[0]
+ }
+ var v pwd.Passwd
+ if initPasswd2(t, buf, buflen, &v, a[0], a[1], uint32(uid), uint32(gid), gecos, a[5], a[6]) {
+ *(*pwd.Passwd)(unsafe.Pointer(cpwd)) = v
+ *(*uintptr)(unsafe.Pointer(result)) = cpwd
+ return 0
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return errno.ERANGE
+ }
+ }
+
+ if sc.Err() != nil {
+ panic(todo(""))
+ }
+
+ *(*uintptr)(unsafe.Pointer(result)) = 0
+ return 0
+}
+
+// int mkostemp(char *template, int flags);
+func Xmkostemp(t *TLS, template uintptr, flags int32) int32 {
+ len := uintptr(Xstrlen(t, template))
+ x := template + uintptr(len-6)
+ for i := uintptr(0); i < 6; i++ {
+ if *(*byte)(unsafe.Pointer(x + i)) != 'X' {
+ t.setErrno(errno.EINVAL)
+ return -1
+ }
+ }
+
+ fd, err := tempFile(template, x, flags)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(fd)
+}
+
+// void uuid_generate_random(uuid_t out);
+func Xuuid_generate_random(t *TLS, out uintptr) {
+ x := guuid.New()
+ copy((*RawMem)(unsafe.Pointer(out))[:], x[:])
+}
+
+// void uuid_unparse(uuid_t uu, char *out);
+func Xuuid_unparse(t *TLS, uu, out uintptr) {
+ s := (*guuid.UUID)(unsafe.Pointer(uu)).String()
+ copy((*RawMem)(unsafe.Pointer(out))[:], s)
+ *(*byte)(unsafe.Pointer(out + uintptr(len(s)))) = 0
+}
+
+var staticRandomData = &rand.Rand{}
+
+// char *initstate(unsigned seed, char *state, size_t size);
+func Xinitstate(t *TLS, seed uint32, statebuf uintptr, statelen types.Size_t) uintptr {
+ staticRandomData = rand.New(rand.NewSource(int64(seed)))
+ return 0
+}
+
+// char *setstate(const char *state);
+func Xsetstate(t *TLS, state uintptr) uintptr {
+ t.setErrno(errno.EINVAL) //TODO
+ return 0
+}
+
+// The initstate_r() function is like initstate(3) except that it initializes
+// the state in the object pointed to by buf, rather than initializing the
+// global state variable. Before calling this function, the buf.state field
+// must be initialized to NULL. The initstate_r() function records a pointer
+// to the statebuf argument inside the structure pointed to by buf. Thus,
+// state‐ buf should not be deallocated so long as buf is still in use. (So,
+// statebuf should typically be allocated as a static variable, or allocated on
+// the heap using malloc(3) or similar.)
+//
+// char *initstate_r(unsigned int seed, char *statebuf, size_t statelen, struct random_data *buf);
+func Xinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen types.Size_t, buf uintptr) int32 {
+ if buf == 0 {
+ panic(todo(""))
+ }
+
+ randomDataMu.Lock()
+
+ defer randomDataMu.Unlock()
+
+ randomData[buf] = rand.New(rand.NewSource(int64(seed)))
+ return 0
+}
+
+var (
+ randomData = map[uintptr]*rand.Rand{}
+ randomDataMu sync.Mutex
+)
+
+// int mkstemps(char *template, int suffixlen);
+func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 {
+ return Xmkstemps64(t, template, suffixlen)
+}
+
+// int mkstemps(char *template, int suffixlen);
+func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 {
+ len := uintptr(Xstrlen(t, template))
+ x := template + uintptr(len-6) - uintptr(suffixlen)
+ for i := uintptr(0); i < 6; i++ {
+ if *(*byte)(unsafe.Pointer(x + i)) != 'X' {
+ t.setErrno(errno.EINVAL)
+ return -1
+ }
+ }
+
+ fd, err := tempFile(template, x, 0)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return int32(fd)
+}
+
+// int mkstemp(char *template);
+func Xmkstemp(t *TLS, template uintptr) int32 {
+ return Xmkstemp64(t, template)
+}
+
+// int mkstemp(char *template);
+func Xmkstemp64(t *TLS, template uintptr) int32 {
+ return Xmkstemps64(t, template, 0)
+}
+
+// int random_r(struct random_data *buf, int32_t *result);
+func Xrandom_r(t *TLS, buf, result uintptr) int32 {
+ randomDataMu.Lock()
+
+ defer randomDataMu.Unlock()
+
+ mr := randomData[buf]
+ if stdlib.RAND_MAX != math.MaxInt32 {
+ panic(todo(""))
+ }
+ *(*int32)(unsafe.Pointer(result)) = mr.Int31()
+ return 0
+}
+
+// int strerror_r(int errnum, char *buf, size_t buflen);
+func Xstrerror_r(t *TLS, errnum int32, buf uintptr, buflen size_t) int32 {
+ panic(todo(""))
+}
+
+// void endpwent(void);
+func Xendpwent(t *TLS) {
+ // nop
+}
+
+var ctimeStaticBuf [32]byte
+
+// char *ctime(const time_t *timep);
+func Xctime(t *TLS, timep uintptr) uintptr {
+ return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0])))
+}
+
+// char *ctime_r(const time_t *timep, char *buf);
+func Xctime_r(t *TLS, timep, buf uintptr) uintptr {
+ ut := *(*ctime.Time_t)(unsafe.Pointer(timep))
+ tm := time.Unix(int64(ut), 0).Local()
+ s := tm.Format(time.ANSIC) + "\n\x00"
+ copy((*RawMem)(unsafe.Pointer(buf))[:26:26], s)
+ return buf
+}
diff --git a/vendor/modernc.org/libc/libc_windows.go b/vendor/modernc.org/libc/libc_windows.go
new file mode 100644
index 00000000..2c5012ca
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_windows.go
@@ -0,0 +1,5876 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "errors"
+ "fmt"
+ "math"
+ "os"
+ "os/exec"
+ "os/user"
+ "path/filepath"
+ "strings"
+ "sync"
+ "sync/atomic"
+ "syscall"
+ gotime "time"
+ "unicode"
+ "unicode/utf16"
+ "unsafe"
+
+ "modernc.org/libc/errno"
+ "modernc.org/libc/fcntl"
+ "modernc.org/libc/limits"
+ "modernc.org/libc/stdio"
+ "modernc.org/libc/sys/stat"
+ "modernc.org/libc/sys/types"
+ "modernc.org/libc/time"
+ "modernc.org/libc/unistd"
+)
+
+// Keep these outside of the var block otherwise go generate will miss them.
+var X__imp__environ = EnvironP()
+var X__imp__wenviron = uintptr(unsafe.Pointer(&wenviron))
+var X_imp___environ = EnvironP()
+var X_iob [stdio.X_IOB_ENTRIES]stdio.FILE
+
+var Xtimezone long // extern long timezone;
+
+var (
+ iobMap = map[uintptr]int32{} // &_iob[fd] -> fd
+ wenvValid bool
+ wenviron uintptr // &winEnviron[0]
+ winEnviron = []uintptr{0}
+)
+
+func init() {
+ for i := range X_iob {
+ iobMap[uintptr(unsafe.Pointer(&X_iob[i]))] = int32(i)
+ }
+}
+
+func winGetObject(stream uintptr) interface{} {
+ if fd, ok := iobMap[stream]; ok {
+ f, _ := fdToFile(fd)
+ return f
+ }
+
+ return getObject(stream)
+}
+
+type (
+ long = int32
+ ulong = uint32
+)
+
+var (
+ modkernel32 = syscall.NewLazyDLL("kernel32.dll")
+ //--
+ procAreFileApisANSI = modkernel32.NewProc("AreFileApisANSI")
+ procCopyFileW = modkernel32.NewProc("CopyFileW")
+ procCreateEventA = modkernel32.NewProc("CreateEventA")
+ procCreateEventW = modkernel32.NewProc("CreateEventW")
+ procCreateFileA = modkernel32.NewProc("CreateFileA")
+ procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW")
+ procCreateFileW = modkernel32.NewProc("CreateFileW")
+ procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW")
+ procCreatePipe = modkernel32.NewProc("CreatePipe")
+ procCreateProcessA = modkernel32.NewProc("CreateProcessA")
+ procCreateProcessW = modkernel32.NewProc("CreateProcessW")
+ procCreateThread = modkernel32.NewProc("CreateThread")
+ procDeleteCriticalSection = modkernel32.NewProc("DeleteCriticalSection")
+ procDeviceIoControl = modkernel32.NewProc("DeviceIoControl")
+ procDuplicateHandle = modkernel32.NewProc("DuplicateHandle")
+ procEnterCriticalSection = modkernel32.NewProc("EnterCriticalSection")
+ procFindClose = modkernel32.NewProc("FindClose")
+ procFindFirstFileExW = modkernel32.NewProc("FindFirstFileExW")
+ procFindFirstFileW = modkernel32.NewProc("FindFirstFileW")
+ procFindNextFileW = modkernel32.NewProc("FindNextFileW")
+ procFormatMessageW = modkernel32.NewProc("FormatMessageW")
+ procGetACP = modkernel32.NewProc("GetACP")
+ procGetCommState = modkernel32.NewProc("GetCommState")
+ procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW")
+ procGetConsoleCP = modkernel32.NewProc("GetConsoleCP")
+ procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo")
+ procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess")
+ procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId")
+ procGetCurrentThread = modkernel32.NewProc("GetCurrentThread")
+ procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId")
+ procGetEnvironmentVariableA = modkernel32.NewProc("GetEnvironmentVariableA")
+ procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW")
+ procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess")
+ procGetExitCodeThread = modkernel32.NewProc("GetExitCodeThread")
+ procGetFileAttributesA = modkernel32.NewProc("GetFileAttributesA")
+ procGetFileAttributesExA = modkernel32.NewProc("GetFileAttributesExA")
+ procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW")
+ procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle")
+ procGetFileSize = modkernel32.NewProc("GetFileSize")
+ procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW")
+ procGetLastError = modkernel32.NewProc("GetLastError")
+ procGetLogicalDriveStringsA = modkernel32.NewProc("GetLogicalDriveStringsA")
+ procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW")
+ procGetModuleHandleA = modkernel32.NewProc("GetModuleHandleA")
+ procGetModuleHandleW = modkernel32.NewProc("GetModuleHandleW")
+ procGetPrivateProfileStringA = modkernel32.NewProc("GetPrivateProfileStringA")
+ procGetProcAddress = modkernel32.NewProc("GetProcAddress")
+ procGetProcessHeap = modkernel32.NewProc("GetProcessHeap")
+ procGetSystemInfo = modkernel32.NewProc("GetSystemInfo")
+ procGetSystemTime = modkernel32.NewProc("GetSystemTime")
+ procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime")
+ procGetTempFileNameW = modkernel32.NewProc("GetTempFileNameW")
+ procGetTickCount = modkernel32.NewProc("GetTickCount")
+ procGetVersionExA = modkernel32.NewProc("GetVersionExA")
+ procGetVersionExW = modkernel32.NewProc("GetVersionExW")
+ procGetVolumeInformationA = modkernel32.NewProc("GetVolumeInformationA")
+ procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW")
+ procHeapAlloc = modkernel32.NewProc("HeapAlloc")
+ procHeapFree = modkernel32.NewProc("HeapFree")
+ procInitializeCriticalSection = modkernel32.NewProc("InitializeCriticalSection")
+ procLeaveCriticalSection = modkernel32.NewProc("LeaveCriticalSection")
+ procLockFile = modkernel32.NewProc("LockFile")
+ procLockFileEx = modkernel32.NewProc("LockFileEx")
+ procLstrlenW = modkernel32.NewProc("lstrlenW")
+ procMapViewOfFile = modkernel32.NewProc("MapViewOfFile")
+ procMoveFileW = modkernel32.NewProc("MoveFileW")
+ procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar")
+ procOpenEventA = modkernel32.NewProc("OpenEventA")
+ procPeekConsoleInputW = modkernel32.NewProc("PeekConsoleInputW")
+ procPeekNamedPipe = modkernel32.NewProc("PeekNamedPipe")
+ procQueryPerformanceCounter = modkernel32.NewProc("QueryPerformanceCounter")
+ procQueryPerformanceFrequency = modkernel32.NewProc("QueryPerformanceFrequency")
+ procReadConsoleW = modkernel32.NewProc("ReadConsoleW")
+ procReadFile = modkernel32.NewProc("ReadFile")
+ procResetEvent = modkernel32.NewProc("ResetEvent")
+ procSearchPathW = modkernel32.NewProc("SearchPathW")
+ procSetConsoleCtrlHandler = modkernel32.NewProc("SetConsoleCtrlHandler")
+ procSetConsoleMode = modkernel32.NewProc("SetConsoleMode")
+ procSetConsoleTextAttribute = modkernel32.NewProc("SetConsoleTextAttribute")
+ procSetEvent = modkernel32.NewProc("SetEvent")
+ procSetFilePointer = modkernel32.NewProc("SetFilePointer")
+ procSleepEx = modkernel32.NewProc("SleepEx")
+ procSystemTimeToFileTime = modkernel32.NewProc("SystemTimeToFileTime")
+ procTerminateThread = modkernel32.NewProc("TerminateThread")
+ procUnlockFile = modkernel32.NewProc("UnlockFile")
+ procUnlockFileEx = modkernel32.NewProc("UnlockFileEx")
+ procWaitForSingleObjectEx = modkernel32.NewProc("WaitForSingleObjectEx")
+ procWideCharToMultiByte = modkernel32.NewProc("WideCharToMultiByte")
+ procWriteConsoleA = modkernel32.NewProc("WriteConsoleA")
+ procWriteConsoleW = modkernel32.NewProc("WriteConsoleW")
+ procWriteFile = modkernel32.NewProc("WriteFile")
+
+ // procSetConsoleCP = modkernel32.NewProc("SetConsoleCP")
+ // procSetThreadPriority = modkernel32.NewProc("SetThreadPriority")
+ //--
+
+ modadvapi = syscall.NewLazyDLL("advapi32.dll")
+ //--
+ procAccessCheck = modadvapi.NewProc("AccessCheck")
+ procGetAclInformation = modadvapi.NewProc("GetAclInformation")
+ procGetFileSecurityA = modadvapi.NewProc("GetFileSecurityA")
+ procGetFileSecurityW = modadvapi.NewProc("GetFileSecurityW")
+ procGetSecurityDescriptorDacl = modadvapi.NewProc("GetSecurityDescriptorDacl")
+ procGetSecurityDescriptorOwner = modadvapi.NewProc("GetSecurityDescriptorOwner")
+ procGetSidIdentifierAuthority = modadvapi.NewProc("GetSidIdentifierAuthority")
+ procGetSidLengthRequired = modadvapi.NewProc("GetSidLengthRequired")
+ procGetSidSubAuthority = modadvapi.NewProc("GetSidSubAuthority")
+ procImpersonateSelf = modadvapi.NewProc("ImpersonateSelf")
+ procInitializeSid = modadvapi.NewProc("InitializeSid")
+ procOpenThreadToken = modadvapi.NewProc("OpenThreadToken")
+ procRevertToSelf = modadvapi.NewProc("RevertToSelf")
+ //--
+
+ modws2_32 = syscall.NewLazyDLL("ws2_32.dll")
+ //--
+ procWSAStartup = modws2_32.NewProc("WSAStartup")
+ //--
+
+ moduser32 = syscall.NewLazyDLL("user32.dll")
+ //--
+ procCreateWindowExW = moduser32.NewProc("CreateWindowExW")
+ procMsgWaitForMultipleObjectsEx = moduser32.NewProc("MsgWaitForMultipleObjectsEx")
+ procPeekMessageW = moduser32.NewProc("PeekMessageW")
+ procRegisterClassW = moduser32.NewProc("RegisterClassW")
+ procUnregisterClassW = moduser32.NewProc("UnregisterClassW")
+ procWaitForInputIdle = moduser32.NewProc("WaitForInputIdle")
+ //--
+
+ netapi = syscall.NewLazyDLL("netapi32.dll")
+ procNetGetDCName = netapi.NewProc("NetGetDCName")
+ procNetUserGetInfo = netapi.NewProc("NetUserGetInfo")
+
+ userenvapi = syscall.NewLazyDLL("userenv.dll")
+ procGetProfilesDirectoryW = userenvapi.NewProc("GetProfilesDirectoryW")
+)
+
+var (
+ threadCallback uintptr
+)
+
+func init() {
+ isWindows = true
+ threadCallback = syscall.NewCallback(ThreadProc)
+}
+
+// ---------------------------------
+// Windows filehandle-to-fd mapping
+// so the lib-c interface contract looks
+// like normal fds being passed around
+// but we're mapping them back and forth to
+// native windows file handles (syscall.Handle)
+//
+
+var EBADF = errors.New("EBADF")
+
+var w_nextFd int32 = 42
+var w_fdLock sync.Mutex
+var w_fd_to_file = map[int32]*file{}
+
+type file struct {
+ _fd int32
+ hadErr bool
+ t uintptr
+ syscall.Handle
+}
+
+func addFile(hdl syscall.Handle, fd int32) uintptr {
+ var f = file{_fd: fd, Handle: hdl}
+ w_fdLock.Lock()
+ defer w_fdLock.Unlock()
+ w_fd_to_file[fd] = &f
+ f.t = addObject(&f)
+ return f.t
+}
+
+func remFile(f *file) {
+ removeObject(f.t)
+ w_fdLock.Lock()
+ defer w_fdLock.Unlock()
+ delete(w_fd_to_file, f._fd)
+}
+
+func fdToFile(fd int32) (*file, bool) {
+ w_fdLock.Lock()
+ defer w_fdLock.Unlock()
+ f, ok := w_fd_to_file[fd]
+ return f, ok
+}
+
+// Wrap the windows handle up tied to a unique fd
+func wrapFdHandle(hdl syscall.Handle) (uintptr, int32) {
+ newFd := atomic.AddInt32(&w_nextFd, 1)
+ return addFile(hdl, newFd), newFd
+}
+
+func (f *file) err() bool {
+ return f.hadErr
+}
+
+func (f *file) setErr() {
+ f.hadErr = true
+}
+
+// -----------------------------------
+// On windows we have to fetch these
+//
+// stdout, stdin, sterr
+//
+// Using the windows specific GetStdHandle
+// they're mapped to the standard fds (0,1,2)
+// Note: it's possible they don't exist
+// if the app has been built for a GUI only
+// target in windows. If that's the case
+// panic seems like the only reasonable option
+// ------------------------------
+
+func newFile(t *TLS, fd int32) uintptr {
+
+ if fd == unistd.STDIN_FILENO {
+ h, err := syscall.GetStdHandle(syscall.STD_INPUT_HANDLE)
+ if err != nil {
+ panic("no console")
+ }
+ return addFile(h, fd)
+ }
+ if fd == unistd.STDOUT_FILENO {
+ h, err := syscall.GetStdHandle(syscall.STD_OUTPUT_HANDLE)
+ if err != nil {
+ panic("no console")
+ }
+ return addFile(h, fd)
+ }
+ if fd == unistd.STDERR_FILENO {
+ h, err := syscall.GetStdHandle(syscall.STD_ERROR_HANDLE)
+ if err != nil {
+ panic("no console")
+ }
+ return addFile(h, fd)
+ }
+
+ // should not get here -- unless newFile
+ // is being used from somewhere we don't know about
+ // to originate fds.
+
+ panic("unknown fd source")
+ return 0
+}
+
+func (f *file) close(t *TLS) int32 {
+ remFile(f)
+ err := syscall.Close(f.Handle)
+ if err != nil {
+ return (-1) // EOF
+ }
+ return 0
+}
+
+func fwrite(fd int32, b []byte) (int, error) {
+ if fd == unistd.STDOUT_FILENO {
+ return write(b)
+ }
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ return -1, EBADF
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v: %s", origin(1), fd, b)
+ }
+ return syscall.Write(f.Handle, b)
+}
+
+// int fprintf(FILE *stream, const char *format, ...);
+func Xfprintf(t *TLS, stream, format, args uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ n, _ := fwrite(f._fd, printf(format, args))
+ return int32(n)
+}
+
+// int usleep(useconds_t usec);
+func Xusleep(t *TLS, usec types.Useconds_t) int32 {
+ gotime.Sleep(gotime.Microsecond * gotime.Duration(usec))
+ return 0
+}
+
+// int getrusage(int who, struct rusage *usage);
+func Xgetrusage(t *TLS, who int32, usage uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xlstat64(t, pathname, statbuf)
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat(t *TLS, pathname, statbuf uintptr) int32 {
+ return Xstat64(t, pathname, statbuf)
+}
+
+// int chdir(const char *path);
+func Xchdir(t *TLS, path uintptr) int32 {
+ err := syscall.Chdir(GoString(path))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(path))
+ }
+ return 0
+}
+
+var localtime time.Tm
+
+// struct tm *localtime(const time_t *timep);
+func Xlocaltime(_ *TLS, timep uintptr) uintptr {
+ loc := gotime.Local
+ if r := getenv(Environ(), "TZ"); r != 0 {
+ zone, off := parseZone(GoString(r))
+ loc = gotime.FixedZone(zone, -off)
+ }
+ ut := *(*time.Time_t)(unsafe.Pointer(timep))
+ t := gotime.Unix(int64(ut), 0).In(loc)
+ localtime.Ftm_sec = int32(t.Second())
+ localtime.Ftm_min = int32(t.Minute())
+ localtime.Ftm_hour = int32(t.Hour())
+ localtime.Ftm_mday = int32(t.Day())
+ localtime.Ftm_mon = int32(t.Month() - 1)
+ localtime.Ftm_year = int32(t.Year() - 1900)
+ localtime.Ftm_wday = int32(t.Weekday())
+ localtime.Ftm_yday = int32(t.YearDay())
+ localtime.Ftm_isdst = Bool32(isTimeDST(t))
+ return uintptr(unsafe.Pointer(&localtime))
+}
+
+// struct tm *localtime(const time_t *timep);
+func X_localtime64(_ *TLS, timep uintptr) uintptr {
+ return Xlocaltime(nil, timep)
+}
+
+// struct tm *localtime_r(const time_t *timep, struct tm *result);
+func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+ // loc := gotime.Local
+ // if r := getenv(Environ(), "TZ"); r != 0 {
+ // zone, off := parseZone(GoString(r))
+ // loc = gotime.FixedZone(zone, -off)
+ // }
+ // ut := *(*unix.Time_t)(unsafe.Pointer(timep))
+ // t := gotime.Unix(int64(ut), 0).In(loc)
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute())
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour())
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day())
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1)
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900)
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday())
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay())
+ // (*time.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t))
+ // return result
+}
+
+// int _wopen(
+// const wchar_t *filename,
+// int oflag [,
+// int pmode]
+// );
+func X_wopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ var mode types.Mode_t
+ if args != 0 {
+ mode = *(*types.Mode_t)(unsafe.Pointer(args))
+ }
+ s := goWideString(pathname)
+ h, err := syscall.Open(GoString(pathname), int(flags), uint32(mode))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: %q %#x: %v", origin(1), s, flags, err)
+ }
+
+ t.setErrno(err)
+ return 0
+ }
+
+ _, n := wrapFdHandle(h)
+ if dmesgs {
+ dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), s, flags, mode, n)
+ }
+ return n
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 {
+ return Xopen64(t, pathname, flags, args)
+}
+
+// int open(const char *pathname, int flags, ...);
+func Xopen64(t *TLS, pathname uintptr, flags int32, cmode uintptr) int32 {
+
+ var mode types.Mode_t
+ if cmode != 0 {
+ mode = (types.Mode_t)(VaUint32(&cmode))
+ }
+ // fdcwd := fcntl.AT_FDCWD
+ h, err := syscall.Open(GoString(pathname), int(flags), uint32(mode))
+ if err != nil {
+
+ if dmesgs {
+ dmesg("%v: %q %#x: %v", origin(1), GoString(pathname), flags, err)
+ }
+
+ t.setErrno(err)
+ return -1
+ }
+
+ _, n := wrapFdHandle(h)
+ if dmesgs {
+ dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, n)
+ }
+ return n
+}
+
+// off_t lseek(int fd, off_t offset, int whence);
+func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ return types.Off_t(Xlseek64(t, fd, offset, whence))
+}
+
+func whenceStr(whence int32) string {
+ switch whence {
+ case syscall.FILE_CURRENT:
+ return "SEEK_CUR"
+ case syscall.FILE_END:
+ return "SEEK_END"
+ case syscall.FILE_BEGIN:
+ return "SEEK_SET"
+ default:
+ return fmt.Sprintf("whence(%d)", whence)
+ }
+}
+
+var fsyncStatbuf stat.Stat
+
+// int fsync(int fd);
+func Xfsync(t *TLS, fd int32) int32 {
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ err := syscall.FlushFileBuffers(f.Handle)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// long sysconf(int name);
+func Xsysconf(t *TLS, name int32) long {
+ panic(todo(""))
+ // switch name {
+ // case unistd.X_SC_PAGESIZE:
+ // return long(unix.Getpagesize())
+ // }
+
+ // panic(todo(""))
+}
+
+// int close(int fd);
+func Xclose(t *TLS, fd int32) int32 {
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ err := syscall.Close(f.Handle)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %d: ok", origin(1), fd)
+ }
+ return 0
+}
+
+// char *getcwd(char *buf, size_t size);
+func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr {
+
+ b := make([]uint16, size)
+ n, err := syscall.GetCurrentDirectory(uint32(len(b)), &b[0])
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ // to bytes
+ var wd = []byte(string(utf16.Decode(b[0:n])))
+ if types.Size_t(len(wd)) > size {
+ t.setErrno(errno.ERANGE)
+ return 0
+ }
+
+ copy((*RawMem)(unsafe.Pointer(buf))[:], wd)
+ (*RawMem)(unsafe.Pointer(buf))[len(wd)] = 0
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(buf))
+ }
+ return buf
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 {
+ return Xfstat64(t, fd, statbuf)
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 {
+ return Xftruncate64(t, fd, length)
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 {
+ return Xfcntl64(t, fd, cmd, args)
+}
+
+// int _read( // https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/read?view=msvc-160
+// int const fd,
+// void * const buffer,
+// unsigned const buffer_size
+// );
+func Xread(t *TLS, fd int32, buf uintptr, count uint32) int32 {
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ var obuf = ((*RawMem)(unsafe.Pointer(buf)))[:count]
+ n, err := syscall.Read(f.Handle, obuf)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ }
+ return int32(n)
+}
+
+// int _write( // https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/write?view=msvc-160
+// int fd,
+// const void *buffer,
+// unsigned int count
+// );
+func Xwrite(t *TLS, fd int32, buf uintptr, count uint32) int32 {
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ var obuf = ((*RawMem)(unsafe.Pointer(buf)))[:count]
+ n, err := syscall.Write(f.Handle, obuf)
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n))))
+ dmesg("%v: %d %#x: %#x", origin(1), fd, count, n)
+ }
+ return int32(n)
+}
+
+// int fchmod(int fd, mode_t mode);
+func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_FCHMOD, uintptr(fd), uintptr(mode), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#o: ok", origin(1), fd, mode)
+ // }
+ // return 0
+}
+
+// // int fchown(int fd, uid_t owner, gid_t group);
+// func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 {
+// if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 {
+// t.setErrno(err)
+// return -1
+// }
+//
+// return 0
+// }
+
+// // uid_t geteuid(void);
+// func Xgeteuid(t *TLS) types.Uid_t {
+// n, _, _ := unix.Syscall(unix.SYS_GETEUID, 0, 0, 0)
+// return types.Uid_t(n)
+// }
+
+// int munmap(void *addr, size_t length);
+func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int gettimeofday(struct timeval *tv, struct timezone *tz);
+func Xgettimeofday(t *TLS, tv, tz uintptr) int32 {
+ panic(todo(""))
+ // if tz != 0 {
+ // panic(todo(""))
+ // }
+
+ // var tvs unix.Timeval
+ // err := unix.Gettimeofday(&tvs)
+ // if err != nil {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs
+ // return 0
+}
+
+// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+func Xgetsockopt(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// // int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+func Xsetsockopt(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// int ioctl(int fd, unsigned long request, ...);
+func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 {
+ panic(todo(""))
+ // var argp uintptr
+ // if va != 0 {
+ // argp = VaUintptr(&va)
+ // }
+ // n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
+func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 {
+ panic(todo(""))
+ // n, err := unix.Select(
+ // int(nfds),
+ // (*unix.FdSet)(unsafe.Pointer(readfds)),
+ // (*unix.FdSet)(unsafe.Pointer(writefds)),
+ // (*unix.FdSet)(unsafe.Pointer(exceptfds)),
+ // (*unix.Timeval)(unsafe.Pointer(timeout)),
+ // )
+ // if err != nil {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// int mkfifo(const char *pathname, mode_t mode);
+func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
+ panic(todo(""))
+ // if err := unix.Mkfifo(GoString(pathname), mode); err != nil {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// mode_t umask(mode_t mask);
+func Xumask(t *TLS, mask types.Mode_t) types.Mode_t {
+ panic(todo(""))
+ // n, _, _ := unix.Syscall(unix.SYS_UMASK, uintptr(mask), 0, 0)
+ // return types.Mode_t(n)
+}
+
+// int execvp(const char *file, char *const argv[]);
+func Xexecvp(t *TLS, file, argv uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// pid_t waitpid(pid_t pid, int *wstatus, int options);
+func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t {
+ panic(todo(""))
+ // n, _, err := unix.Syscall6(unix.SYS_WAIT4, uintptr(pid), wstatus, uintptr(optname), 0, 0, 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return types.Pid_t(n)
+}
+
+// int uname(struct utsname *buf);
+func Xuname(t *TLS, buf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_UNAME, buf, 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xgetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 {
+ return Xsetrlimit64(t, resource, rlim)
+}
+
+// int setrlimit(int resource, const struct rlimit *rlim);
+func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// // uid_t getuid(void);
+// func Xgetuid(t *TLS) types.Uid_t {
+// return types.Uid_t(os.Getuid())
+// }
+
+// pid_t getpid(void);
+func Xgetpid(t *TLS) int32 {
+ return int32(os.Getpid())
+}
+
+// int system(const char *command);
+func Xsystem(t *TLS, command uintptr) int32 {
+ s := GoString(command)
+ if command == 0 {
+ panic(todo(""))
+ }
+
+ cmd := exec.Command("sh", "-c", s)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ ps := err.(*exec.ExitError)
+ return int32(ps.ExitCode())
+ }
+
+ return 0
+}
+
+// var staticGetpwuid pwd.Passwd
+//
+// func init() {
+// atExit = append(atExit, func() { closePasswd(&staticGetpwuid) })
+// }
+//
+// func closePasswd(p *pwd.Passwd) {
+// Xfree(nil, p.Fpw_name)
+// Xfree(nil, p.Fpw_passwd)
+// Xfree(nil, p.Fpw_gecos)
+// Xfree(nil, p.Fpw_dir)
+// Xfree(nil, p.Fpw_shell)
+// *p = pwd.Passwd{}
+// }
+
+// struct passwd *getpwuid(uid_t uid);
+func Xgetpwuid(t *TLS, uid uint32) uintptr {
+ panic(todo(""))
+ // f, err := os.Open("/etc/passwd")
+ // if err != nil {
+ // panic(todo("", err))
+ // }
+ //
+ // defer f.Close()
+ //
+ // sid := strconv.Itoa(int(uid))
+ // sc := bufio.NewScanner(f)
+ // for sc.Scan() {
+ // // eg. "root:x:0:0:root:/root:/bin/bash"
+ // a := strings.Split(sc.Text(), ":")
+ // if len(a) < 7 {
+ // panic(todo(""))
+ // }
+ //
+ // if a[2] == sid {
+ // uid, err := strconv.Atoi(a[2])
+ // if err != nil {
+ // panic(todo(""))
+ // }
+ //
+ // gid, err := strconv.Atoi(a[3])
+ // if err != nil {
+ // panic(todo(""))
+ // }
+ //
+ // closePasswd(&staticGetpwuid)
+ // gecos := a[4]
+ // if strings.Contains(gecos, ",") {
+ // a := strings.Split(gecos, ",")
+ // gecos = a[0]
+ // }
+ // initPasswd(t, &staticGetpwuid, a[0], a[1], uint32(uid), uint32(gid), gecos, a[5], a[6])
+ // return uintptr(unsafe.Pointer(&staticGetpwuid))
+ // }
+ // }
+ //
+ // if sc.Err() != nil {
+ // panic(todo(""))
+ // }
+ //
+ // return 0
+}
+
+// func initPasswd(t *TLS, p *pwd.Passwd, name, pwd string, uid, gid uint32, gecos, dir, shell string) {
+// p.Fpw_name = cString(t, name)
+// p.Fpw_passwd = cString(t, pwd)
+// p.Fpw_uid = uid
+// p.Fpw_gid = gid
+// p.Fpw_gecos = cString(t, gecos)
+// p.Fpw_dir = cString(t, dir)
+// p.Fpw_shell = cString(t, shell)
+// }
+
+// int setvbuf(FILE *stream, char *buf, int mode, size_t size);
+func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 {
+ return 0 //TODO
+}
+
+// int raise(int sig);
+func Xraise(t *TLS, sig int32) int32 {
+ panic(todo(""))
+}
+
+// int backtrace(void **buffer, int size);
+func Xbacktrace(t *TLS, buf uintptr, size int32) int32 {
+ panic(todo(""))
+}
+
+// void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) {
+ panic(todo(""))
+}
+
+// int fileno(FILE *stream);
+func Xfileno(t *TLS, stream uintptr) int32 {
+ if stream == 0 {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ return f._fd
+}
+
+// var staticGetpwnam pwd.Passwd
+//
+// func init() {
+// atExit = append(atExit, func() { closePasswd(&staticGetpwnam) })
+// }
+//
+// // struct passwd *getpwnam(const char *name);
+// func Xgetpwnam(t *TLS, name uintptr) uintptr {
+// f, err := os.Open("/etc/passwd")
+// if err != nil {
+// panic(todo("", err))
+// }
+//
+// defer f.Close()
+//
+// sname := GoString(name)
+// sc := bufio.NewScanner(f)
+// for sc.Scan() {
+// // eg. "root:x:0:0:root:/root:/bin/bash"
+// a := strings.Split(sc.Text(), ":")
+// if len(a) < 7 {
+// panic(todo(""))
+// }
+//
+// if a[0] == sname {
+// uid, err := strconv.Atoi(a[2])
+// if err != nil {
+// panic(todo(""))
+// }
+//
+// gid, err := strconv.Atoi(a[3])
+// if err != nil {
+// panic(todo(""))
+// }
+//
+// closePasswd(&staticGetpwnam)
+// gecos := a[4]
+// if strings.Contains(gecos, ",") {
+// a := strings.Split(gecos, ",")
+// gecos = a[0]
+// }
+// initPasswd(t, &staticGetpwnam, a[0], a[1], uint32(uid), uint32(gid), gecos, a[5], a[6])
+// return uintptr(unsafe.Pointer(&staticGetpwnam))
+// }
+// }
+//
+// if sc.Err() != nil {
+// panic(todo(""))
+// }
+//
+// return 0
+// }
+//
+// var staticGetgrnam grp.Group
+//
+// func init() {
+// atExit = append(atExit, func() { closeGroup(&staticGetgrnam) })
+// }
+//
+// // struct group *getgrnam(const char *name);
+// func Xgetgrnam(t *TLS, name uintptr) uintptr {
+// f, err := os.Open("/etc/group")
+// if err != nil {
+// panic(todo(""))
+// }
+//
+// defer f.Close()
+//
+// sname := GoString(name)
+// sc := bufio.NewScanner(f)
+// for sc.Scan() {
+// // eg. "root:x:0:"
+// a := strings.Split(sc.Text(), ":")
+// if len(a) < 4 {
+// panic(todo(""))
+// }
+//
+// if a[0] == sname {
+// closeGroup(&staticGetgrnam)
+// gid, err := strconv.Atoi(a[2])
+// if err != nil {
+// panic(todo(""))
+// }
+//
+// var names []string
+// if a[3] != "" {
+// names = strings.Split(a[3], ",")
+// }
+// initGroup(t, &staticGetgrnam, a[0], a[1], uint32(gid), names)
+// return uintptr(unsafe.Pointer(&staticGetgrnam))
+// }
+// }
+//
+// if sc.Err() != nil {
+// panic(todo(""))
+// }
+//
+// return 0
+// }
+//
+// func closeGroup(p *grp.Group) {
+// Xfree(nil, p.Fgr_name)
+// Xfree(nil, p.Fgr_passwd)
+// if p.Fgr_mem != 0 {
+// panic(todo(""))
+// }
+//
+// *p = grp.Group{}
+// }
+//
+// func initGroup(t *TLS, p *grp.Group, name, pwd string, gid uint32, names []string) {
+// p.Fgr_name = cString(t, name)
+// p.Fgr_passwd = cString(t, pwd)
+// p.Fgr_gid = gid
+// p.Fgr_mem = 0
+// if len(names) != 0 {
+// panic(todo("%q %q %v %q %v", name, pwd, gid, names, len(names)))
+// }
+// }
+//
+// func init() {
+// atExit = append(atExit, func() { closeGroup(&staticGetgrgid) })
+// }
+//
+// var staticGetgrgid grp.Group
+//
+// // struct group *getgrgid(gid_t gid);
+// func Xgetgrgid(t *TLS, gid uint32) uintptr {
+// f, err := os.Open("/etc/group")
+// if err != nil {
+// panic(todo(""))
+// }
+//
+// defer f.Close()
+//
+// sid := strconv.Itoa(int(gid))
+// sc := bufio.NewScanner(f)
+// for sc.Scan() {
+// // eg. "root:x:0:"
+// a := strings.Split(sc.Text(), ":")
+// if len(a) < 4 {
+// panic(todo(""))
+// }
+//
+// if a[2] == sid {
+// closeGroup(&staticGetgrgid)
+// var names []string
+// if a[3] != "" {
+// names = strings.Split(a[3], ",")
+// }
+// initGroup(t, &staticGetgrgid, a[0], a[1], gid, names)
+// return uintptr(unsafe.Pointer(&staticGetgrgid))
+// }
+// }
+//
+// if sc.Err() != nil {
+// panic(todo(""))
+// }
+//
+// return 0
+// }
+
+// int mkstemps(char *template, int suffixlen);
+func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 {
+ return Xmkstemps64(t, template, suffixlen)
+}
+
+// int mkstemps(char *template, int suffixlen);
+func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 {
+ panic(todo(""))
+ // len := uintptr(Xstrlen(t, template))
+ // x := template + uintptr(len-6) - uintptr(suffixlen)
+ // for i := uintptr(0); i < 6; i++ {
+ // if *(*byte)(unsafe.Pointer(x + i)) != 'X' {
+ // t.setErrno(errno.EINVAL)
+ // return -1
+ // }
+ // }
+ //
+ // fd, err := tempFile(template, x)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return int32(fd)
+}
+
+// int mkstemp(char *template);
+func Xmkstemp64(t *TLS, template uintptr) int32 {
+ return Xmkstemps64(t, template, 0)
+}
+
+// func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) {
+// var statp uintptr
+// if stat != nil {
+// statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{})))
+// if statp == 0 {
+// panic("OOM")
+// }
+//
+// *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat
+// }
+// csp := CString(path)
+// if csp == 0 {
+// panic("OOM")
+// }
+//
+// return &fts.FTSENT{
+// Ffts_info: uint16(info),
+// Ffts_path: csp,
+// Ffts_pathlen: uint16(len(path)),
+// Ffts_statp: statp,
+// Ffts_errno: int32(err),
+// }
+// }
+//
+// func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr {
+// p := Xcalloc(t, types.Size_t(unsafe.Sizeof(fts.FTSENT{})))
+// if p == 0 {
+// panic("OOM")
+// }
+//
+// *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err)
+// return p
+// }
+//
+// func ftsentClose(t *TLS, p uintptr) {
+// Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path)
+// Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp)
+// }
+
+type ftstream struct {
+ s []uintptr
+ x int
+}
+
+// func (f *ftstream) close(t *TLS) {
+// for _, p := range f.s {
+// ftsentClose(t, p)
+// Xfree(t, p)
+// }
+// *f = ftstream{}
+// }
+//
+// // FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+// func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+// return Xfts64_open(t, path_argv, options, compar)
+// }
+
+// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **));
+func Xfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr {
+ panic(todo(""))
+ // f := &ftstream{}
+ //
+ // var walk func(string)
+ // walk = func(path string) {
+ // var fi os.FileInfo
+ // var err error
+ // switch {
+ // case options&fts.FTS_LOGICAL != 0:
+ // fi, err = os.Stat(path)
+ // case options&fts.FTS_PHYSICAL != 0:
+ // fi, err = os.Lstat(path)
+ // default:
+ // panic(todo(""))
+ // }
+ //
+ // if err != nil {
+ // panic(todo(""))
+ // }
+ //
+ // var statp *unix.Stat_t
+ // if options&fts.FTS_NOSTAT == 0 {
+ // var stat unix.Stat_t
+ // switch {
+ // case options&fts.FTS_LOGICAL != 0:
+ // if err := unix.Stat(path, &stat); err != nil {
+ // panic(todo(""))
+ // }
+ // case options&fts.FTS_PHYSICAL != 0:
+ // if err := unix.Lstat(path, &stat); err != nil {
+ // panic(todo(""))
+ // }
+ // default:
+ // panic(todo(""))
+ // }
+ //
+ // statp = &stat
+ // }
+ //
+ // out:
+ // switch {
+ // case fi.IsDir():
+ // f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0))
+ // g, err := os.Open(path)
+ // switch x := err.(type) {
+ // case nil:
+ // // ok
+ // case *os.PathError:
+ // f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES))
+ // break out
+ // default:
+ // panic(todo("%q: %v %T", path, x, x))
+ // }
+ //
+ // names, err := g.Readdirnames(-1)
+ // g.Close()
+ // if err != nil {
+ // panic(todo(""))
+ // }
+ //
+ // for _, name := range names {
+ // walk(path + "/" + name)
+ // if f == nil {
+ // break out
+ // }
+ // }
+ //
+ // f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0))
+ // default:
+ // info := fts.FTS_F
+ // if fi.Mode()&os.ModeSymlink != 0 {
+ // info = fts.FTS_SL
+ // }
+ // switch {
+ // case statp != nil:
+ // f.s = append(f.s, newCFtsent(t, info, path, statp, 0))
+ // case options&fts.FTS_NOSTAT != 0:
+ // f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0))
+ // default:
+ // panic(todo(""))
+ // }
+ // }
+ // }
+ //
+ // for {
+ // p := *(*uintptr)(unsafe.Pointer(path_argv))
+ // if p == 0 {
+ // if f == nil {
+ // return 0
+ // }
+ //
+ // if compar != 0 {
+ // panic(todo(""))
+ // }
+ //
+ // return addObject(f)
+ // }
+ //
+ // walk(GoString(p))
+ // path_argv += unsafe.Sizeof(uintptr(0))
+ // }
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts_read(t *TLS, ftsp uintptr) uintptr {
+ return Xfts64_read(t, ftsp)
+}
+
+// FTSENT *fts_read(FTS *ftsp);
+func Xfts64_read(t *TLS, ftsp uintptr) uintptr {
+ panic(todo(""))
+ // f := winGetObject(ftsp).(*ftstream)
+ // if f.x == len(f.s) {
+ // t.setErrno(0)
+ // return 0
+ // }
+ //
+ // r := f.s[f.x]
+ // if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 {
+ // t.setErrno(e)
+ // }
+ // f.x++
+ // return r
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts_close(t *TLS, ftsp uintptr) int32 {
+ return Xfts64_close(t, ftsp)
+}
+
+// int fts_close(FTS *ftsp);
+func Xfts64_close(t *TLS, ftsp uintptr) int32 {
+ panic(todo(""))
+ // winGetObject(ftsp).(*ftstream).close(t)
+ // removeObject(ftsp)
+ // return 0
+}
+
+// void tzset (void);
+func Xtzset(t *TLS) {
+ //TODO
+}
+
+var strerrorBuf [256]byte
+
+// char *strerror(int errnum);
+func Xstrerror(t *TLS, errnum int32) uintptr {
+ copy((*RawMem)(unsafe.Pointer(&strerrorBuf[0]))[:len(strerrorBuf):len(strerrorBuf)], fmt.Sprintf("errno %d\x00", errnum))
+ return uintptr(unsafe.Pointer(&strerrorBuf[0]))
+}
+
+// void *dlopen(const char *filename, int flags);
+func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr {
+ panic(todo(""))
+}
+
+// char *dlerror(void);
+func Xdlerror(t *TLS) uintptr {
+ panic(todo(""))
+}
+
+// int dlclose(void *handle);
+func Xdlclose(t *TLS, handle uintptr) int32 {
+ panic(todo(""))
+}
+
+// void *dlsym(void *handle, const char *symbol);
+func Xdlsym(t *TLS, handle, symbol uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void perror(const char *s);
+func Xperror(t *TLS, s uintptr) {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func Xpclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+var gai_strerrorBuf [100]byte
+
+// const char *gai_strerror(int errcode);
+func Xgai_strerror(t *TLS, errcode int32) uintptr {
+ copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode))
+ return uintptr(unsafe.Pointer(&gai_strerrorBuf))
+}
+
+// int tcgetattr(int fd, struct termios *termios_p);
+func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
+func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 {
+ panic(todo(""))
+}
+
+// // speed_t cfgetospeed(const struct termios *termios_p);
+// func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t {
+// panic(todo(""))
+// }
+
+// int cfsetospeed(struct termios *termios_p, speed_t speed);
+func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// int cfsetispeed(struct termios *termios_p, speed_t speed);
+func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 {
+ panic(todo(""))
+}
+
+// pid_t fork(void);
+func Xfork(t *TLS) int32 {
+ t.setErrno(errno.ENOSYS)
+ return -1
+}
+
+// char *setlocale(int category, const char *locale);
+func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr {
+ return 0 //TODO
+}
+
+// // char *nl_langinfo(nl_item item);
+// func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr {
+// panic(todo(""))
+// }
+
+// FILE *popen(const char *command, const char *type);
+func Xpopen(t *TLS, command, type1 uintptr) uintptr {
+ panic(todo(""))
+}
+
+// char *realpath(const char *path, char *resolved_path);
+func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr {
+ s, err := filepath.EvalSymlinks(GoString(path))
+ if err != nil {
+ if os.IsNotExist(err) {
+ if dmesgs {
+ dmesg("%v: %q: %v", origin(1), GoString(path), err)
+ }
+ t.setErrno(errno.ENOENT)
+ return 0
+ }
+
+ panic(todo("", err))
+ }
+
+ if resolved_path == 0 {
+ panic(todo(""))
+ }
+
+ if len(s) >= limits.PATH_MAX {
+ s = s[:limits.PATH_MAX-1]
+ }
+
+ copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s)
+ (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0
+ return resolved_path
+}
+
+// struct tm *gmtime_r(const time_t *timep, struct tm *result);
+func Xgmtime_r(t *TLS, timep, result uintptr) uintptr {
+ panic(todo(""))
+}
+
+// // char *inet_ntoa(struct in_addr in);
+// func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr {
+// panic(todo(""))
+// }
+
+// func X__ccgo_in6addr_anyp(t *TLS) uintptr {
+// return uintptr(unsafe.Pointer(&in6_addr_any))
+// }
+
+func Xabort(t *TLS) {
+ panic(todo(""))
+ // if dmesgs {
+ // dmesg("%v:\n%s", origin(1), debug.Stack())
+ // }
+ // p := Xmalloc(t, types.Size_t(unsafe.Sizeof(signal.Sigaction{})))
+ // if p == 0 {
+ // panic("OOM")
+ // }
+ //
+ // *(*signal.Sigaction)(unsafe.Pointer(p)) = signal.Sigaction{
+ // F__sigaction_handler: struct{ Fsa_handler signal.X__sighandler_t }{Fsa_handler: signal.SIG_DFL},
+ // }
+ // Xsigaction(t, signal.SIGABRT, p, 0)
+ // Xfree(t, p)
+ // unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT))
+ // panic(todo("unrechable"))
+}
+
+// int fflush(FILE *stream);
+func Xfflush(t *TLS, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ err := syscall.FlushFileBuffers(f.Handle)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+ return 0
+}
+
+// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return 0
+ }
+
+ var sz = size * nmemb
+ var obuf = ((*RawMem)(unsafe.Pointer(ptr)))[:sz]
+ n, err := syscall.Read(f.Handle, obuf)
+ if err != nil {
+ f.setErr()
+ return 0
+ }
+
+ if dmesgs {
+ // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), f._fd, size, nmemb, types.Size_t(n)/size)
+ }
+
+ return types.Size_t(n) / size
+
+}
+
+// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t {
+ if ptr == 0 || size == 0 {
+ return 0
+ }
+
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return 0
+ }
+
+ var sz = size * nmemb
+ var obuf = ((*RawMem)(unsafe.Pointer(ptr)))[:sz]
+ n, err := syscall.Write(f.Handle, obuf)
+ if err != nil {
+ f.setErr()
+ return 0
+ }
+
+ if dmesgs {
+ // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m))))
+ dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), f._fd, size, nmemb, types.Size_t(n)/size)
+ }
+ return types.Size_t(n) / size
+}
+
+// int fclose(FILE *stream);
+func Xfclose(t *TLS, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ return f.close(t)
+}
+
+// int fputc(int c, FILE *stream);
+func Xfputc(t *TLS, c int32, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ if _, err := fwrite(f._fd, []byte{byte(c)}); err != nil {
+ return -1
+ }
+ return int32(byte(c))
+}
+
+// int fseek(FILE *stream, long offset, int whence);
+func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ if n := Xlseek(t, f._fd, types.Off_t(offset), whence); n < 0 {
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), f._fd, offset, whenceStr(whence), n)
+ }
+ f.setErr()
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), f._fd, offset, whenceStr(whence))
+ }
+ return 0
+}
+
+// long ftell(FILE *stream);
+func Xftell(t *TLS, stream uintptr) long {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ n := Xlseek(t, f._fd, 0, syscall.FILE_CURRENT)
+ if n < 0 {
+ f.setErr()
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, n %#x: ok %#x", origin(1), f._fd, n, long(n))
+ }
+ return long(n)
+}
+
+// int ferror(FILE *stream);
+func Xferror(t *TLS, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ return Bool32(f.err())
+}
+
+// int getc(FILE *stream);
+func Xfgetc(t *TLS, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return stdio.EOF
+ }
+
+ var buf [1]byte
+ if n, _ := syscall.Read(f.Handle, buf[:]); n != 0 {
+ return int32(buf[0])
+ }
+
+ return stdio.EOF
+}
+
+// int ungetc(int c, FILE *stream);
+func Xungetc(t *TLS, c int32, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fscanf(FILE *stream, const char *format, ...);
+func Xfscanf(t *TLS, stream, format, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// int fputs(const char *s, FILE *stream);
+func Xfputs(t *TLS, s, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ gS := GoString(s)
+ if _, err := fwrite(f._fd, []byte(gS)); err != nil {
+ return -1
+ }
+ return 0
+}
+
+// var getservbynameStaticResult netdb.Servent
+//
+// // struct servent *getservbyname(const char *name, const char *proto);
+// func Xgetservbyname(t *TLS, name, proto uintptr) uintptr {
+// var protoent *gonetdb.Protoent
+// if proto != 0 {
+// protoent = gonetdb.GetProtoByName(GoString(proto))
+// }
+// servent := gonetdb.GetServByName(GoString(name), protoent)
+// if servent == nil {
+// if dmesgs {
+// dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent)
+// }
+// return 0
+// }
+//
+// Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name)
+// if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 {
+// for {
+// p := *(*uintptr)(unsafe.Pointer(v))
+// if p == 0 {
+// break
+// }
+//
+// Xfree(t, p)
+// v += unsafe.Sizeof(uintptr(0))
+// }
+// Xfree(t, v)
+// }
+// Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto)
+// cname, err := CString(servent.Name)
+// if err != nil {
+// getservbynameStaticResult = netdb.Servent{}
+// return 0
+// }
+//
+// var protoname uintptr
+// if protoent != nil {
+// if protoname, err = CString(protoent.Name); err != nil {
+// Xfree(t, cname)
+// getservbynameStaticResult = netdb.Servent{}
+// return 0
+// }
+// }
+// var a []uintptr
+// for _, v := range servent.Aliases {
+// cs, err := CString(v)
+// if err != nil {
+// for _, v := range a {
+// Xfree(t, v)
+// }
+// return 0
+// }
+//
+// a = append(a, cs)
+// }
+// v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0))))
+// if v == 0 {
+// Xfree(t, cname)
+// Xfree(t, protoname)
+// for _, v := range a {
+// Xfree(t, v)
+// }
+// getservbynameStaticResult = netdb.Servent{}
+// return 0
+// }
+// for _, p := range a {
+// *(*uintptr)(unsafe.Pointer(v)) = p
+// v += unsafe.Sizeof(uintptr(0))
+// }
+//
+// getservbynameStaticResult = netdb.Servent{
+// Fs_name: cname,
+// Fs_aliases: v,
+// Fs_port: int32(servent.Port),
+// Fs_proto: protoname,
+// }
+// return uintptr(unsafe.Pointer(&getservbynameStaticResult))
+// }
+
+// func Xreaddir64(t *TLS, dir uintptr) uintptr {
+// return Xreaddir(t, dir)
+// }
+
+// func fcntlCmdStr(cmd int32) string {
+// switch cmd {
+// case fcntl.F_GETOWN:
+// return "F_GETOWN"
+// case fcntl.F_SETLK:
+// return "F_SETLK"
+// case fcntl.F_GETLK:
+// return "F_GETLK"
+// case fcntl.F_SETFD:
+// return "F_SETFD"
+// case fcntl.F_GETFD:
+// return "F_GETFD"
+// default:
+// return fmt.Sprintf("cmd(%d)", cmd)
+// }
+// }
+
+// _CRTIMP extern int *__cdecl _errno(void); // /usr/share/mingw-w64/include/errno.h:17:
+func X_errno(t *TLS) uintptr {
+ return t.errnop
+}
+
+// int vfscanf(FILE * restrict stream, const char * restrict format, va_list arg);
+func X__ms_vfscanf(t *TLS, stream, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vsscanf(const char *str, const char *format, va_list ap);
+func X__ms_vsscanf(t *TLS, str, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vscanf(const char *format, va_list ap);
+func X__ms_vscanf(t *TLS, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vsnprintf(char *str, size_t size, const char *format, va_list ap);
+func X__ms_vsnprintf(t *TLS, str uintptr, size types.Size_t, format, ap uintptr) int32 {
+ return Xvsnprintf(t, str, size, format, ap)
+}
+
+// int vfwscanf(FILE *stream, const wchar_t *format, va_list argptr;);
+func X__ms_vfwscanf(t *TLS, stream uintptr, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vwscanf(const wchar_t * restrict format, va_list arg);
+func X__ms_vwscanf(t *TLS, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int _vsnwprintf(wchar_t *buffer, size_t count, const wchar_t *format, va_list argptr);
+func X_vsnwprintf(t *TLS, buffer uintptr, count types.Size_t, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vswscanf(const wchar_t *buffer, const wchar_t *format, va_list arglist);
+func X__ms_vswscanf(t *TLS, stream uintptr, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// __acrt_iob_func
+func X__acrt_iob_func(t *TLS, fd uint32) uintptr {
+
+ f, ok := fdToFile(int32(fd))
+ if !ok {
+ t.setErrno(EBADF)
+ return 0
+ }
+ return f.t
+}
+
+// BOOL SetEvent(
+// HANDLE hEvent
+// );
+func XSetEvent(t *TLS, hEvent uintptr) int32 {
+ r0, _, err := syscall.Syscall(procSetEvent.Addr(), 1, hEvent, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// int _stricmp(
+// const char *string1,
+// const char *string2
+// );
+func X_stricmp(t *TLS, string1, string2 uintptr) int32 {
+ var s1 = strings.ToLower(GoString(string1))
+ var s2 = strings.ToLower(GoString(string2))
+ return int32(strings.Compare(s1, s2))
+}
+
+// BOOL HeapFree(
+// HANDLE hHeap,
+// DWORD dwFlags,
+// _Frees_ptr_opt_ LPVOID lpMem
+// );
+func XHeapFree(t *TLS, hHeap uintptr, dwFlags uint32, lpMem uintptr) int32 {
+ r0, _, err := syscall.Syscall(procHeapFree.Addr(), 3, hHeap, uintptr(dwFlags), lpMem)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// HANDLE GetProcessHeap();
+func XGetProcessHeap(t *TLS) uintptr {
+ r0, _, err := syscall.Syscall(procGetProcessHeap.Addr(), 0, 0, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// LPVOID HeapAlloc(
+// HANDLE hHeap,
+// DWORD dwFlags,
+// SIZE_T dwBytes
+// );
+func XHeapAlloc(t *TLS, hHeap uintptr, dwFlags uint32, dwBytes types.Size_t) uintptr {
+ r0, _, err := syscall.Syscall(procHeapAlloc.Addr(), 3, hHeap, uintptr(dwFlags), uintptr(dwBytes))
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// WCHAR * gai_strerrorW(
+// int ecode
+// );
+func Xgai_strerrorW(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+// servent * getservbyname(
+// const char *name,
+// const char *proto
+// );
+func Xgetservbyname(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+// INT WSAAPI getaddrinfo(
+// PCSTR pNodeName,
+// PCSTR pServiceName,
+// const ADDRINFOA *pHints,
+// PADDRINFOA *ppResult
+// );
+func XWspiapiGetAddrInfo(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// int wcscmp(
+// const wchar_t *string1,
+// const wchar_t *string2
+// );
+func Xwcscmp(t *TLS, string1, string2 uintptr) int32 {
+ var s1 = goWideString(string1)
+ var s2 = goWideString(string2)
+ return int32(strings.Compare(s1, s2))
+}
+
+// BOOL IsDebuggerPresent();
+func XIsDebuggerPresent(t *TLS) int32 {
+ panic(todo(""))
+}
+
+func XExitProcess(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetVersionExW(
+// LPOSVERSIONINFOW lpVersionInformation
+// );
+func XGetVersionExW(t *TLS, lpVersionInformation uintptr) int32 {
+ r0, _, err := syscall.Syscall(procGetVersionExW.Addr(), 1, lpVersionInformation, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL GetVolumeNameForVolumeMountPointW(
+// LPCWSTR lpszVolumeMountPoint,
+// LPWSTR lpszVolumeName,
+// DWORD cchBufferLength
+// );
+func XGetVolumeNameForVolumeMountPointW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// size_t wcslen(
+// const wchar_t *str
+// );
+func Xwcslen(t *TLS, str uintptr) types.Size_t {
+ r0, _, _ := syscall.Syscall(procLstrlenW.Addr(), 1, str, 0, 0)
+ return types.Size_t(r0)
+}
+
+// HANDLE WINAPI GetStdHandle(
+// _In_ DWORD nStdHandle
+// );
+func XGetStdHandle(t *TLS, nStdHandle uint32) uintptr {
+ h, err := syscall.GetStdHandle(int(nStdHandle))
+ if err != nil {
+ panic("no console")
+ }
+ return uintptr(h)
+}
+
+// BOOL CloseHandle(
+// HANDLE hObject
+// );
+func XCloseHandle(t *TLS, hObject uintptr) int32 {
+ r := syscall.CloseHandle(syscall.Handle(hObject))
+ if r != nil {
+ return errno.EINVAL
+ }
+ return 1
+}
+
+// DWORD GetLastError();
+func XGetLastError(t *TLS) uint32 {
+ var rv = *(*int32)(unsafe.Pointer(t.errnop))
+ return uint32(rv)
+
+ //r1, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0)
+ //return uint32(r1)
+}
+
+// DWORD SetFilePointer(
+// HANDLE hFile,
+// LONG lDistanceToMove,
+// PLONG lpDistanceToMoveHigh,
+// DWORD dwMoveMethod
+// );
+func XSetFilePointer(t *TLS, hFile uintptr, lDistanceToMove long, lpDistanceToMoveHigh uintptr, dwMoveMethod uint32) uint32 {
+ r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, hFile, uintptr(lDistanceToMove), lpDistanceToMoveHigh, uintptr(dwMoveMethod), 0, 0)
+ var uOff = uint32(r0)
+ if uOff == 0xffffffff {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return uint32(r0)
+}
+
+// BOOL SetEndOfFile(
+// HANDLE hFile
+// );
+func XSetEndOfFile(t *TLS, hFile uintptr) int32 {
+ err := syscall.SetEndOfFile(syscall.Handle(hFile))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// BOOL ReadFile(
+// HANDLE hFile,
+// LPVOID lpBuffer,
+// DWORD nNumberOfBytesToRead,
+// LPDWORD lpNumberOfBytesRead,
+// LPOVERLAPPED lpOverlapped
+// );
+func XReadFile(t *TLS, hFile, lpBuffer uintptr, nNumberOfBytesToRead uint32, lpNumberOfBytesRead, lpOverlapped uintptr) int32 {
+ r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5,
+ hFile, lpBuffer, uintptr(nNumberOfBytesToRead), uintptr(lpNumberOfBytesRead), uintptr(lpOverlapped), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+}
+
+// BOOL WriteFile(
+// HANDLE hFile,
+// LPCVOID lpBuffer,
+// DWORD nNumberOfBytesToWrite,
+// LPDWORD lpNumberOfBytesWritten,
+// LPOVERLAPPED lpOverlapped
+// );
+func XWriteFile(t *TLS, hFile, lpBuffer uintptr, nNumberOfBytesToWrite uint32, lpNumberOfBytesWritten, lpOverlapped uintptr) int32 {
+ r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5,
+ hFile, lpBuffer, uintptr(nNumberOfBytesToWrite), lpNumberOfBytesWritten, lpOverlapped, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+}
+
+// DWORD GetFileAttributesW(
+// LPCWSTR lpFileName
+// );
+func XGetFileAttributesW(t *TLS, lpFileName uintptr) uint32 {
+ attrs, err := syscall.GetFileAttributes((*uint16)(unsafe.Pointer(lpFileName)))
+ if attrs == syscall.INVALID_FILE_ATTRIBUTES {
+ if err != nil {
+ t.setErrno(err)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return attrs
+}
+
+// HANDLE CreateFileW(
+// LPCWSTR lpFileName,
+// DWORD dwDesiredAccess,
+// DWORD dwShareMode,
+// LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+// DWORD dwCreationDisposition,
+// DWORD dwFlagsAndAttributes,
+// HANDLE hTemplateFile
+// );
+func XCreateFileW(t *TLS, lpFileName uintptr, dwDesiredAccess, dwShareMode uint32, lpSecurityAttributes uintptr, dwCreationDisposition, dwFlagsAndAttributes uint32, hTemplateFile uintptr) uintptr {
+
+ r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, lpFileName, uintptr(dwDesiredAccess), uintptr(dwShareMode), lpSecurityAttributes,
+ uintptr(dwCreationDisposition), uintptr(dwFlagsAndAttributes), hTemplateFile, 0, 0)
+ h := syscall.Handle(r0)
+ if h == syscall.InvalidHandle {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return r0
+ }
+ return uintptr(h)
+}
+
+// BOOL DuplicateHandle(
+// HANDLE hSourceProcessHandle,
+// HANDLE hSourceHandle,
+// HANDLE hTargetProcessHandle,
+// LPHANDLE lpTargetHandle,
+// DWORD dwDesiredAccess,
+// BOOL bInheritHandle,
+// DWORD dwOptions
+// );
+func XDuplicateHandle(t *TLS, hSourceProcessHandle, hSourceHandle, hTargetProcessHandle, lpTargetHandle uintptr, dwDesiredAccess uint32, bInheritHandle int32, dwOptions uint32) int32 {
+ r0, _, err := syscall.Syscall9(procDuplicateHandle.Addr(), 7, hSourceProcessHandle, hSourceHandle, hTargetProcessHandle,
+ lpTargetHandle, uintptr(dwDesiredAccess), uintptr(bInheritHandle), uintptr(dwOptions), 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// HANDLE GetCurrentProcess();
+func XGetCurrentProcess(t *TLS) uintptr {
+ r0, _, e1 := syscall.Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0)
+ if r0 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return r0
+}
+
+// BOOL FlushFileBuffers(
+// HANDLE hFile
+// );
+func XFlushFileBuffers(t *TLS, hFile uintptr) int32 {
+ err := syscall.FlushFileBuffers(syscall.Handle(hFile))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+ return 1
+
+}
+
+// DWORD GetFileType(
+// HANDLE hFile
+// );
+func XGetFileType(t *TLS, hFile uintptr) uint32 {
+ n, err := syscall.GetFileType(syscall.Handle(hFile))
+ if err != nil {
+ t.setErrno(err)
+ }
+ return n
+}
+
+// BOOL WINAPI GetConsoleMode(
+// _In_ HANDLE hConsoleHandle,
+// _Out_ LPDWORD lpMode
+// );
+func XGetConsoleMode(t *TLS, hConsoleHandle, lpMode uintptr) int32 {
+ err := syscall.GetConsoleMode(syscall.Handle(hConsoleHandle), (*uint32)(unsafe.Pointer(lpMode)))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// BOOL GetCommState(
+// HANDLE hFile,
+// LPDCB lpDCB
+// );
+func XGetCommState(t *TLS, hFile, lpDCB uintptr) int32 {
+ r1, _, err := syscall.Syscall(procGetCommState.Addr(), 2, hFile, lpDCB, 0)
+ if r1 == 0 {
+ t.setErrno(err)
+ return 0
+ }
+ return int32(r1)
+}
+
+// int _wcsnicmp(
+// const wchar_t *string1,
+// const wchar_t *string2,
+// size_t count
+// );
+func X_wcsnicmp(t *TLS, string1, string2 uintptr, count types.Size_t) int32 {
+
+ var s1 = strings.ToLower(goWideString(string1))
+ var l1 = len(s1)
+ var s2 = strings.ToLower(goWideString(string2))
+ var l2 = len(s2)
+
+ // shorter is lesser
+ if l1 < l2 {
+ return -1
+ }
+ if l2 > l1 {
+ return 1
+ }
+
+ // compare at most count
+ var cmpLen = count
+ if types.Size_t(l1) < cmpLen {
+ cmpLen = types.Size_t(l1)
+ }
+ return int32(strings.Compare(s1[:cmpLen], s2[:cmpLen]))
+}
+
+// BOOL WINAPI ReadConsole(
+// _In_ HANDLE hConsoleInput,
+// _Out_ LPVOID lpBuffer,
+// _In_ DWORD nNumberOfCharsToRead,
+// _Out_ LPDWORD lpNumberOfCharsRead,
+// _In_opt_ LPVOID pInputControl
+// );
+func XReadConsoleW(t *TLS, hConsoleInput, lpBuffer uintptr, nNumberOfCharsToRead uint32, lpNumberOfCharsRead, pInputControl uintptr) int32 {
+
+ rv, _, err := syscall.Syscall6(procReadConsoleW.Addr(), 5, hConsoleInput,
+ lpBuffer, uintptr(nNumberOfCharsToRead), lpNumberOfCharsRead, pInputControl, 0)
+ if rv == 0 {
+ t.setErrno(err)
+ }
+
+ return int32(rv)
+}
+
+// BOOL WINAPI WriteConsoleW(
+// _In_ HANDLE hConsoleOutput,
+// _In_ const VOID *lpBuffer,
+// _In_ DWORD nNumberOfCharsToWrite,
+// _Out_opt_ LPDWORD lpNumberOfCharsWritten,
+// _Reserved_ LPVOID lpReserved
+// );
+func XWriteConsoleW(t *TLS, hConsoleOutput, lpBuffer uintptr, nNumberOfCharsToWrite uint32, lpNumberOfCharsWritten, lpReserved uintptr) int32 {
+ rv, _, err := syscall.Syscall6(procWriteConsoleW.Addr(), 5, hConsoleOutput,
+ lpBuffer, uintptr(nNumberOfCharsToWrite), lpNumberOfCharsWritten, lpReserved, 0)
+ if rv == 0 {
+ t.setErrno(err)
+ }
+ return int32(rv)
+}
+
+// DWORD WaitForSingleObject(
+// HANDLE hHandle,
+// DWORD dwMilliseconds
+// );
+func XWaitForSingleObject(t *TLS, hHandle uintptr, dwMilliseconds uint32) uint32 {
+ rv, err := syscall.WaitForSingleObject(syscall.Handle(hHandle), dwMilliseconds)
+ if err != nil {
+ t.setErrno(err)
+ }
+ return rv
+}
+
+// BOOL ResetEvent(
+// HANDLE hEvent
+// );
+func XResetEvent(t *TLS, hEvent uintptr) int32 {
+ rv, _, err := syscall.Syscall(procResetEvent.Addr(), 1, hEvent, 0, 0)
+ if rv == 0 {
+ t.setErrno(err)
+ }
+ return int32(rv)
+}
+
+// BOOL WINAPI PeekConsoleInput(
+// _In_ HANDLE hConsoleInput,
+// _Out_ PINPUT_RECORD lpBuffer,
+// _In_ DWORD nLength,
+// _Out_ LPDWORD lpNumberOfEventsRead
+// );
+func XPeekConsoleInputW(t *TLS, hConsoleInput, lpBuffer uintptr, nLength uint32, lpNumberOfEventsRead uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procPeekConsoleInputW.Addr(), 4, hConsoleInput, lpBuffer, uintptr(nLength), lpNumberOfEventsRead, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// int WINAPIV wsprintfA(
+// LPSTR ,
+// LPCSTR ,
+// ...
+// );
+func XwsprintfA(t *TLS, buf, format, args uintptr) int32 {
+ return Xsprintf(t, buf, format, args)
+}
+
+// UINT WINAPI GetConsoleCP(void);
+func XGetConsoleCP(t *TLS) uint32 {
+ r0, _, err := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return uint32(r0)
+}
+
+// UINT WINAPI SetConsoleCP(UNIT);
+//func setConsoleCP(cp uint32) uint32 {
+//
+// r0, _, _ := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0)
+// if r0 == 0 {
+// panic("setcp failed")
+// }
+// return uint32(r0)
+//}
+
+// HANDLE CreateEventW(
+// LPSECURITY_ATTRIBUTES lpEventAttributes,
+// BOOL bManualReset,
+// BOOL bInitialState,
+// LPCWSTR lpName
+// );
+func XCreateEventW(t *TLS, lpEventAttributes uintptr, bManualReset, bInitialState int32, lpName uintptr) uintptr {
+ r0, _, err := syscall.Syscall6(procCreateEventW.Addr(), 4, lpEventAttributes, uintptr(bManualReset),
+ uintptr(bInitialState), lpName, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+type ThreadAdapter struct {
+ token uintptr
+ tls *TLS
+ param uintptr
+ threadFunc func(*TLS, uintptr) uint32
+}
+
+func (ta *ThreadAdapter) run() uintptr {
+ r := ta.threadFunc(ta.tls, ta.param)
+ ta.tls.Close()
+ removeObject(ta.token)
+ return uintptr(r)
+}
+
+func ThreadProc(p uintptr) uintptr {
+ adp, ok := winGetObject(p).(*ThreadAdapter)
+ if !ok {
+ panic("invalid thread")
+ }
+ return adp.run()
+}
+
+// HANDLE CreateThread(
+// LPSECURITY_ATTRIBUTES lpThreadAttributes,
+// SIZE_T dwStackSize,
+// LPTHREAD_START_ROUTINE lpStartAddress,
+// __drv_aliasesMem LPVOID lpParameter,
+// DWORD dwCreationFlags,
+// LPDWORD lpThreadId
+// );
+func XCreateThread(t *TLS, lpThreadAttributes uintptr, dwStackSize types.Size_t, lpStartAddress, lpParameter uintptr, dwCreationFlags uint32, lpThreadId uintptr) uintptr {
+ f := (*struct{ f func(*TLS, uintptr) uint32 })(unsafe.Pointer(&struct{ uintptr }{lpStartAddress})).f
+ var tAdp = ThreadAdapter{threadFunc: f, tls: NewTLS(), param: lpParameter}
+ tAdp.token = addObject(&tAdp)
+
+ r0, _, err := syscall.Syscall6(procCreateThread.Addr(), 6, lpThreadAttributes, uintptr(dwStackSize),
+ threadCallback, tAdp.token, uintptr(dwCreationFlags), lpThreadId)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// BOOL SetThreadPriority(
+// HANDLE hThread,
+// int nPriority
+// );
+func XSetThreadPriority(t *TLS, hThread uintptr, nPriority int32) int32 {
+
+ //r0, _, err := syscall.Syscall(procSetThreadPriority.Addr(), 2, hThread, uintptr(nPriority), 0)
+ //if r0 == 0 {
+ // t.setErrno(err)
+ //}
+ //return int32(r0)
+ return 1
+}
+
+// BOOL WINAPI SetConsoleMode(
+// _In_ HANDLE hConsoleHandle,
+// _In_ DWORD dwMode
+// );
+func XSetConsoleMode(t *TLS, hConsoleHandle uintptr, dwMode uint32) int32 {
+ rv, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, hConsoleHandle, uintptr(dwMode), 0)
+ if rv == 0 {
+ t.setErrno(err)
+ }
+ return int32(rv)
+}
+
+func XPurgeComm(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XClearCommError(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// void DeleteCriticalSection(
+// LPCRITICAL_SECTION lpCriticalSection
+// );
+func XDeleteCriticalSection(t *TLS, lpCriticalSection uintptr) {
+ syscall.Syscall(procDeleteCriticalSection.Addr(), 1, lpCriticalSection, 0, 0)
+}
+
+// void EnterCriticalSection(
+// LPCRITICAL_SECTION lpCriticalSection
+// );
+func XEnterCriticalSection(t *TLS, lpCriticalSection uintptr) {
+ syscall.Syscall(procEnterCriticalSection.Addr(), 1, lpCriticalSection, 0, 0)
+}
+
+// void LeaveCriticalSection(
+// LPCRITICAL_SECTION lpCriticalSection
+// );
+func XLeaveCriticalSection(t *TLS, lpCriticalSection uintptr) {
+ syscall.Syscall(procLeaveCriticalSection.Addr(), 1, lpCriticalSection, 0, 0)
+}
+
+func XGetOverlappedResult(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSetupComm(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSetCommTimeouts(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// void InitializeCriticalSection(
+// LPCRITICAL_SECTION lpCriticalSection
+// );
+func XInitializeCriticalSection(t *TLS, lpCriticalSection uintptr) {
+ // InitializeCriticalSection always succeeds, even in low memory situations.
+ syscall.Syscall(procInitializeCriticalSection.Addr(), 1, lpCriticalSection, 0, 0)
+}
+
+func XBuildCommDCBW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSetCommState(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func X_strnicmp(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XEscapeCommFunction(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XGetCommModemStatus(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// BOOL MoveFileW(
+// LPCWSTR lpExistingFileName,
+// LPCWSTR lpNewFileName
+// );
+func XMoveFileW(t *TLS, lpExistingFileName, lpNewFileName uintptr) int32 {
+ r0, _, err := syscall.Syscall(procMoveFileW.Addr(), 2, lpExistingFileName, lpNewFileName, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// DWORD GetFullPathNameW(
+// LPCWSTR lpFileName,
+// DWORD nBufferLength,
+// LPWSTR lpBuffer,
+// LPWSTR *lpFilePart
+// );
+func XGetFullPathNameW(t *TLS, lpFileName uintptr, nBufferLength uint32, lpBuffer, lpFilePart uintptr) uint32 {
+ r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, lpFileName, uintptr(nBufferLength), uintptr(lpBuffer), uintptr(lpFilePart), 0, 0)
+ n := uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return n
+}
+
+// LPWSTR CharLowerW(
+// LPWSTR lpsz
+// );
+func XCharLowerW(t *TLS, lpsz uintptr) uintptr {
+ panic(todo(""))
+}
+
+// BOOL CreateDirectoryW(
+// LPCWSTR lpPathName,
+// LPSECURITY_ATTRIBUTES lpSecurityAttributes
+// );
+func XCreateDirectoryW(t *TLS, lpPathName, lpSecurityAttributes uintptr) int32 {
+ err := syscall.CreateDirectory((*uint16)(unsafe.Pointer(lpPathName)),
+ (*syscall.SecurityAttributes)(unsafe.Pointer(lpSecurityAttributes)))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// BOOL SetFileAttributesW(
+// LPCWSTR lpFileName,
+// DWORD dwFileAttributes
+// );
+func XSetFileAttributesW(t *TLS, lpFileName uintptr, dwFileAttributes uint32) int32 {
+ err := syscall.SetFileAttributes((*uint16)(unsafe.Pointer(lpFileName)), dwFileAttributes)
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// UINT GetTempFileNameW(
+// LPCWSTR lpPathName,
+// LPCWSTR lpPrefixString,
+// UINT uUnique,
+// LPWSTR lpTempFileName
+// );
+func XGetTempFileNameW(t *TLS, lpPathName, lpPrefixString uintptr, uUnique uint32, lpTempFileName uintptr) uint32 {
+ r0, _, e1 := syscall.Syscall6(procGetTempFileNameW.Addr(), 4, lpPathName, lpPrefixString, uintptr(uUnique), lpTempFileName, 0, 0)
+ if r0 == 0 {
+ t.setErrno(e1)
+ }
+ return uint32(r0)
+}
+
+// BOOL CopyFileW(
+// LPCWSTR lpExistingFileName,
+// LPCWSTR lpNewFileName,
+// BOOL bFailIfExists
+// );
+func XCopyFileW(t *TLS, lpExistingFileName, lpNewFileName uintptr, bFailIfExists int32) int32 {
+ r0, _, e1 := syscall.Syscall(procCopyFileW.Addr(), 3, lpExistingFileName, lpNewFileName, uintptr(bFailIfExists))
+ if r0 == 0 {
+ t.setErrno(e1)
+ }
+ return int32(r0)
+}
+
+// BOOL DeleteFileW(
+// LPCWSTR lpFileName
+// );
+func XDeleteFileW(t *TLS, lpFileName uintptr) int32 {
+ err := syscall.DeleteFile((*uint16)(unsafe.Pointer(lpFileName)))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// BOOL RemoveDirectoryW(
+// LPCWSTR lpPathName
+// );
+func XRemoveDirectoryW(t *TLS, lpPathName uintptr) int32 {
+ err := syscall.RemoveDirectory((*uint16)(unsafe.Pointer(lpPathName)))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// HANDLE FindFirstFileW(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData);
+func XFindFirstFileW(t *TLS, lpFileName, lpFindFileData uintptr) uintptr {
+ r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, lpFileName, lpFindFileData, 0)
+ handle := syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return r0
+}
+
+// HANDLE FindFirstFileExW(
+// LPCWSTR lpFileName,
+// FINDEX_INFO_LEVELS fInfoLevelId,
+// LPVOID lpFindFileData,
+// FINDEX_SEARCH_OPS fSearchOp,
+// LPVOID lpSearchFilter,
+// DWORD dwAdditionalFlags
+// );
+func XFindFirstFileExW(t *TLS, lpFileName uintptr, fInfoLevelId int32, lpFindFileData uintptr, fSearchOp int32, lpSearchFilter uintptr, dwAdditionalFlags uint32) uintptr {
+ r0, _, e1 := syscall.Syscall6(procFindFirstFileExW.Addr(), 6, lpFileName, uintptr(fInfoLevelId), lpFindFileData, uintptr(fSearchOp), lpSearchFilter, uintptr(dwAdditionalFlags))
+ handle := syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return r0
+}
+
+// BOOL FindClose(HANDLE hFindFile);
+func XFindClose(t *TLS, hFindFile uintptr) int32 {
+ r0, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, hFindFile, 0, 0)
+ if r0 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return int32(r0)
+}
+
+// BOOL FindNextFileW(
+// HANDLE hFindFile,
+// LPWIN32_FIND_DATAW lpFindFileData
+// );
+func XFindNextFileW(t *TLS, hFindFile, lpFindFileData uintptr) int32 {
+ r0, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, hFindFile, lpFindFileData, 0)
+ if r0 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return int32(r0)
+}
+
+// DWORD GetLogicalDriveStringsA(
+// DWORD nBufferLength,
+// LPSTR lpBuffer
+// );
+func XGetLogicalDriveStringsA(t *TLS, nBufferLength uint32, lpBuffer uintptr) uint32 {
+ r0, _, err := syscall.Syscall(procGetLogicalDriveStringsA.Addr(), 2, uintptr(nBufferLength), lpBuffer, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return uint32(r0)
+}
+
+// BOOL GetVolumeInformationA(
+// LPCSTR lpRootPathName,
+// LPSTR lpVolumeNameBuffer,
+// DWORD nVolumeNameSize,
+// LPDWORD lpVolumeSerialNumber,
+// LPDWORD lpMaximumComponentLength,
+// LPDWORD lpFileSystemFlags,
+// LPSTR lpFileSystemNameBuffer,
+// DWORD nFileSystemNameSize
+// );
+func XGetVolumeInformationA(t *TLS, lpRootPathName, lpVolumeNameBuffer uintptr, nVolumeNameSize uint32, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer uintptr, nFileSystemNameSize uint32) int32 {
+ r0, _, err := syscall.Syscall9(procGetVolumeInformationA.Addr(), 8,
+ lpRootPathName,
+ lpVolumeNameBuffer,
+ uintptr(nVolumeNameSize),
+ lpVolumeSerialNumber,
+ lpMaximumComponentLength,
+ lpFileSystemFlags,
+ lpFileSystemNameBuffer,
+ uintptr(nFileSystemNameSize),
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL CreateHardLinkW(
+// LPCWSTR lpFileName,
+// LPCWSTR lpExistingFileName,
+// LPSECURITY_ATTRIBUTES lpSecurityAttributes
+// );
+func XCreateHardLinkW(t *TLS, lpFileName, lpExistingFileName, lpSecurityAttributes uintptr) int32 {
+ r0, _, err := syscall.Syscall(procCreateHardLinkW.Addr(), 1, lpFileName, lpExistingFileName, lpSecurityAttributes)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL DeviceIoControl(
+// HANDLE hDevice,
+// DWORD dwIoControlCode,
+// LPVOID lpInBuffer,
+// DWORD nInBufferSize,
+// LPVOID lpOutBuffer,
+// DWORD nOutBufferSize,
+// LPDWORD lpBytesReturned,
+// LPOVERLAPPED lpOverlapped
+// );
+func XDeviceIoControl(t *TLS, hDevice uintptr, dwIoControlCode uint32, lpInBuffer uintptr, nInBufferSize uint32, lpOutBuffer uintptr, nOutBufferSize uint32, lpBytesReturned, lpOverlapped uintptr) int32 {
+ r0, _, err := syscall.Syscall9(procDeviceIoControl.Addr(), 8, hDevice, uintptr(dwIoControlCode), lpInBuffer,
+ uintptr(nInBufferSize), lpOutBuffer, uintptr(nOutBufferSize), lpBytesReturned, lpOverlapped, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// int wcsncmp(
+// const wchar_t *string1,
+// const wchar_t *string2,
+// size_t count
+// );
+func Xwcsncmp(t *TLS, string1, string2 uintptr, count types.Size_t) int32 {
+ var s1 = goWideString(string1)
+ var l1 = len(s1)
+ var s2 = goWideString(string2)
+ var l2 = len(s2)
+
+ // shorter is lesser
+ if l1 < l2 {
+ return -1
+ }
+ if l2 > l1 {
+ return 1
+ }
+
+ // compare at most count
+ var cmpLen = count
+ if types.Size_t(l1) < cmpLen {
+ cmpLen = types.Size_t(l1)
+ }
+ return int32(strings.Compare(s1[:cmpLen], s2[:cmpLen]))
+}
+
+// int MultiByteToWideChar(
+// UINT CodePage,
+// DWORD dwFlags,
+// _In_NLS_string_(cbMultiByte)LPCCH lpMultiByteStr,
+// int cbMultiByte,
+// LPWSTR lpWideCharStr,
+// int cchWideChar
+// );
+func XMultiByteToWideChar(t *TLS, CodePage uint32, dwFlags uint32, lpMultiByteStr uintptr, cbMultiByte int32, lpWideCharStr uintptr, cchWideChar int32) int32 {
+ r1, _, _ := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6,
+ uintptr(CodePage), uintptr(dwFlags), uintptr(lpMultiByteStr),
+ uintptr(cbMultiByte), uintptr(lpWideCharStr), uintptr(cchWideChar))
+ return (int32(r1))
+}
+
+// void OutputDebugStringW(
+// LPCWSTR lpOutputString
+// );
+func XOutputDebugStringW(t *TLS, lpOutputString uintptr) {
+ panic(todo(""))
+}
+
+func XMessageBeep(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+//====
+
+// long _InterlockedCompareExchange(
+// long volatile * Destination,
+// long Exchange,
+// long Comparand
+// );
+func X_InterlockedCompareExchange(t *TLS, Destination uintptr, Exchange, Comparand long) long {
+
+ // The function returns the initial value of the Destination parameter.
+ var v = *(*int32)(unsafe.Pointer(Destination))
+ _ = atomic.CompareAndSwapInt32((*int32)(unsafe.Pointer(Destination)), Comparand, Exchange)
+ return long(v)
+}
+
+// int rename(const char *oldpath, const char *newpath);
+func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+}
+
+// BOOL AreFileApisANSI();
+func XAreFileApisANSI(t *TLS) int32 {
+
+ r0, _, _ := syscall.Syscall(procAreFileApisANSI.Addr(), 0, 0, 0, 0)
+ return int32(r0)
+}
+
+// HANDLE CreateFileA(
+// LPCSTR lpFileName,
+// DWORD dwDesiredAccess,
+// DWORD dwShareMode,
+// LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+// DWORD dwCreationDisposition,
+// DWORD dwFlagsAndAttributes,
+// HANDLE hTemplateFile
+// );
+func XCreateFileA(t *TLS, lpFileName uintptr, dwDesiredAccess, dwShareMode uint32,
+ lpSecurityAttributes uintptr, dwCreationDisposition, dwFlagsAndAttributes uint32, hTemplateFile uintptr) uintptr {
+
+ r0, _, e1 := syscall.Syscall9(procCreateFileA.Addr(), 7, lpFileName, uintptr(dwDesiredAccess), uintptr(dwShareMode), lpSecurityAttributes,
+ uintptr(dwCreationDisposition), uintptr(dwFlagsAndAttributes), hTemplateFile, 0, 0)
+ h := syscall.Handle(r0)
+ if h == syscall.InvalidHandle {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return r0
+ }
+ return uintptr(h)
+
+}
+
+// HANDLE CreateFileMappingA(
+// HANDLE hFile,
+// LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+// DWORD flProtect,
+// DWORD dwMaximumSizeHigh,
+// DWORD dwMaximumSizeLow,
+// LPCSTR lpName
+// );
+func XCreateFileMappingA(t *TLS, hFile, lpFileMappingAttributes uintptr, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow uint32, lpName uintptr) uintptr {
+ panic(todo(""))
+}
+
+// HANDLE CreateFileMappingW(
+// HANDLE hFile,
+// LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+// DWORD flProtect,
+// DWORD dwMaximumSizeHigh,
+// DWORD dwMaximumSizeLow,
+// LPCWSTR lpName
+// );
+func XCreateFileMappingW(t *TLS, hFile, lpFileMappingAttributes uintptr, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow uint32, lpName uintptr) uintptr {
+ h, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, hFile, lpFileMappingAttributes, uintptr(flProtect),
+ uintptr(dwMaximumSizeHigh), uintptr(dwMaximumSizeLow), lpName)
+ if h == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return h
+}
+
+// HANDLE CreateMutexW(
+// LPSECURITY_ATTRIBUTES lpMutexAttributes,
+// BOOL bInitialOwner,
+// LPCWSTR lpName
+// );
+func XCreateMutexW(t *TLS, lpMutexAttributes uintptr, bInitialOwner int32, lpName uintptr) uintptr {
+ panic(todo(""))
+}
+
+// BOOL DeleteFileA(
+// LPCSTR lpFileName
+// );
+func XDeleteFileA(t *TLS, lpFileName uintptr) int32 {
+ panic(todo(""))
+}
+
+// DWORD FormatMessageA(
+// DWORD dwFlags,
+// LPCVOID lpSource,
+// DWORD dwMessageId,
+// DWORD dwLanguageId,
+// LPSTR lpBuffer,
+// DWORD nSize,
+// va_list *Arguments
+// );
+func XFormatMessageA(t *TLS, dwFlagsAndAttributes uint32, lpSource uintptr, dwMessageId, dwLanguageId uint32, lpBuffer uintptr, nSize uint32, Arguments uintptr) uint32 {
+ panic(todo(""))
+}
+
+// DWORD FormatMessageW(
+// DWORD dwFlags,
+// LPCVOID lpSource,
+// DWORD dwMessageId,
+// DWORD dwLanguageId,
+// LPWSTR lpBuffer,
+// DWORD nSize,
+// va_list *Arguments
+// );
+func XFormatMessageW(t *TLS, dwFlags uint32, lpSource uintptr, dwMessageId, dwLanguageId uint32, lpBuffer uintptr, nSize uint32, Arguments uintptr) uint32 {
+ r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7,
+ uintptr(dwFlags), lpSource, uintptr(dwMessageId), uintptr(dwLanguageId),
+ lpBuffer, uintptr(nSize), Arguments, 0, 0)
+ n := uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return n
+}
+
+// BOOL FreeLibrary(HMODULE hLibModule);
+func XFreeLibrary(t *TLS, hLibModule uintptr) int32 {
+ panic(todo(""))
+}
+
+// DWORD GetCurrentProcessId();
+func XGetCurrentProcessId(t *TLS) uint32 {
+ r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0)
+ pid := uint32(r0)
+ return pid
+}
+
+// BOOL GetDiskFreeSpaceA(
+// LPCSTR lpRootPathName,
+// LPDWORD lpSectorsPerCluster,
+// LPDWORD lpBytesPerSector,
+// LPDWORD lpNumberOfFreeClusters,
+// LPDWORD lpTotalNumberOfClusters
+// );
+func XGetDiskFreeSpaceA(t *TLS, lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters uintptr) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetDiskFreeSpaceW(
+// LPCWSTR lpRootPathName,
+// LPDWORD lpSectorsPerCluster,
+// LPDWORD lpBytesPerSector,
+// LPDWORD lpNumberOfFreeClusters,
+// LPDWORD lpTotalNumberOfClusters
+// );
+func XGetDiskFreeSpaceW(t *TLS, lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters uintptr) int32 {
+ panic(todo(""))
+}
+
+// DWORD GetFileAttributesA(
+// LPCSTR lpFileName
+// );
+func XGetFileAttributesA(t *TLS, lpFileName uintptr) uint32 {
+ r0, _, err := syscall.Syscall(procGetFileAttributesA.Addr(), 1, lpFileName, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return uint32(r0)
+}
+
+// BOOL GetFileAttributesExW(
+// LPCWSTR lpFileName,
+// GET_FILEEX_INFO_LEVELS fInfoLevelId,
+// LPVOID lpFileInformation
+// );
+func XGetFileAttributesExW(t *TLS, lpFileName uintptr, fInfoLevelId uint32, lpFileInformation uintptr) int32 {
+ r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, lpFileName, uintptr(fInfoLevelId), lpFileInformation)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+}
+
+// DWORD GetFileSize(
+// HANDLE hFile,
+// LPDWORD lpFileSizeHigh
+// );
+func XGetFileSize(t *TLS, hFile, lpFileSizeHigh uintptr) uint32 {
+ r1, _, e1 := syscall.Syscall(procGetFileSize.Addr(), 2, hFile, lpFileSizeHigh, 0)
+ if r1 == math.MaxUint32 {
+ if lpFileSizeHigh == 0 {
+ // If the function fails and lpFileSizeHigh is NULL, the return value is INVALID_FILE_SIZE.
+ // Note that if the return value is INVALID_FILE_SIZE (0xffffffff),
+ // an application must call GetLastError to determine whether the function has succeeded or failed.
+ t.setErrno(e1)
+ return math.MaxUint32
+ } else {
+ // If the function fails and lpFileSizeHigh is non-NULL, the return value is INVALID_FILE_SIZE
+ // and GetLastError will return a value other than NO_ERROR.
+ t.setErrno(e1)
+ return math.MaxUint32
+ }
+ }
+ return uint32(r1)
+}
+
+// DWORD GetFullPathNameA(
+// LPCSTR lpFileName,
+// DWORD nBufferLength,
+// LPSTR lpBuffer,
+// LPSTR *lpFilePart
+// );
+func XGetFullPathNameA(t *TLS, lpFileName uintptr, nBufferLength uint32, lpBuffer, lpFilePart uintptr) uint32 {
+ panic(todo(""))
+}
+
+// FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
+func XGetProcAddress(t *TLS, hModule, lpProcName uintptr) uintptr {
+
+ return 0
+
+ //panic(todo(GoString(lpProcName)))
+ //
+ //r0, _, err := syscall.Syscall(procGetProcAddress.Addr(), 2, hModule, lpProcName, 0)
+ //if r0 == 0 {
+ // t.setErrno(err)
+ //}
+ //return r0
+}
+
+// NTSYSAPI NTSTATUS RtlGetVersion( // ntdll.dll
+// PRTL_OSVERSIONINFOW lpVersionInformation
+// );
+func XRtlGetVersion(t *TLS, lpVersionInformation uintptr) uintptr {
+ panic(todo(""))
+}
+
+// void GetSystemInfo(
+// LPSYSTEM_INFO lpSystemInfo
+// );
+func XGetSystemInfo(t *TLS, lpSystemInfo uintptr) {
+ syscall.Syscall(procGetSystemInfo.Addr(), 1, lpSystemInfo, 0, 0)
+}
+
+// void GetSystemTime(LPSYSTEMTIME lpSystemTime);
+func XGetSystemTime(t *TLS, lpSystemTime uintptr) {
+ syscall.Syscall(procGetSystemTime.Addr(), 1, lpSystemTime, 0, 0)
+}
+
+// void GetSystemTimeAsFileTime(
+// LPFILETIME lpSystemTimeAsFileTime
+// );
+func XGetSystemTimeAsFileTime(t *TLS, lpSystemTimeAsFileTime uintptr) {
+ syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, lpSystemTimeAsFileTime, 0, 0)
+}
+
+// DWORD GetTempPathA(
+// DWORD nBufferLength,
+// LPSTR lpBuffer
+// );
+func XGetTempPathA(t *TLS, nBufferLength uint32, lpBuffer uintptr) uint32 {
+ panic(todo(""))
+}
+
+// DWORD GetTempPathW(
+// DWORD nBufferLength,
+// LPWSTR lpBuffer
+// );
+func XGetTempPathW(t *TLS, nBufferLength uint32, lpBuffer uintptr) uint32 {
+ rv, err := syscall.GetTempPath(nBufferLength, (*uint16)(unsafe.Pointer(lpBuffer)))
+ if err != nil {
+ t.setErrno(err)
+ }
+ return rv
+}
+
+// DWORD GetTickCount();
+func XGetTickCount(t *TLS) uint32 {
+ r0, _, _ := syscall.Syscall(procGetTickCount.Addr(), 0, 0, 0, 0)
+ return uint32(r0)
+}
+
+// BOOL GetVersionExA(
+// LPOSVERSIONINFOA lpVersionInformation
+// );
+func XGetVersionExA(t *TLS, lpVersionInformation uintptr) int32 {
+ r0, _, err := syscall.Syscall(procGetVersionExA.Addr(), 1, lpVersionInformation, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// HANDLE HeapCreate(
+// DWORD flOptions,
+// SIZE_T dwInitialSize,
+// SIZE_T dwMaximumSize
+// );
+func XHeapCreate(t *TLS, flOptions uint32, dwInitialSize, dwMaximumSize types.Size_t) uintptr {
+ panic(todo(""))
+}
+
+// BOOL HeapDestroy(
+// HANDLE hHeap
+// );
+func XHeapDestroy(t *TLS, hHeap uintptr) int32 {
+ panic(todo(""))
+}
+
+// LPVOID HeapReAlloc(
+// HANDLE hHeap,
+// DWORD dwFlags,
+// _Frees_ptr_opt_ LPVOID lpMem,
+// SIZE_T dwBytes
+// );
+func XHeapReAlloc(t *TLS, hHeap uintptr, dwFlags uint32, lpMem uintptr, dwBytes types.Size_t) uintptr {
+ panic(todo(""))
+}
+
+// SIZE_T HeapSize(
+// HANDLE hHeap,
+// DWORD dwFlags,
+// LPCVOID lpMem
+// );
+func XHeapSize(t *TLS, hHeap uintptr, dwFlags uint32, lpMem uintptr) types.Size_t {
+ panic(todo(""))
+}
+
+// BOOL HeapValidate(
+// HANDLE hHeap,
+// DWORD dwFlags,
+// LPCVOID lpMem
+// );
+func XHeapValidate(t *TLS, hHeap uintptr, dwFlags uint32, lpMem uintptr) int32 {
+ panic(todo(""))
+}
+
+// SIZE_T HeapCompact(
+// HANDLE hHeap,
+// DWORD dwFlags
+// );
+func XHeapCompact(t *TLS, hHeap uintptr, dwFlags uint32) types.Size_t {
+ panic(todo(""))
+}
+
+// HMODULE LoadLibraryA(LPCSTR lpLibFileName);
+func XLoadLibraryA(t *TLS, lpLibFileName uintptr) uintptr {
+ panic(todo(""))
+}
+
+// HMODULE LoadLibraryW(
+// LPCWSTR lpLibFileName
+// );
+func XLoadLibraryW(t *TLS, lpLibFileName uintptr) uintptr {
+ panic(todo(""))
+}
+
+// HLOCAL LocalFree(
+// HLOCAL hMem
+// );
+func XLocalFree(t *TLS, hMem uintptr) uintptr {
+ h, err := syscall.LocalFree(syscall.Handle(hMem))
+ if h != 0 {
+ if err != nil {
+ t.setErrno(err)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return uintptr(h)
+ }
+ return 0
+}
+
+// BOOL LockFile(
+// HANDLE hFile,
+// DWORD dwFileOffsetLow,
+// DWORD dwFileOffsetHigh,
+// DWORD nNumberOfBytesToLockLow,
+// DWORD nNumberOfBytesToLockHigh
+// );
+func XLockFile(t *TLS, hFile uintptr, dwFileOffsetLow, dwFileOffsetHigh, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh uint32) int32 {
+
+ r1, _, e1 := syscall.Syscall6(procLockFile.Addr(), 5,
+ hFile, uintptr(dwFileOffsetLow), uintptr(dwFileOffsetHigh), uintptr(nNumberOfBytesToLockLow), uintptr(nNumberOfBytesToLockHigh), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+
+}
+
+// BOOL LockFileEx(
+// HANDLE hFile,
+// DWORD dwFlags,
+// DWORD dwReserved,
+// DWORD nNumberOfBytesToLockLow,
+// DWORD nNumberOfBytesToLockHigh,
+// LPOVERLAPPED lpOverlapped
+// );
+func XLockFileEx(t *TLS, hFile uintptr, dwFlags, dwReserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh uint32, lpOverlapped uintptr) int32 {
+ r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6,
+ hFile, uintptr(dwFlags), uintptr(dwReserved), uintptr(nNumberOfBytesToLockLow), uintptr(nNumberOfBytesToLockHigh), lpOverlapped)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+}
+
+// LPVOID MapViewOfFile(
+// HANDLE hFileMappingObject,
+// DWORD dwDesiredAccess,
+// DWORD dwFileOffsetHigh,
+// DWORD dwFileOffsetLow,
+// SIZE_T dwNumberOfBytesToMap
+// );
+func XMapViewOfFile(t *TLS, hFileMappingObject uintptr, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow uint32, dwNumberOfBytesToMap types.Size_t) uintptr {
+ h, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, hFileMappingObject, uintptr(dwDesiredAccess),
+ uintptr(dwFileOffsetHigh), uintptr(dwFileOffsetLow), uintptr(dwNumberOfBytesToMap), 0)
+ if h == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return h
+}
+
+// BOOL QueryPerformanceCounter(
+// LARGE_INTEGER *lpPerformanceCount
+// );
+func XQueryPerformanceCounter(t *TLS, lpPerformanceCount uintptr) int32 {
+ r0, _, _ := syscall.Syscall(procQueryPerformanceCounter.Addr(), 1, lpPerformanceCount, 0, 0)
+ return int32(r0)
+}
+
+// void Sleep(
+// DWORD dwMilliseconds
+// );
+func XSleep(t *TLS, dwMilliseconds uint32) {
+ gotime.Sleep(gotime.Duration(dwMilliseconds) * gotime.Millisecond)
+}
+
+// BOOL SystemTimeToFileTime(const SYSTEMTIME *lpSystemTime, LPFILETIME lpFileTime);
+func XSystemTimeToFileTime(t *TLS, lpSystemTime, lpFileTime uintptr) int32 {
+ r0, _, _ := syscall.Syscall(procSystemTimeToFileTime.Addr(), 2, lpSystemTime, lpFileTime, 0)
+ return int32(r0)
+}
+
+// BOOL UnlockFile(
+// HANDLE hFile,
+// DWORD dwFileOffsetLow,
+// DWORD dwFileOffsetHigh,
+// DWORD nNumberOfBytesToUnlockLow,
+// DWORD nNumberOfBytesToUnlockHigh
+// );
+func XUnlockFile(t *TLS, hFile uintptr, dwFileOffsetLow, dwFileOffsetHigh, nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh uint32) int32 {
+ r1, _, e1 := syscall.Syscall6(procUnlockFile.Addr(), 5,
+ hFile, uintptr(dwFileOffsetLow), uintptr(dwFileOffsetHigh), uintptr(nNumberOfBytesToUnlockLow), uintptr(nNumberOfBytesToUnlockHigh), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+}
+
+// BOOL UnlockFileEx(
+// HANDLE hFile,
+// DWORD dwReserved,
+// DWORD nNumberOfBytesToUnlockLow,
+// DWORD nNumberOfBytesToUnlockHigh,
+// LPOVERLAPPED lpOverlapped
+// );
+func XUnlockFileEx(t *TLS, hFile uintptr, dwReserved, nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh uint32, lpOverlapped uintptr) int32 {
+ r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5,
+ hFile, uintptr(dwReserved), uintptr(nNumberOfBytesToUnlockLow), uintptr(nNumberOfBytesToUnlockHigh), lpOverlapped, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return 0
+ }
+ return int32(r1)
+}
+
+// BOOL UnmapViewOfFile(
+// LPCVOID lpBaseAddress
+// );
+func XUnmapViewOfFile(t *TLS, lpBaseAddress uintptr) int32 {
+ err := syscall.UnmapViewOfFile(lpBaseAddress)
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// int WideCharToMultiByte(
+// UINT CodePage,
+// DWORD dwFlags,
+// _In_NLS_string_(cchWideChar)LPCWCH lpWideCharStr,
+// int cchWideChar,
+// LPSTR lpMultiByteStr,
+// int cbMultiByte,
+// LPCCH lpDefaultChar,
+// LPBOOL lpUsedDefaultChar
+// );
+func XWideCharToMultiByte(t *TLS, CodePage uint32, dwFlags uint32, lpWideCharStr uintptr, cchWideChar int32, lpMultiByteStr uintptr, cbMultiByte int32, lpDefaultChar, lpUsedDefaultChar uintptr) int32 {
+ r1, _, _ := syscall.Syscall9(procWideCharToMultiByte.Addr(), 8,
+ uintptr(CodePage), uintptr(dwFlags), lpWideCharStr,
+ uintptr(cchWideChar), lpMultiByteStr, uintptr(cbMultiByte),
+ lpDefaultChar, lpUsedDefaultChar, 0)
+ return (int32(r1))
+}
+
+// void OutputDebugStringA(
+// LPCSTR lpOutputString
+// )
+func XOutputDebugStringA(t *TLS, lpOutputString uintptr) {
+ panic(todo(""))
+}
+
+// BOOL FlushViewOfFile(
+// LPCVOID lpBaseAddress,
+// SIZE_T dwNumberOfBytesToFlush
+// );
+func XFlushViewOfFile(t *TLS, lpBaseAddress uintptr, dwNumberOfBytesToFlush types.Size_t) int32 {
+ err := syscall.FlushViewOfFile(lpBaseAddress, uintptr(dwNumberOfBytesToFlush))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+type _ino_t = uint16 /* types.h:43:24 */
+type _dev_t = uint32 /* types.h:51:22 */
+type _stat64 = struct {
+ Fst_dev _dev_t
+ Fst_ino _ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ _ [2]byte
+ Fst_rdev _dev_t
+ _ [4]byte
+ Fst_size int64
+ Fst_atime int64
+ Fst_mtime int64
+ Fst_ctime int64
+} /* _mingw_stat64.h:83:3 */
+
+var (
+ Windows_Tick int64 = 10000000
+ SecToUnixEpoch int64 = 11644473600
+)
+
+func WindowsTickToUnixSeconds(windowsTicks int64) int64 {
+ return (windowsTicks/Windows_Tick - SecToUnixEpoch)
+}
+
+// int _stat64(const char *path, struct __stat64 *buffer);
+func X_stat64(t *TLS, path, buffer uintptr) int32 {
+
+ var fa syscall.Win32FileAttributeData
+ r1, _, e1 := syscall.Syscall(procGetFileAttributesExA.Addr(), 3, path, syscall.GetFileExInfoStandard, (uintptr)(unsafe.Pointer(&fa)))
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ return -1
+ }
+
+ var bStat64 = (*_stat64)(unsafe.Pointer(buffer))
+ var accessTime = int64(fa.LastAccessTime.HighDateTime)<<32 + int64(fa.LastAccessTime.LowDateTime)
+ bStat64.Fst_atime = WindowsTickToUnixSeconds(accessTime)
+ var modTime = int64(fa.LastWriteTime.HighDateTime)<<32 + int64(fa.LastWriteTime.LowDateTime)
+ bStat64.Fst_mtime = WindowsTickToUnixSeconds(modTime)
+ var crTime = int64(fa.CreationTime.HighDateTime)<<32 + int64(fa.CreationTime.LowDateTime)
+ bStat64.Fst_ctime = WindowsTickToUnixSeconds(crTime)
+ var fSz = int64(fa.FileSizeHigh)<<32 + int64(fa.FileSizeLow)
+ bStat64.Fst_size = fSz
+ bStat64.Fst_mode = WindowsAttrbiutesToStat(fa.FileAttributes)
+
+ return 0
+}
+
+func WindowsAttrbiutesToStat(fa uint32) uint16 {
+ var src_mode = fa & 0xff
+ var st_mode uint16
+ if (src_mode & syscall.FILE_ATTRIBUTE_DIRECTORY) != 0 {
+ st_mode = syscall.S_IFDIR
+ } else {
+ st_mode = syscall.S_IFREG
+ }
+
+ if src_mode&syscall.FILE_ATTRIBUTE_READONLY != 0 {
+ st_mode = st_mode | syscall.S_IRUSR
+ } else {
+ st_mode = st_mode | syscall.S_IRUSR | syscall.S_IWUSR
+ }
+ // fill group fields
+ st_mode = st_mode | (st_mode&0x700)>>3
+ st_mode = st_mode | (st_mode&0x700)>>6
+ return st_mode
+}
+
+// int _chsize(
+// int fd,
+// long size
+// );
+func X_chsize(t *TLS, fd int32, size long) int32 {
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(EBADF)
+ return -1
+ }
+
+ err := syscall.Ftruncate(f.Handle, int64(size))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ return 0
+}
+
+// int _snprintf(char *str, size_t size, const char *format, ...);
+func X_snprintf(t *TLS, str uintptr, size types.Size_t, format, args uintptr) int32 {
+ return Xsnprintf(t, str, size, format, args)
+}
+
+const wErr_ERROR_INSUFFICIENT_BUFFER = 122
+
+func win32FindDataToFileInfo(t *TLS, fdata *stat.X_finddata64i32_t, wfd *syscall.Win32finddata) int32 {
+ // t64 = 64-bit time value
+ var accessTime = int64(wfd.LastAccessTime.HighDateTime)<<32 + int64(wfd.LastAccessTime.LowDateTime)
+ fdata.Ftime_access = WindowsTickToUnixSeconds(accessTime)
+ var modTime = int64(wfd.LastWriteTime.HighDateTime)<<32 + int64(wfd.LastWriteTime.LowDateTime)
+ fdata.Ftime_write = WindowsTickToUnixSeconds(modTime)
+ var crTime = int64(wfd.CreationTime.HighDateTime)<<32 + int64(wfd.CreationTime.LowDateTime)
+ fdata.Ftime_create = WindowsTickToUnixSeconds(crTime)
+ // i32 = 32-bit size
+ fdata.Fsize = wfd.FileSizeLow
+ fdata.Fattrib = wfd.FileAttributes
+
+ var cp = XGetConsoleCP(t)
+ var wcFn = (uintptr)(unsafe.Pointer(&wfd.FileName[0]))
+ var mbcsFn = (uintptr)(unsafe.Pointer(&fdata.Fname[0]))
+ rv := XWideCharToMultiByte(t, cp, 0, wcFn, -1, mbcsFn, 260, 0, 0)
+ if rv == wErr_ERROR_INSUFFICIENT_BUFFER {
+ t.setErrno(errno.ENOMEM)
+ return -1
+ }
+ return 0
+}
+
+// intptr_t _findfirst64i32(
+// const char *filespec,
+// struct _finddata64i32_t *fileinfo
+// );
+func X_findfirst64i32(t *TLS, filespec, fileinfo uintptr) types.Intptr_t {
+
+ // Note: this is the 'narrow' character findfirst -- expects output
+ // as mbcs -- conversion below -- via ToFileInfo
+
+ var gsFileSpec = GoString(filespec)
+ namep, err := syscall.UTF16PtrFromString(gsFileSpec)
+ if err != nil {
+ t.setErrno(err)
+ return types.Intptr_t(-1)
+ }
+
+ var fdata = (*stat.X_finddata64i32_t)(unsafe.Pointer(fileinfo))
+ var wfd syscall.Win32finddata
+ h, err := syscall.FindFirstFile((*uint16)(unsafe.Pointer(namep)), &wfd)
+ if err != nil {
+ t.setErrno(err)
+ return types.Intptr_t(-1)
+ }
+ rv := win32FindDataToFileInfo(t, fdata, &wfd)
+ if rv != 0 {
+ if h != 0 {
+ syscall.FindClose(h)
+ }
+ return types.Intptr_t(-1)
+ }
+ return types.Intptr_t(h)
+}
+
+// int _findnext64i32(
+// intptr_t handle,
+// struct _finddata64i32_t *fileinfo
+// );
+func X_findnext64i32(t *TLS, handle types.Intptr_t, fileinfo uintptr) int32 {
+
+ var fdata = (*stat.X_finddata64i32_t)(unsafe.Pointer(fileinfo))
+ var wfd syscall.Win32finddata
+
+ err := syscall.FindNextFile(syscall.Handle(handle), &wfd)
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ rv := win32FindDataToFileInfo(t, fdata, &wfd)
+ if rv != 0 {
+ return -1
+ }
+ return 0
+}
+
+// int _findclose(
+// intptr_t handle
+// );
+func X_findclose(t *TLS, handle types.Intptr_t) int32 {
+
+ err := syscall.FindClose(syscall.Handle(handle))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+ return 0
+}
+
+// DWORD GetEnvironmentVariableA(
+// LPCSTR lpName,
+// LPSTR lpBuffer,
+// DWORD nSize
+// );
+func XGetEnvironmentVariableA(t *TLS, lpName, lpBuffer uintptr, nSize uint32) uint32 {
+ r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableA.Addr(), 3, lpName, lpBuffer, uintptr(nSize))
+ n := uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return n
+}
+
+// int _fstat64(
+// int fd,
+// struct __stat64 *buffer
+// );
+func X_fstat64(t *TLS, fd int32, buffer uintptr) int32 {
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(EBADF)
+ return -1
+ }
+
+ var d syscall.ByHandleFileInformation
+ err := syscall.GetFileInformationByHandle(f.Handle, &d)
+ if err != nil {
+ t.setErrno(EBADF)
+ return -1
+ }
+
+ var bStat64 = (*_stat64)(unsafe.Pointer(buffer))
+ var accessTime = int64(d.LastAccessTime.HighDateTime)<<32 + int64(d.LastAccessTime.LowDateTime)
+ bStat64.Fst_atime = WindowsTickToUnixSeconds(accessTime)
+ var modTime = int64(d.LastWriteTime.HighDateTime)<<32 + int64(d.LastWriteTime.LowDateTime)
+ bStat64.Fst_mtime = WindowsTickToUnixSeconds(modTime)
+ var crTime = int64(d.CreationTime.HighDateTime)<<32 + int64(d.CreationTime.LowDateTime)
+ bStat64.Fst_ctime = WindowsTickToUnixSeconds(crTime)
+ var fSz = int64(d.FileSizeHigh)<<32 + int64(d.FileSizeLow)
+ bStat64.Fst_size = fSz
+ bStat64.Fst_mode = WindowsAttrbiutesToStat(d.FileAttributes)
+
+ return 0
+}
+
+// HANDLE CreateEventA(
+// LPSECURITY_ATTRIBUTES lpEventAttributes,
+// BOOL bManualReset,
+// BOOL bInitialState,
+// LPCSTR lpName
+// );
+func XCreateEventA(t *TLS, lpEventAttributes uintptr, bManualReset, bInitialState int32, lpName uintptr) uintptr {
+ r0, _, err := syscall.Syscall6(procCreateEventA.Addr(), 4, lpEventAttributes, uintptr(bManualReset),
+ uintptr(bInitialState), lpName, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// BOOL WINAPI CancelSynchronousIo(
+// _In_ HANDLE hThread
+// );
+func XCancelSynchronousIo(t *TLS, hThread uintptr) int32 {
+ panic(todo(""))
+}
+
+func X_endthreadex(t *TLS, _ ...interface{}) {
+ // NOOP
+}
+
+// The calling convention for beginthread is cdecl -- but in this
+// case we're just intercepting it and sending it through CreateThread which expects stdcall
+// and gets that via the go callback. This is safe because the thread is calling into go
+// not a cdecl function which would expect the stack setup of cdecl.
+func X_beginthread(t *TLS, procAddr uintptr, stack_sz uint32, args uintptr) int32 {
+ f := (*struct{ f func(*TLS, uintptr) uint32 })(unsafe.Pointer(&struct{ uintptr }{procAddr})).f
+ var tAdp = ThreadAdapter{threadFunc: f, tls: NewTLS(), param: args}
+ tAdp.token = addObject(&tAdp)
+
+ r0, _, err := syscall.Syscall6(procCreateThread.Addr(), 6, 0, uintptr(stack_sz),
+ threadCallback, tAdp.token, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// uintptr_t _beginthreadex( // NATIVE CODE
+// void *security,
+// unsigned stack_size,
+// unsigned ( __stdcall *start_address )( void * ),
+// void *arglist,
+// unsigned initflag,
+// unsigned *thrdaddr
+// );
+func X_beginthreadex(t *TLS, _ uintptr, stack_sz uint32, procAddr uintptr, args uintptr, initf uint32, thAddr uintptr) int32 {
+ f := (*struct{ f func(*TLS, uintptr) uint32 })(unsafe.Pointer(&struct{ uintptr }{procAddr})).f
+ var tAdp = ThreadAdapter{threadFunc: f, tls: NewTLS(), param: args}
+ tAdp.token = addObject(&tAdp)
+
+ r0, _, err := syscall.Syscall6(procCreateThread.Addr(), 6, 0, uintptr(stack_sz),
+ threadCallback, tAdp.token, uintptr(initf), thAddr)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// DWORD GetCurrentThreadId();
+func XGetCurrentThreadId(t *TLS) uint32 {
+ r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0)
+ return uint32(r0)
+ //return uint32(t.ID)
+}
+
+// BOOL GetExitCodeThread(
+// HANDLE hThread,
+// LPDWORD lpExitCode
+// );
+func XGetExitCodeThread(t *TLS, hThread, lpExitCode uintptr) int32 {
+ r0, _, _ := syscall.Syscall(procGetExitCodeThread.Addr(), 2, hThread, lpExitCode, 0)
+ return int32(r0)
+}
+
+// DWORD WaitForSingleObjectEx(
+// HANDLE hHandle,
+// DWORD dwMilliseconds,
+// BOOL bAlertable
+// );
+func XWaitForSingleObjectEx(t *TLS, hHandle uintptr, dwMilliseconds uint32, bAlertable int32) uint32 {
+ rv, _, _ := syscall.Syscall(procWaitForSingleObjectEx.Addr(), 3, hHandle, uintptr(dwMilliseconds), uintptr(bAlertable))
+ return uint32(rv)
+}
+
+// DWORD MsgWaitForMultipleObjectsEx(
+// DWORD nCount,
+// const HANDLE *pHandles,
+// DWORD dwMilliseconds,
+// DWORD dwWakeMask,
+// DWORD dwFlags
+// );
+func XMsgWaitForMultipleObjectsEx(t *TLS, nCount uint32, pHandles uintptr, dwMilliseconds, dwWakeMask, dwFlags uint32) uint32 {
+ r0, _, err := syscall.Syscall6(procMsgWaitForMultipleObjectsEx.Addr(), 5,
+ uintptr(nCount),
+ pHandles,
+ uintptr(dwMilliseconds),
+ uintptr(dwWakeMask),
+ uintptr(dwFlags),
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return uint32(r0)
+}
+
+func XMessageBoxW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// DWORD GetModuleFileNameW(
+// HMODULE hModule,
+// LPWSTR lpFileName,
+// DWORD nSize
+// );
+func XGetModuleFileNameW(t *TLS, hModule, lpFileName uintptr, nSize uint32) uint32 {
+ r0, _, err := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, hModule, lpFileName, uintptr(nSize))
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return uint32(r0)
+}
+
+// NET_API_STATUS NET_API_FUNCTION NetGetDCName(
+// LPCWSTR ServerName,
+// LPCWSTR DomainName,
+// LPBYTE *Buffer
+// );
+func XNetGetDCName(t *TLS, ServerName, DomainName, Buffer uintptr) int32 {
+ r0, _, err := syscall.Syscall(procNetGetDCName.Addr(), 3, ServerName, DomainName, Buffer)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// NET_API_STATUS NET_API_FUNCTION NetUserGetInfo(
+// LPCWSTR servername,
+// LPCWSTR username,
+// DWORD level,
+// LPBYTE *bufptr
+// );
+func XNetUserGetInfo(t *TLS, servername, username uintptr, level uint32, bufptr uintptr) uint32 {
+ r0, _, err := syscall.Syscall6(procNetUserGetInfo.Addr(), 4,
+ servername,
+ username,
+ uintptr(level),
+ bufptr,
+ 0,
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return uint32(r0)
+}
+
+func XlstrlenW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// USERENVAPI BOOL GetProfilesDirectoryW(
+// [out] LPWSTR lpProfileDir,
+// [in, out] LPDWORD lpcchSize
+// );
+func XGetProfilesDirectoryW(t *TLS, lpProfileDir, lpcchSize uintptr) int32 {
+ r0, _, err := syscall.Syscall(procGetProfilesDirectoryW.Addr(), 2, lpProfileDir, lpcchSize, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+func XNetApiBufferFree(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// DWORD GetPrivateProfileStringA(
+// LPCSTR lpAppName,
+// LPCSTR lpKeyName,
+// LPCSTR lpDefault,
+// LPSTR lpReturnedString,
+// DWORD nSize,
+// LPCSTR lpFileName
+// );
+func XGetPrivateProfileStringA(t *TLS, lpAppName, lpKeyName, lpDefault, lpReturnedString uintptr, nSize uint32, lpFileName uintptr) uint32 {
+ r0, _, err := syscall.Syscall6(procGetPrivateProfileStringA.Addr(), 4,
+ lpAppName,
+ lpKeyName,
+ lpDefault,
+ lpReturnedString,
+ uintptr(nSize),
+ lpFileName,
+ )
+ if err != 0 {
+ t.setErrno(0x02)
+ }
+ return uint32(r0)
+}
+
+func XGetWindowsDirectoryA(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetFileSecurityW(
+// LPCSTR lpFileName,
+// SECURITY_INFORMATION RequestedInformation,
+// PSECURITY_DESCRIPTOR pSecurityDescriptor,
+// DWORD nLength,
+// LPDWORD lpnLengthNeeded
+// );
+func XGetFileSecurityW(t *TLS, lpFileName uintptr, RequestedInformation uint32, pSecurityDescriptor uintptr, nLength uint32, lpnLengthNeeded uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procGetFileSecurityW.Addr(), 5, lpFileName, uintptr(RequestedInformation), pSecurityDescriptor, uintptr(nLength), lpnLengthNeeded, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL GetSecurityDescriptorOwner(
+// PSECURITY_DESCRIPTOR pSecurityDescriptor,
+// PSID *pOwner,
+// LPBOOL lpbOwnerDefaulted
+// );
+func XGetSecurityDescriptorOwner(t *TLS, pSecurityDescriptor, pOwner, lpbOwnerDefaulted uintptr) int32 {
+ r0, _, err := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, pSecurityDescriptor, pOwner, lpbOwnerDefaulted)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+
+}
+
+// PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(
+// PSID pSid
+// );
+func XGetSidIdentifierAuthority(t *TLS, pSid uintptr) uintptr {
+ r0, _, err := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, pSid, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// BOOL ImpersonateSelf(
+// SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
+// );
+func XImpersonateSelf(t *TLS, ImpersonationLevel int32) int32 {
+ r0, _, err := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(ImpersonationLevel), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL OpenThreadToken(
+// HANDLE ThreadHandle,
+// DWORD DesiredAccess,
+// BOOL OpenAsSelf,
+// PHANDLE TokenHandle
+// );
+func XOpenThreadToken(t *TLS, ThreadHandle uintptr, DesiredAccess uint32, OpenAsSelf int32, TokenHandle uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procOpenThreadToken.Addr(), 4, ThreadHandle, uintptr(DesiredAccess), uintptr(OpenAsSelf), TokenHandle, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// HANDLE GetCurrentThread();
+func XGetCurrentThread(t *TLS) uintptr {
+ r0, _, err := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// BOOL RevertToSelf();
+func XRevertToSelf(t *TLS) int32 {
+ r0, _, err := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL AccessCheck(
+// PSECURITY_DESCRIPTOR pSecurityDescriptor,
+// HANDLE ClientToken,
+// DWORD DesiredAccess,
+// PGENERIC_MAPPING GenericMapping,
+// PPRIVILEGE_SET PrivilegeSet,
+// LPDWORD PrivilegeSetLength,
+// LPDWORD GrantedAccess,
+// LPBOOL AccessStatus
+// );
+func XAccessCheck(t *TLS, pSecurityDescriptor, ClientToken uintptr, DesiredAccess uint32, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus uintptr) int32 {
+ r0, _, err := syscall.Syscall9(procAccessCheck.Addr(), 8,
+ pSecurityDescriptor,
+ ClientToken,
+ uintptr(DesiredAccess),
+ GenericMapping,
+ PrivilegeSet,
+ PrivilegeSetLength,
+ GrantedAccess,
+ AccessStatus,
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// int _wcsicmp(
+// const wchar_t *string1,
+// const wchar_t *string2
+// );
+func Xwcsicmp(t *TLS, string1, string2 uintptr) int32 {
+ var s1 = strings.ToLower(goWideString(string1))
+ var s2 = strings.ToLower(goWideString(string2))
+ return int32(strings.Compare(s1, s2))
+}
+
+// BOOL SetCurrentDirectoryW(
+// LPCTSTR lpPathName
+// );
+func XSetCurrentDirectoryW(t *TLS, lpPathName uintptr) int32 {
+ err := syscall.SetCurrentDirectory((*uint16)(unsafe.Pointer(lpPathName)))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+ return 1
+}
+
+// DWORD GetCurrentDirectory(
+// DWORD nBufferLength,
+// LPWTSTR lpBuffer
+// );
+func XGetCurrentDirectoryW(t *TLS, nBufferLength uint32, lpBuffer uintptr) uint32 {
+ n, err := syscall.GetCurrentDirectory(nBufferLength, (*uint16)(unsafe.Pointer(lpBuffer)))
+ if err != nil {
+ t.setErrno(err)
+ }
+ return n
+}
+
+// BOOL GetFileInformationByHandle(
+// HANDLE hFile,
+// LPBY_HANDLE_FILE_INFORMATION lpFileInformation
+// );
+func XGetFileInformationByHandle(t *TLS, hFile, lpFileInformation uintptr) int32 {
+ r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, hFile, lpFileInformation, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return int32(r1)
+}
+
+// BOOL GetVolumeInformationW(
+// LPCWSTR lpRootPathName,
+// LPWSTR lpVolumeNameBuffer,
+// DWORD nVolumeNameSize,
+// LPDWORD lpVolumeSerialNumber,
+// LPDWORD lpMaximumComponentLength,
+// LPDWORD lpFileSystemFlags,
+// LPWSTR lpFileSystemNameBuffer,
+// DWORD nFileSystemNameSize
+// );
+func XGetVolumeInformationW(t *TLS, lpRootPathName, lpVolumeNameBuffer uintptr, nVolumeNameSize uint32, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer uintptr, nFileSystemNameSize uint32) int32 {
+ r0, _, err := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8,
+ lpRootPathName,
+ lpVolumeNameBuffer,
+ uintptr(nVolumeNameSize),
+ lpVolumeSerialNumber,
+ lpMaximumComponentLength,
+ lpFileSystemFlags,
+ lpFileSystemNameBuffer,
+ uintptr(nFileSystemNameSize),
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// wchar_t *wcschr(
+// const wchar_t *str,
+// wchar_t c
+// );
+func Xwcschr(t *TLS, str uintptr, c wchar_t) uintptr {
+ var source = str
+ for {
+ var buf = *(*uint16)(unsafe.Pointer(source))
+ if buf == 0 {
+ return 0
+ }
+ if buf == c {
+ return source
+ }
+ // wchar_t = 2 bytes
+ source++
+ source++
+ }
+}
+
+// BOOL SetFileTime(
+// HANDLE hFile,
+// const FILETIME *lpCreationTime,
+// const FILETIME *lpLastAccessTime,
+// const FILETIME *lpLastWriteTime
+// );
+func XSetFileTime(t *TLS, hFile uintptr, lpCreationTime, lpLastAccessTime, lpLastWriteTime uintptr) int32 {
+ panic(todo(""))
+}
+
+// DWORD GetNamedSecurityInfoW(
+// LPCWSTR pObjectName,
+// SE_OBJECT_TYPE ObjectType,
+// SECURITY_INFORMATION SecurityInfo,
+// PSID *ppsidOwner,
+// PSID *ppsidGroup,
+// PACL *ppDacl,
+// PACL *ppSacl,
+// PSECURITY_DESCRIPTOR *ppSecurityDescriptor
+// );
+func XGetNamedSecurityInfoW(t *TLS, pObjectName uintptr, ObjectType, SecurityInfo uint32, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor uintptr) uint32 {
+ panic(todo(""))
+}
+
+// BOOL OpenProcessToken(
+// HANDLE ProcessHandle,
+// DWORD DesiredAccess,
+// PHANDLE TokenHandle
+// );
+func XOpenProcessToken(t *TLS, ProcessHandle uintptr, DesiredAccess uint32, TokenHandle uintptr) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetTokenInformation(
+// HANDLE TokenHandle,
+// TOKEN_INFORMATION_CLASS TokenInformationClass,
+// LPVOID TokenInformation,
+// DWORD TokenInformationLength,
+// PDWORD ReturnLength
+// );
+func XGetTokenInformation(t *TLS, TokenHandle uintptr, TokenInformationClass uint32, TokenInformation uintptr, TokenInformationLength uint32, ReturnLength uintptr) int32 {
+ panic(todo(""))
+}
+
+// BOOL EqualSid(
+// PSID pSid1,
+// PSID pSid2
+// );
+func XEqualSid(t *TLS, pSid1, pSid2 uintptr) int32 {
+ panic(todo(""))
+}
+
+// int WSAStartup(
+// WORD wVersionRequired,
+// LPWSADATA lpWSAData
+// );
+func XWSAStartup(t *TLS, wVersionRequired uint16, lpWSAData uintptr) int32 {
+ r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(wVersionRequired), lpWSAData, 0)
+ if r0 != 0 {
+ t.setErrno(r0)
+ }
+ return int32(r0)
+}
+
+// HMODULE GetModuleHandleA(LPCSTR lpModuleName);
+func XGetModuleHandleA(t *TLS, lpModuleName uintptr) uintptr {
+ r0, _, err := syscall.Syscall(procGetModuleHandleA.Addr(), 1, lpModuleName, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// HMODULE GetModuleHandleW(
+// LPCWSTR lpModuleName
+// );
+func XGetModuleHandleW(t *TLS, lpModuleName uintptr) uintptr {
+ r0, _, err := syscall.Syscall(procGetModuleHandleW.Addr(), 1, lpModuleName, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// DWORD GetEnvironmentVariableW(
+// LPCWSTR lpName,
+// LPWSTR lpBuffer,
+// DWORD nSize
+// );
+func XGetEnvironmentVariableW(t *TLS, lpName, lpBuffer uintptr, nSize uint32) uint32 {
+ r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, lpName, lpBuffer, uintptr(nSize))
+ n := uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return n
+}
+
+// int lstrcmpiA(
+// LPCSTR lpString1,
+// LPCSTR lpString2
+// );
+func XlstrcmpiA(t *TLS, lpString1, lpString2 uintptr) int32 {
+ var s1 = strings.ToLower(GoString(lpString1))
+ var s2 = strings.ToLower(GoString(lpString2))
+ return int32(strings.Compare(s1, s2))
+}
+
+func XGetModuleFileNameA(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// UINT GetACP();
+func XGetACP(t *TLS) uint32 {
+ r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0)
+ return uint32(r0)
+}
+
+// BOOL GetUserNameW(
+// LPWSTR lpBuffer,
+// LPDWORD pcbBuffer
+// );
+func XGetUserNameW(t *TLS, lpBuffer, pcbBuffer uintptr) int32 {
+ u, err := user.Current()
+ if err != nil {
+ panic(todo(""))
+ return 0
+ }
+
+ wcnt := *(*uint16)(unsafe.Pointer(pcbBuffer))
+ s := utf16.Encode([]rune(u.Username))
+ if len(s)+1 > int(wcnt) {
+ panic(todo(""))
+ }
+
+ *(*uint16)(unsafe.Pointer(pcbBuffer)) = uint16(len(s) + 1)
+ for _, v := range s {
+ *(*uint16)(unsafe.Pointer(lpBuffer)) = v
+ lpBuffer += 2
+ }
+ return 1
+}
+
+// HMODULE LoadLibraryExW(
+// LPCWSTR lpLibFileName,
+// HANDLE hFile,
+// DWORD dwFlags
+// );
+func XLoadLibraryExW(t *TLS, lpLibFileName, hFile uintptr, dwFlags uint32) uintptr {
+ return 0 // If the function fails, the return value is NULL.
+}
+
+// wchar_t *wcscpy(
+// wchar_t *strDestination,
+// const wchar_t *strSource
+// );
+func Xwcscpy(t *TLS, strDestination, strSource uintptr) uintptr {
+ if strSource == 0 {
+ return 0
+ }
+
+ d := strDestination
+ for {
+ c := *(*uint16)(unsafe.Pointer(strSource))
+ strSource += 2
+ *(*uint16)(unsafe.Pointer(d)) = c
+ d += 2
+ if c == 0 {
+ return strDestination
+ }
+ }
+}
+
+func XwsprintfW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// ATOM RegisterClassW(
+// const WNDCLASSW *lpWndClass
+// );
+func XRegisterClassW(t *TLS, lpWndClass uintptr) int32 {
+ r0, _, err := syscall.Syscall(procRegisterClassW.Addr(), 1, lpWndClass, 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+func XKillTimer(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDestroyWindow(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// BOOL UnregisterClassW(
+// LPCWSTR lpClassName,
+// HINSTANCE hInstance
+// );
+func XUnregisterClassW(t *TLS, lpClassName, hInstance uintptr) int32 {
+ r0, _, err := syscall.Syscall(procUnregisterClassW.Addr(), 2, lpClassName, hInstance, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+func XPostMessageW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSetTimer(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// HWND CreateWindowExW(
+// DWORD dwExStyle,
+// LPCWSTR lpClassName,
+// LPCWSTR lpWindowName,
+// DWORD dwStyle,
+// int X,
+// int Y,
+// int nWidth,
+// int nHeight,
+// HWND hWndParent,
+// HMENU hMenu,
+// HINSTANCE hInstance,
+// LPVOID lpParam
+// );
+func XCreateWindowExW(t *TLS, dwExStyle uint32, lpClassName, lpWindowName uintptr, dwStyle uint32, x, y, nWidth, nHeight int32, hWndParent, hMenu, hInstance, lpParam uintptr) uintptr {
+ r0, _, err := syscall.Syscall12(procCreateWindowExW.Addr(), 12,
+ uintptr(dwExStyle),
+ lpClassName,
+ lpWindowName,
+ uintptr(dwStyle),
+ uintptr(x),
+ uintptr(y),
+ uintptr(nWidth),
+ uintptr(nHeight),
+ hWndParent,
+ hMenu,
+ hInstance,
+ lpParam,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// BOOL PeekMessageW(
+// LPMSG lpMsg,
+// HWND hWnd,
+// UINT wMsgFilterMin,
+// UINT wMsgFilterMax,
+// UINT wRemoveMsg
+// );
+func XPeekMessageW(t *TLS, lpMsg, hWnd uintptr, wMsgFilterMin, wMsgFilterMax, wRemoveMsg uint32) int32 {
+ r0, _, err := syscall.Syscall6(procPeekMessageW.Addr(), 5,
+ lpMsg,
+ hWnd,
+ uintptr(wMsgFilterMin),
+ uintptr(wMsgFilterMax),
+ uintptr(wRemoveMsg),
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+func XGetMessageW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XPostQuitMessage(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XTranslateMessage(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDispatchMessageW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// DWORD SleepEx(
+// DWORD dwMilliseconds,
+// BOOL bAlertable
+// );
+func XSleepEx(t *TLS, dwMilliseconds uint32, bAlertable int32) uint32 {
+ r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(dwMilliseconds), uintptr(bAlertable), 0)
+ return uint32(r0)
+}
+
+// BOOL CreatePipe(
+// PHANDLE hReadPipe,
+// PHANDLE hWritePipe,
+// LPSECURITY_ATTRIBUTES lpPipeAttributes,
+// DWORD nSize
+// );
+func XCreatePipe(t *TLS, hReadPipe, hWritePipe, lpPipeAttributes uintptr, nSize uint32) int32 {
+ r0, _, err := syscall.Syscall6(procCreatePipe.Addr(), 4, hReadPipe, hWritePipe, lpPipeAttributes, uintptr(nSize), 0, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL CreateProcessW(
+// LPCWSTR lpApplicationName,
+// LPWSTR lpCommandLine,
+// LPSECURITY_ATTRIBUTES lpProcessAttributes,
+// LPSECURITY_ATTRIBUTES lpThreadAttributes,
+// BOOL bInheritHandles,
+// DWORD dwCreationFlags,
+// LPVOID lpEnvironment,
+// LPCWSTR lpCurrentDirectory,
+// LPSTARTUPINFOW lpStartupInfo,
+// LPPROCESS_INFORMATION lpProcessInformation
+// );
+func XCreateProcessW(t *TLS, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes uintptr, bInheritHandles int32, dwCreationFlags uint32,
+ lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation uintptr) int32 {
+
+ r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes,
+ uintptr(bInheritHandles), uintptr(dwCreationFlags), lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation, 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ t.setErrno(e1)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+
+ return int32(r1)
+}
+
+// DWORD WaitForInputIdle(
+// HANDLE hProcess,
+// DWORD dwMilliseconds
+// );
+func XWaitForInputIdle(t *TLS, hProcess uintptr, dwMilliseconds uint32) int32 {
+ r0, _, _ := syscall.Syscall(procWaitForInputIdle.Addr(), 2, hProcess, uintptr(dwMilliseconds), 0)
+ return int32(r0)
+}
+
+// DWORD SearchPathW(
+// LPCWSTR lpPath,
+// LPCWSTR lpFileName,
+// LPCWSTR lpExtension,
+// DWORD nBufferLength,
+// LPWSTR lpBuffer,
+// LPWSTR *lpFilePart
+// );
+func XSearchPathW(t *TLS, lpPath, lpFileName, lpExtension uintptr, nBufferLength uint32, lpBuffer, lpFilePart uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procSearchPathW.Addr(), 6, lpPath, lpFileName, lpExtension, uintptr(nBufferLength), lpBuffer, lpFilePart)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+func XGetShortPathNameW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetExitCodeProcess(
+// HANDLE hProcess,
+// LPDWORD lpExitCode
+// );
+func XGetExitCodeProcess(t *TLS, hProcess, lpExitCode uintptr) int32 {
+ r0, _, err := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, hProcess, lpExitCode, 0)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL PeekNamedPipe(
+// HANDLE hNamedPipe,
+// LPVOID lpBuffer,
+// DWORD nBufferSize,
+// LPDWORD lpBytesRead,
+// LPDWORD lpTotalBytesAvail,
+// LPDWORD lpBytesLeftThisMessage
+// );
+func XPeekNamedPipe(t *TLS, hNamedPipe, lpBuffer uintptr, nBufferSize uint32, lpBytesRead, lpTotalBytesAvail, lpBytesLeftThisMessage uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procPeekNamedPipe.Addr(), 6, hNamedPipe, lpBuffer, uintptr(nBufferSize), lpBytesRead, lpTotalBytesAvail, lpBytesLeftThisMessage)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// long _InterlockedExchange(
+// long volatile * Target,
+// long Value
+// );
+func X_InterlockedExchange(t *TLS, Target uintptr, Value long) long {
+ old := atomic.SwapInt32((*int32)(unsafe.Pointer(Target)), Value)
+ return old
+}
+
+// BOOL TerminateThread(
+// [in, out] HANDLE hThread,
+// [in] DWORD dwExitCode
+// );
+func XTerminateThread(t *TLS, hThread uintptr, dwExitCode uint32) int32 {
+ r0, _, err := syscall.Syscall(procTerminateThread.Addr(), 2, hThread, uintptr(dwExitCode), 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL GetComputerNameW(
+// LPWSTR lpBuffer,
+// LPDWORD nSize
+// );
+func XGetComputerNameW(t *TLS, lpBuffer, nSize uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xgethostname(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSendMessageW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XWSAGetLastError(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func Xclosesocket(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XWspiapiFreeAddrInfo(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XWspiapiGetNameInfo(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XIN6_ADDR_EQUAL(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func X__ccgo_in6addr_anyp(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XIN6_IS_ADDR_V4MAPPED(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSetHandleInformation(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func Xioctlsocket(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XGetWindowLongPtrW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSetWindowLongPtrW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XWSAAsyncSelect(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func Xinet_ntoa(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+func X_controlfp(t *TLS, _ ...interface{}) uint32 {
+ panic(todo(""))
+}
+
+// BOOL QueryPerformanceFrequency(
+// LARGE_INTEGER *lpFrequency
+// );
+func XQueryPerformanceFrequency(t *TLS, lpFrequency uintptr) int32 {
+
+ r1, _, err := syscall.Syscall(procQueryPerformanceFrequency.Addr(), 1, lpFrequency, 0, 0)
+ if r1 == 0 {
+ t.setErrno(err)
+ return 0
+ }
+ return int32(r1)
+}
+
+func inDST(t gotime.Time) bool {
+
+ jan1st := gotime.Date(t.Year(), 1, 1, 0, 0, 0, 0, t.Location()) // January 1st is always outside DST window
+
+ _, off1 := t.Zone()
+ _, off2 := jan1st.Zone()
+
+ return off1 != off2
+}
+
+// void _ftime( struct _timeb *timeptr );
+func X_ftime(t *TLS, timeptr uintptr) {
+ var tm = gotime.Now()
+ var tPtr = (*time.X__timeb64)(unsafe.Pointer(timeptr))
+ tPtr.Ftime = tm.Unix()
+ tPtr.Fmillitm = uint16(gotime.Duration(tm.Nanosecond()) / gotime.Millisecond)
+ if inDST(tm) {
+ tPtr.Fdstflag = 1
+ }
+ _, offset := tm.Zone()
+ tPtr.Ftimezone = int16(offset)
+}
+
+func Xgmtime(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+func XDdeInitializeW(t *TLS, _ ...interface{}) uint32 {
+ panic(todo(""))
+}
+
+func XDdeCreateStringHandleW(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+func XDdeNameService(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func X_snwprintf(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeQueryStringW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// int _wcsicmp(
+// const wchar_t *string1,
+// const wchar_t *string2
+// );
+func X_wcsicmp(t *TLS, string1, string2 uintptr) int32 {
+ return Xwcsicmp(t, string1, string2)
+}
+
+func XDdeCreateDataHandle(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+func XDdeAccessData(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+func XDdeUnaccessData(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeUninitialize(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeConnect(t *TLS, _ ...interface{}) uintptr {
+ panic(todo(""))
+}
+
+func XDdeFreeStringHandle(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegisterClassExW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XGlobalGetAtomNameW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XGlobalAddAtomW(t *TLS, _ ...interface{}) uint16 {
+ panic(todo(""))
+}
+
+func XEnumWindows(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XIsWindow(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XGlobalDeleteAtom(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeGetLastError(t *TLS, _ ...interface{}) uint32 {
+ panic(todo(""))
+}
+
+// HDDEDATA DdeClientTransaction(
+// LPBYTE pData,
+// DWORD cbData,
+// HCONV hConv,
+// HSZ hszItem,
+// UINT wFmt,
+// UINT wType,
+// DWORD dwTimeout,
+// LPDWORD pdwResult
+// );
+func XDdeClientTransaction(t *TLS, pData uintptr, cbData uint32, hConv uintptr, hszItem uintptr, wFmt, wType, dwTimeout uint32, pdwResult uintptr) uintptr {
+ panic(todo(""))
+}
+
+func XDdeAbandonTransaction(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeFreeDataHandle(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeGetData(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XDdeDisconnect(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegCloseKey(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegDeleteValueW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegEnumKeyExW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegQueryValueExW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegEnumValueW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegConnectRegistryW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegCreateKeyExW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegOpenKeyExW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegDeleteKeyW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XRegSetValueExW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// int _vsnwprintf(
+// wchar_t *buffer,
+// size_t count,
+// const wchar_t *format,
+// va_list argptr
+// );
+func X__mingw_vsnwprintf(t *TLS, buffer uintptr, count types.Size_t, format, va uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vprintf(const char *format, va_list ap);
+func X__mingw_vprintf(t *TLS, s, ap uintptr) int32 { return Xvprintf(t, s, ap) }
+
+// int vfscanf(FILE * restrict stream, const char * restrict format, va_list arg);
+func X__mingw_vfscanf(t *TLS, stream, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vsscanf(const char *str, const char *format, va_list ap);
+func X__mingw_vsscanf(t *TLS, str, format, ap uintptr) int32 {
+ return Xsscanf(t, str, format, ap)
+}
+
+// int vfprintf(FILE * restrict stream, const char * restrict format, va_list arg);
+func X__mingw_vfprintf(t *TLS, f uintptr, format, va uintptr) int32 {
+ return Xvfprintf(t, f, format, va)
+}
+
+// int vsprintf(char * restrict s, const char * restrict format, va_list arg);
+func X__mingw_vsprintf(t *TLS, s, format, ap uintptr) int32 {
+ return Xvsprintf(t, s, format, ap)
+}
+
+// int vsnprintf(char *str, size_t size, const char *format, va_list ap);
+func X__mingw_vsnprintf(t *TLS, str uintptr, size types.Size_t, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+//int putchar(int char)
+func X_putchar(t *TLS, c int32) int32 {
+ if _, err := fwrite(unistd.STDOUT_FILENO, []byte{byte(c)}); err != nil {
+ return -1
+ }
+ return int32(byte(c))
+}
+
+// int vfwscanf(FILE *stream, const wchar_t *format, va_list argptr;);
+func X__mingw_vfwscanf(t *TLS, stream uintptr, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vswscanf(const wchar_t *buffer, const wchar_t *format, va_list arglist);
+func X__mingw_vswscanf(t *TLS, stream uintptr, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int vfwprintf(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
+func X__mingw_vfwprintf(t *TLS, stream, format, ap uintptr) int32 {
+ panic(todo(""))
+}
+
+// int putchar(int c);
+func Xputchar(t *TLS, c int32) int32 {
+ panic(todo(""))
+}
+
+// void _assert(
+// char const* message,
+// char const* filename,
+// unsigned line
+// );
+func X_assert(t *TLS, message, filename uintptr, line uint32) {
+ panic(todo(""))
+}
+
+// char *strdup(const char *s);
+func X_strdup(t *TLS, s uintptr) uintptr {
+ panic(todo(""))
+}
+
+// int _access(
+// const char *path,
+// int mode
+// );
+func X_access(t *TLS, pathname uintptr, mode int32) int32 {
+
+ var path = GoString(pathname)
+
+ info, err := os.Stat(path)
+ if err != nil {
+ // doesn't exist
+ return errno.ENOENT
+ }
+
+ switch mode {
+ case 0:
+ // exists
+ return 0
+ case 2:
+ // write-only
+ // Check if the user bit is enabled in file permission
+ if info.Mode().Perm()&(1<<(uint(7))) == 1 {
+ // write-able
+ return 0
+ }
+ case 4:
+ // read-only
+ // Check if the user bit is enabled in file permission
+ if info.Mode().Perm()&(1<<(uint(7))) == 0 {
+ // not set, so read-only
+ return 0
+ }
+ case 6:
+ // r/w
+ if info.Mode().Perm()&(1<<(uint(7))) == 1 {
+ // write-able
+ return 0
+ }
+ }
+
+ return errno.EACCES
+
+}
+
+// BOOL WINAPI SetConsoleCtrlHandler(
+// _In_opt_ PHANDLER_ROUTINE HandlerRoutine,
+// _In_ BOOL Add
+// );
+func XSetConsoleCtrlHandler(t *TLS, HandlerRoutine uintptr, Add int32) int32 {
+
+ //var fcc = &struct {
+ // f func(*TLS, uint32) int32
+ //}{}
+ //fcc = (*struct{ f func(*TLS, uint32) int32 })(unsafe.Pointer(HandlerRoutine))
+ //var hdlr = fcc.f
+ //
+ //_, _, err := procSetConsoleCtrlHandler.Call(
+ //syscall.NewCallback(func(controlType uint) uint {
+ // return uint( hdlr(t, uint32(controlType)) )
+ // }), 1)
+ //
+ //if err != nil {
+ // panic("failed: SetConsoleCtrlHandler")
+ //}
+
+ return 0
+}
+
+// DebugBreak
+func XDebugBreak(t *TLS) {
+ panic(todo(""))
+}
+
+// int _isatty( int fd );
+func X_isatty(t *TLS, fd int32) int32 {
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return 0
+ }
+
+ if fd == unistd.STDOUT_FILENO ||
+ fd == unistd.STDIN_FILENO ||
+ fd == unistd.STDERR_FILENO {
+ var mode uint32
+ err := syscall.GetConsoleMode(f.Handle, &mode)
+ if err != nil {
+ t.setErrno(errno.EINVAL)
+ return 0
+ }
+ // is console
+ return 1
+ }
+
+ return 0
+}
+
+// BOOL WINAPI SetConsoleTextAttribute(
+// _In_ HANDLE hConsoleOutput,
+// _In_ WORD wAttributes
+// );
+func XSetConsoleTextAttribute(t *TLS, hConsoleOutput uintptr, wAttributes uint16) int32 {
+ r1, _, _ := syscall.Syscall(procSetConsoleTextAttribute.Addr(), 2, hConsoleOutput, uintptr(wAttributes), 0)
+ return int32(r1)
+}
+
+// BOOL WINAPI GetConsoleScreenBufferInfo(
+// _In_ HANDLE hConsoleOutput,
+// _Out_ PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
+// );
+func XGetConsoleScreenBufferInfo(t *TLS, hConsoleOutput, lpConsoleScreenBufferInfo uintptr) int32 {
+ r1, _, _ := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, hConsoleOutput, lpConsoleScreenBufferInfo, 0)
+ return int32(r1)
+}
+
+// FILE *_popen(
+// const char *command,
+// const char *mode
+// );
+func X_popen(t *TLS, command, mode uintptr) uintptr {
+ panic(todo(""))
+}
+
+// int _wunlink(
+// const wchar_t *filename
+// );
+func X_wunlink(t *TLS, filename uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xclosedir(tls *TLS, dir uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xopendir(tls *TLS, name uintptr) uintptr {
+ panic(todo(""))
+}
+
+func Xreaddir(tls *TLS, dir uintptr) uintptr {
+ panic(todo(""))
+}
+
+// int _unlink(
+// const char *filename
+// );
+func X_unlink(t *TLS, filename uintptr) int32 {
+ panic(todo(""))
+}
+
+// int pclose(FILE *stream);
+func X_pclose(t *TLS, stream uintptr) int32 {
+ panic(todo(""))
+}
+
+// int setmode (int fd, int mode);
+func Xsetmode(t *TLS, fd, mode int32) int32 {
+ return X_setmode(t, fd, mode)
+}
+
+// int _setmode (int fd, int mode);
+func X_setmode(t *TLS, fd, mode int32) int32 {
+
+ _, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ // we're always in binary mode.
+ // at least for now.
+
+ if mode == fcntl.O_BINARY {
+ return fcntl.O_BINARY
+ } else {
+ t.setErrno(errno.EINVAL)
+ return -1
+ }
+}
+
+// int _mkdir(const char *dirname);
+func X_mkdir(t *TLS, dirname uintptr) int32 {
+ panic(todo(""))
+}
+
+// int _chmod( const char *filename, int pmode );
+func X_chmod(t *TLS, filename uintptr, pmode int32) int32 {
+ panic(todo(""))
+}
+
+// int _fileno(FILE *stream);
+func X_fileno(t *TLS, stream uintptr) int32 {
+ f, ok := winGetObject(stream).(*file)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+ return f._fd
+}
+
+// void rewind(FILE *stream);
+func Xrewind(t *TLS, stream uintptr) {
+ Xfseek(t, stream, 0, unistd.SEEK_SET)
+}
+
+// __atomic_load_n
+func X__atomic_load_n(t *TLS) {
+ panic(todo(""))
+}
+
+// __atomic_store_n
+func X__atomic_store_n(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+// __builtin_add_overflow
+func X__builtin_add_overflow(t *TLS) {
+ panic(todo(""))
+}
+
+// __builtin_mul_overflow
+func X__builtin_mul_overflow(t *TLS) {
+ panic(todo(""))
+}
+
+// __builtin_sub_overflow
+func X__builtin_sub_overflow(t *TLS) {
+ panic(todo(""))
+}
+
+func goWideBytes(p uintptr, n int) []uint16 {
+ b := GoBytes(p, 2*n)
+ var w []uint16
+ for i := 0; i < len(b); i += 2 {
+ w = append(w, *(*uint16)(unsafe.Pointer(&b[i])))
+ }
+ return w
+}
+
+// This version does include the zero terminator in the returned Go string.
+func goWideString(p uintptr) string {
+ if p == 0 {
+ return ""
+ }
+ var w []uint16
+ var raw = (*RawMem)(unsafe.Pointer(p))
+ var i = 0
+ for {
+ wc := *(*uint16)(unsafe.Pointer(&raw[i]))
+ w = append(w, wc)
+ // append until U0000
+ if wc == 0 {
+ break
+ }
+ i = i + 2
+ }
+ s := utf16.Decode(w)
+ return string(s)
+}
+
+func goWideStringN(p uintptr, n int) string {
+ panic(todo(""))
+}
+
+// This version does not include the zero terminator in the returned Go string.
+func goWideStringNZ(p uintptr) string {
+ if p == 0 {
+ return ""
+ }
+
+ var w []uint16
+ var raw = (*RawMem)(unsafe.Pointer(p))
+ var i = 0
+ for {
+ wc := *(*uint16)(unsafe.Pointer(&raw[i]))
+ if wc == 0 {
+ break
+ }
+
+ w = append(w, wc)
+ i = i + 2
+ }
+ s := utf16.Decode(w)
+ return string(s)
+}
+
+// LPWSTR GetCommandLineW();
+func XGetCommandLineW(t *TLS) uintptr {
+ return uintptr(unsafe.Pointer(syscall.GetCommandLine()))
+}
+
+// BOOL AddAccessDeniedAce(
+// PACL pAcl,
+// DWORD dwAceRevision,
+// DWORD AccessMask,
+// PSID pSid
+// );
+func XAddAccessDeniedAce(t *TLS, pAcl uintptr, dwAceRevision, AccessMask uint32, pSid uintptr) int32 {
+ panic(todo(""))
+}
+
+// BOOL AddAce(
+// PACL pAcl,
+// DWORD dwAceRevision,
+// DWORD dwStartingAceIndex,
+// LPVOID pAceList,
+// DWORD nAceListLength
+// );
+func XAddAce(t *TLS, pAcl uintptr, dwAceRevision, dwStartingAceIndex uint32, pAceList uintptr, nAceListLength uint32) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetAce(
+// PACL pAcl,
+// DWORD dwAceIndex,
+// LPVOID *pAce
+// );
+func XGetAce(t *TLS, pAcl uintptr, dwAceIndex uint32, pAce uintptr) int32 {
+ panic(todo(""))
+}
+
+// BOOL GetAclInformation(
+// PACL pAcl,
+// LPVOID pAclInformation,
+// DWORD nAclInformationLength,
+// ACL_INFORMATION_CLASS dwAclInformationClass
+// );
+func XGetAclInformation(t *TLS, pAcl, pAclInformation uintptr, nAclInformationLength, dwAclInformationClass uint32) int32 {
+ r0, _, err := syscall.Syscall6(procGetAclInformation.Addr(), 4,
+ pAclInformation,
+ pAclInformation,
+ uintptr(nAclInformationLength),
+ uintptr(dwAclInformationClass),
+ 0,
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// BOOL GetFileSecurityA(
+// LPCSTR lpFileName,
+// SECURITY_INFORMATION RequestedInformation,
+// PSECURITY_DESCRIPTOR pSecurityDescriptor,
+// DWORD nLength,
+// LPDWORD lpnLengthNeeded
+// );
+func XGetFileSecurityA(t *TLS, lpFileName uintptr, RequestedInformation uint32, pSecurityDescriptor uintptr, nLength uint32, lpnLengthNeeded uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procGetFileSecurityA.Addr(), 5,
+ lpFileName,
+ uintptr(RequestedInformation),
+ pSecurityDescriptor,
+ uintptr(nLength),
+ lpnLengthNeeded,
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// DWORD GetLengthSid(
+// PSID pSid
+// );
+func XGetLengthSid(t *TLS, pSid uintptr) uint32 {
+ panic(todo(""))
+}
+
+// BOOL GetSecurityDescriptorDacl(
+// PSECURITY_DESCRIPTOR pSecurityDescriptor,
+// LPBOOL lpbDaclPresent,
+// PACL *pDacl,
+// LPBOOL lpbDaclDefaulted
+// );
+func XGetSecurityDescriptorDacl(t *TLS, pSecurityDescriptor, lpbDaclPresent, pDacl, lpbDaclDefaulted uintptr) int32 {
+ r0, _, err := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4,
+ pSecurityDescriptor,
+ lpbDaclPresent,
+ pDacl,
+ lpbDaclDefaulted,
+ 0,
+ 0,
+ )
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// DWORD GetSidLengthRequired(
+// UCHAR nSubAuthorityCount
+// );
+func XGetSidLengthRequired(t *TLS, nSubAuthorityCount uint8) int32 {
+ r0, _, err := syscall.Syscall(procGetSidLengthRequired.Addr(), 1, uintptr(nSubAuthorityCount), 0, 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// PDWORD GetSidSubAuthority(
+// PSID pSid,
+// DWORD nSubAuthority
+// );
+func XGetSidSubAuthority(t *TLS, pSid uintptr, nSubAuthority uint32) uintptr {
+ r0, _, err := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, pSid, uintptr(nSubAuthority), 0)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// BOOL InitializeAcl(
+// PACL pAcl,
+// DWORD nAclLength,
+// DWORD dwAclRevision
+// );
+func XInitializeAcl(t *TLS, pAcl uintptr, nAclLength, dwAclRevision uint32) int32 {
+ panic(todo(""))
+}
+
+// BOOL InitializeSid(
+// PSID Sid,
+// PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
+// BYTE nSubAuthorityCount
+// );
+func XInitializeSid(t *TLS, Sid, pIdentifierAuthority uintptr, nSubAuthorityCount uint8) int32 {
+ r0, _, err := syscall.Syscall(procInitializeSid.Addr(), 3, Sid, pIdentifierAuthority, uintptr(nSubAuthorityCount))
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// VOID RaiseException(
+// DWORD dwExceptionCode,
+// DWORD dwExceptionFlags,
+// DWORD nNumberOfArguments,
+// const ULONG_PTR *lpArguments
+// );
+func XRaiseException(t *TLS, dwExceptionCode, dwExceptionFlags, nNumberOfArguments uint32, lpArguments uintptr) {
+ panic(todo(""))
+}
+
+// UINT SetErrorMode(
+// UINT uMode
+// );
+func XSetErrorMode(t *TLS, uMode uint32) int32 {
+ panic(todo(""))
+}
+
+// DWORD SetNamedSecurityInfoA(
+// LPSTR pObjectName,
+// SE_OBJECT_TYPE ObjectType,
+// SECURITY_INFORMATION SecurityInfo,
+// PSID psidOwner,
+// PSID psidGroup,
+// PACL pDacl,
+// PACL pSacl
+// );
+func XSetNamedSecurityInfoA(t *TLS, pObjectName uintptr, ObjectType, SecurityInfo uint32, psidOwner, psidGroup, pDacl, pSacl uintptr) uint32 {
+ panic(todo(""))
+}
+
+// BOOL CreateProcessA(
+// LPCSTR lpApplicationName,
+// LPSTR lpCommandLine,
+// LPSECURITY_ATTRIBUTES lpProcessAttributes,
+// LPSECURITY_ATTRIBUTES lpThreadAttributes,
+// BOOL bInheritHandles,
+// DWORD dwCreationFlags,
+// LPVOID lpEnvironment,
+// LPCSTR lpCurrentDirectory,
+// LPSTARTUPINFOA lpStartupInfo,
+// LPPROCESS_INFORMATION lpProcessInformation
+// );
+func XCreateProcessA(t *TLS, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes uintptr, bInheritHandles int32,
+ dwCreationFlags uint32, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation uintptr) int32 {
+ r1, _, err := syscall.Syscall12(procCreateProcessA.Addr(), 10, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes,
+ uintptr(bInheritHandles), uintptr(dwCreationFlags), lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation, 0, 0)
+ if r1 == 0 {
+ if err != 0 {
+ t.setErrno(err)
+ } else {
+ t.setErrno(errno.EINVAL)
+ }
+ }
+ return int32(r1)
+}
+
+// unsigned int _set_abort_behavior(
+// unsigned int flags,
+// unsigned int mask
+// );
+func X_set_abort_behavior(t *TLS, _ ...interface{}) uint32 {
+ panic(todo(""))
+}
+
+// HANDLE OpenEventA(
+// DWORD dwDesiredAccess,
+// BOOL bInheritHandle,
+// LPCSTR lpName
+// );
+func XOpenEventA(t *TLS, dwDesiredAccess uint32, bInheritHandle uint32, lpName uintptr) uintptr {
+ r0, _, err := syscall.Syscall(procOpenEventA.Addr(), 3, uintptr(dwDesiredAccess), uintptr(bInheritHandle), lpName)
+ if r0 == 0 {
+ t.setErrno(err)
+ }
+ return r0
+}
+
+// size_t _msize(
+// void *memblock
+// );
+func X_msize(t *TLS, memblock uintptr) types.Size_t {
+ return types.Size_t(UsableSize(memblock))
+}
+
+// unsigned long _byteswap_ulong ( unsigned long val );
+func X_byteswap_ulong(t *TLS, val ulong) ulong {
+ return X__builtin_bswap32(t, val)
+}
+
+// unsigned __int64 _byteswap_uint64 ( unsigned __int64 val );
+func X_byteswap_uint64(t *TLS, val uint64) uint64 {
+ return X__builtin_bswap64(t, val)
+}
+
+// int _commit(
+// int fd
+// );
+func X_commit(t *TLS, fd int32) int32 {
+ return Xfsync(t, fd)
+}
+
+// int _stati64(
+// const char *path,
+// struct _stati64 *buffer
+// );
+func X_stati64(t *TLS, path, buffer uintptr) int32 {
+ panic(todo(""))
+}
+
+// int _fstati64(
+// int fd,
+// struct _stati64 *buffer
+// );
+func X_fstati64(t *TLS, fd int32, buffer uintptr) int32 {
+ panic(todo(""))
+}
+
+// int _findnext32(
+// intptr_t handle,
+// struct _finddata32_t *fileinfo
+// );
+func X_findnext32(t *TLS, handle types.Intptr_t, buffer uintptr) int32 {
+ panic(todo(""))
+}
+
+// intptr_t _findfirst32(
+// const char *filespec,
+// struct _finddata32_t *fileinfo
+// );
+func X_findfirst32(t *TLS, filespec, fileinfo uintptr) types.Intptr_t {
+ panic(todo(""))
+}
+
+/*-
+ * 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.
+ */
+
+// long strtol(const char *nptr, char **endptr, int base);
+func Xstrtol(t *TLS, nptr, endptr uintptr, base int32) long {
+
+ var s uintptr = nptr
+ var acc ulong
+ var c byte
+ var cutoff ulong
+ var neg int32
+ var any int32
+ var cutlim int32
+
+ /*
+ * Skip white space and pick up leading +/- sign if any.
+ * If base is 0, allow 0x for hex and 0 for octal, else
+ * assume decimal; if base is already 16, allow 0x.
+ */
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ var sp = strings.TrimSpace(string(c))
+ if len(sp) > 0 {
+ break
+ }
+ }
+
+ if c == '-' {
+ neg = 1
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ } else if c == '+' {
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ }
+
+ sp := *(*byte)(unsafe.Pointer(s))
+
+ if (base == 0 || base == 16) &&
+ c == '0' && (sp == 'x' || sp == 'X') {
+ PostIncUintptr(&s, 1)
+ c = *(*byte)(unsafe.Pointer(s)) //s[1];
+ PostIncUintptr(&s, 1)
+ base = 16
+ }
+ if base == 0 {
+ if c == '0' {
+ base = 0
+ } else {
+ base = 10
+ }
+ }
+ /*
+ * Compute the cutoff value between legal numbers and illegal
+ * numbers. That is the largest legal value, divided by the
+ * base. An input number that is greater than this value, if
+ * followed by a legal input character, is too big. One that
+ * is equal to this value may be valid or not; the limit
+ * between valid and invalid numbers is then based on the last
+ * digit. For instance, if the range for longs is
+ * [-2147483648..2147483647] and the input base is 10,
+ * cutoff will be set to 214748364 and cutlim to either
+ * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
+ * a value > 214748364, or equal but the next digit is > 7 (or 8),
+ * the number is too big, and we will return a range error.
+ *
+ * Set any if any `digits' consumed; make it negative to indicate
+ * overflow.
+ */
+ var ULONG_MAX ulong = 0xFFFFFFFF
+ var LONG_MAX long = long(ULONG_MAX >> 1)
+ var LONG_MIN long = ^LONG_MAX
+
+ if neg == 1 {
+ cutoff = ulong(-1 * LONG_MIN)
+ } else {
+ cutoff = ulong(LONG_MAX)
+ }
+ cutlim = int32(cutoff % ulong(base))
+ cutoff = cutoff / ulong(base)
+
+ acc = 0
+ any = 0
+
+ for {
+ var cs = string(c)
+ if unicode.IsDigit([]rune(cs)[0]) {
+ c -= '0'
+ } else if unicode.IsLetter([]rune(cs)[0]) {
+ if unicode.IsUpper([]rune(cs)[0]) {
+ c -= 'A' - 10
+ } else {
+ c -= 'a' - 10
+ }
+ } else {
+ break
+ }
+
+ if int32(c) >= base {
+ break
+ }
+ if any < 0 || acc > cutoff || (acc == cutoff && int32(c) > cutlim) {
+ any = -1
+
+ } else {
+ any = 1
+ acc *= ulong(base)
+ acc += ulong(c)
+ }
+
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ }
+
+ if any < 0 {
+ if neg == 1 {
+ acc = ulong(LONG_MIN)
+ } else {
+ acc = ulong(LONG_MAX)
+ }
+ t.setErrno(errno.ERANGE)
+ } else if neg == 1 {
+ acc = -acc
+ }
+
+ if endptr != 0 {
+ if any == 1 {
+ PostDecUintptr(&s, 1)
+ AssignPtrUintptr(endptr, s)
+ } else {
+ AssignPtrUintptr(endptr, nptr)
+ }
+ }
+ return long(acc)
+}
+
+// unsigned long int strtoul(const char *nptr, char **endptr, int base);
+func Xstrtoul(t *TLS, nptr, endptr uintptr, base int32) ulong {
+ var s uintptr = nptr
+ var acc ulong
+ var c byte
+ var cutoff ulong
+ var neg int32
+ var any int32
+ var cutlim int32
+
+ /*
+ * Skip white space and pick up leading +/- sign if any.
+ * If base is 0, allow 0x for hex and 0 for octal, else
+ * assume decimal; if base is already 16, allow 0x.
+ */
+ for {
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ var sp = strings.TrimSpace(string(c))
+ if len(sp) > 0 {
+ break
+ }
+ }
+
+ if c == '-' {
+ neg = 1
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ } else if c == '+' {
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ }
+
+ sp := *(*byte)(unsafe.Pointer(s))
+
+ if (base == 0 || base == 16) &&
+ c == '0' && (sp == 'x' || sp == 'X') {
+ PostIncUintptr(&s, 1)
+ c = *(*byte)(unsafe.Pointer(s)) //s[1];
+ PostIncUintptr(&s, 1)
+ base = 16
+ }
+ if base == 0 {
+ if c == '0' {
+ base = 0
+ } else {
+ base = 10
+ }
+ }
+ var ULONG_MAX ulong = 0xFFFFFFFF
+
+ cutoff = ULONG_MAX / ulong(base)
+ cutlim = int32(ULONG_MAX % ulong(base))
+
+ acc = 0
+ any = 0
+
+ for {
+ var cs = string(c)
+ if unicode.IsDigit([]rune(cs)[0]) {
+ c -= '0'
+ } else if unicode.IsLetter([]rune(cs)[0]) {
+ if unicode.IsUpper([]rune(cs)[0]) {
+ c -= 'A' - 10
+ } else {
+ c -= 'a' - 10
+ }
+ } else {
+ break
+ }
+
+ if int32(c) >= base {
+ break
+ }
+ if any < 0 || acc > cutoff || (acc == cutoff && int32(c) > cutlim) {
+ any = -1
+
+ } else {
+ any = 1
+ acc *= ulong(base)
+ acc += ulong(c)
+ }
+
+ c = *(*byte)(unsafe.Pointer(s))
+ PostIncUintptr(&s, 1)
+ }
+
+ if any < 0 {
+ acc = ULONG_MAX
+ t.setErrno(errno.ERANGE)
+ } else if neg == 1 {
+ acc = -acc
+ }
+
+ if endptr != 0 {
+ if any == 1 {
+ PostDecUintptr(&s, 1)
+ AssignPtrUintptr(endptr, s)
+ } else {
+ AssignPtrUintptr(endptr, nptr)
+ }
+ }
+ return acc
+}
+
+// int __isoc99_sscanf(const char *str, const char *format, ...);
+func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+// int sscanf(const char *str, const char *format, ...);
+func Xsscanf(t *TLS, str, format, va uintptr) int32 {
+ r := scanf(strings.NewReader(GoString(str)), format, va)
+ // if dmesgs {
+ // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r)
+ // }
+ return r
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ panic(todo(""))
+}
+
+func Xrint(tls *TLS, x float64) float64 {
+ switch {
+ case x == 0: // also +0 and -0
+ return 0
+ case math.IsInf(x, 0), math.IsNaN(x):
+ return x
+ case x >= math.MinInt64 && x <= math.MaxInt64 && float64(int64(x)) == x:
+ return x
+ case x >= 0:
+ return math.Floor(x + 0.5)
+ default:
+ return math.Ceil(x - 0.5)
+ }
+}
+
+// FILE *fdopen(int fd, const char *mode);
+func Xfdopen(t *TLS, fd int32, mode uintptr) uintptr {
+ panic(todo(""))
+}
+
+// struct tm *_gmtime64( const __time64_t *sourceTime );
+func X_gmtime64(t *TLS, sourceTime uintptr) uintptr {
+ panic(todo(""))
+}
+
+// __time64_t _mktime64(struct tm *timeptr);
+func X_mktime64(t *TLS, timeptr uintptr) time.X__time64_t {
+ return time.X__time64_t(Xmktime(t, timeptr))
+}
+
+// char * gai_strerrorA(int ecode);
+func Xgai_strerrorA(t *TLS, ecode int32) uintptr {
+ panic(todo(""))
+}
+
+// https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-headers/crt/sys/timeb.h#L69
+//
+// struct __timeb64 {
+// __time64_t time;
+// unsigned short millitm;
+// short timezone;
+// short dstflag;
+// };
+
+type __timeb64 struct {
+ time types.X__time64_t
+ millitm uint32
+ timezone int16
+ dstflag int16
+}
+
+// void _ftime64( struct __timeb64 *timeptr );
+func X_ftime64(t *TLS, timeptr uintptr) {
+ tm := gotime.Now()
+ (*__timeb64)(unsafe.Pointer(timeptr)).time = types.X__time64_t(tm.Unix())
+
+ //TODO When Go 1.16 is no more supported
+ // (*__timeb64)(unsafe.Pointer(timeptr)).millitm = uint32(tm.UnixMilli() % 1000)
+
+ (*__timeb64)(unsafe.Pointer(timeptr)).millitm = uint32(int64(tm.Nanosecond()) / 1e6)
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return *(*int32)(unsafe.Pointer(m)) & 15
+}
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer(a))
+}
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return *(*int32)(unsafe.Pointer(a)) & int32(3)
+}
+
+func Xchmod(t *TLS, pathname uintptr, mode int32) int32 {
+ panic(todo("%q %#o", GoString(pathname), mode))
+}
+
+// typedef enum _COMPUTER_NAME_FORMAT {
+// ComputerNameNetBIOS,
+// ComputerNameDnsHostname,
+// ComputerNameDnsDomain,
+// ComputerNameDnsFullyQualified,
+// ComputerNamePhysicalNetBIOS,
+// ComputerNamePhysicalDnsHostname,
+// ComputerNamePhysicalDnsDomain,
+// ComputerNamePhysicalDnsFullyQualified,
+// ComputerNameMax
+// } COMPUTER_NAME_FORMAT;
+
+// BOOL GetComputerNameExW(
+// [in] COMPUTER_NAME_FORMAT NameType,
+// [out] LPWSTR lpBuffer,
+// [in, out] LPDWORD nSize
+// );
+func XGetComputerNameExW(t *TLS, nameType int32, lpBuffer, nSize uintptr) int32 {
+ r0, _, err := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nameType), lpBuffer, nSize)
+ if err != 0 {
+ t.setErrno(err)
+ }
+ return int32(r0)
+}
+
+// double _copysign(
+// double x,
+// double y
+// );
+func X_copysign(t *TLS, x, y float64) float64 { return Xcopysign(t, x, y) }
+
+// int _wtoi(
+// const wchar_t *str
+// );
+func X_wtoi(t *TLS, str uintptr) int32 {
+ panic(todo(""))
+}
+
+func allocW(t *TLS, v string) (r uintptr) {
+ s := utf16.Encode([]rune(v))
+ p := Xcalloc(t, types.Size_t(len(s)+1), 2)
+ if p == 0 {
+ panic(todo(""))
+ }
+
+ r = p
+ for _, v := range s {
+ *(*uint16)(unsafe.Pointer(p)) = v
+ p += 2
+ }
+ return r
+}
+
+// wchar_t *_wgetenv(
+// const wchar_t *varname
+// );
+func X_wgetenv(t *TLS, varname uintptr) uintptr {
+ if !wenvValid {
+ bootWinEnviron(t)
+ }
+ k := strings.ToLower(goWideStringNZ(varname))
+ for _, v := range winEnviron[:len(winEnviron)-1] {
+ s := strings.ToLower(goWideStringNZ(v))
+ x := strings.IndexByte(s, '=')
+ if s[:x] == k {
+ // trc("%v: %q -> %q", origin(1), goWideStringNZ(varname), goWideStringNZ(v))
+ return v
+ }
+ }
+
+ // trc("%v: %q -> %q", origin(1), goWideStringNZ(varname), "")
+ return 0
+}
+
+// int _wputenv(
+// const wchar_t *envstring
+// );
+func X_wputenv(t *TLS, envstring uintptr) int32 {
+ if !wenvValid {
+ bootWinEnviron(t)
+ }
+ s0 := goWideStringNZ(envstring)
+ s := strings.ToLower(s0)
+ x := strings.IndexByte(s, '=')
+ k := s[:x]
+ for i, v := range winEnviron[:len(winEnviron)-1] {
+ s2 := strings.ToLower(goWideStringNZ(v))
+ x := strings.IndexByte(s2, '=')
+ if s2[:x] == k {
+ Xfree(t, v)
+ winEnviron[i] = allocW(t, s0)
+ return 0
+ }
+ }
+
+ np := allocW(t, s0)
+ winEnviron = winEnviron[:len(winEnviron)-1]
+ winEnviron = append(winEnviron, np, 0)
+ wenviron = uintptr(unsafe.Pointer(&winEnviron[0]))
+ return 0
+}
+
+func bootWinEnviron(t *TLS) {
+ winEnviron = winEnviron[:0]
+ p := Environ()
+ for {
+ q := *(*uintptr)(unsafe.Pointer(p))
+ p += unsafe.Sizeof(uintptr(0))
+ if q == 0 {
+ break
+ }
+
+ s := GoString(q)
+ // trc("%v: %q", origin(1), s)
+ r := allocW(t, s)
+ winEnviron = append(winEnviron, r)
+ }
+ wenviron = uintptr(unsafe.Pointer(&winEnviron[0]))
+ wenvValid = true
+}
+
+func Xfabsl(t *TLS, x float64) float64 { return math.Abs(x) }
diff --git a/vendor/modernc.org/libc/libc_windows_386.go b/vendor/modernc.org/libc/libc_windows_386.go
new file mode 100644
index 00000000..268ba5bd
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_windows_386.go
@@ -0,0 +1,542 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "os"
+ "strings"
+ "syscall"
+ "unsafe"
+
+ "modernc.org/libc/errno"
+ "modernc.org/libc/sys/types"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ panic(todo(""))
+ // // musl/arch/x32/ksigaction.h
+ // //
+ // // struct k_sigaction {
+ // // void (*handler)(int);
+ // // unsigned long flags;
+ // // void (*restorer)(void);
+ // // unsigned mask[2];
+ // // };
+ // type k_sigaction struct {
+ // handler uintptr
+ // flags ulong
+ // restorer uintptr
+ // mask [2]uint32
+ // }
+
+ // var kact, koldact uintptr
+ // if act != 0 {
+ // kact = t.Alloc(int(unsafe.Sizeof(k_sigaction{})))
+ // defer Xfree(t, kact)
+ // *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ // handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ // flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ // restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ // }
+ // Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ // }
+ // if oldact != 0 {
+ // panic(todo(""))
+ // }
+
+ // if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signal.SIGABRT), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if oldact != 0 {
+ // panic(todo(""))
+ // }
+
+ // return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ panic(todo(""))
+ // var arg uintptr
+ // if args != 0 {
+ // arg = *(*uintptr)(unsafe.Pointer(args))
+ // }
+ // n, _, err := unix.Syscall(unix.SYS_FCNTL64, uintptr(fd), uintptr(cmd), arg)
+ // if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ // }
+ // return int32(n)
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LSTAT64, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ // return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_STAT64, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ // return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_FSTAT64, uintptr(fd), statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %d, size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ // }
+ // return 0
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ panic(todo(""))
+ // var arg uintptr
+ // if args != 0 {
+ // arg = *(*uintptr)(unsafe.Pointer(args))
+ // }
+ // data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ // if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ // t.setErrno(err)
+ // return ^uintptr(0) // (void*)-1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ // return data
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ panic(todo(""))
+ // data, _, err := unix.Syscall6(unix.SYS_MMAP2, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset>>12))
+ // if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ // t.setErrno(err)
+ // return ^uintptr(0) // (void*)-1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ // return data
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ // }
+ // return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+ panic(todo(""))
+ // bp := t.Alloc(int(unsafe.Sizeof(types.X__loff_t(0))))
+ // defer t.Free(int(unsafe.Sizeof(types.X__loff_t(0))))
+ // if _, _, err := unix.Syscall6(unix.SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), bp, uintptr(whence), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), *(*types.Off_t)(unsafe.Pointer(bp)))
+ // }
+ // return *(*types.Off_t)(unsafe.Pointer(bp))
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_UTIME, filename, times, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+ //
+ // return uint32(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_TIME, tloc, 0, 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return types.Time_t(-1)
+ // }
+ //
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKDIR, path, uintptr(mode), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ // return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_SYMLINK, target, linkpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ // }
+ // return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_UTIMES, filename, times, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(filename))
+ // }
+ // return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+ err := syscall.DeleteFile((*uint16)(unsafe.Pointer(pathname)))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+
+ return 0
+
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_ACCESS, pathname, uintptr(mode), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ // }
+ // return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_RMDIR, pathname, 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ // return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// // int chown(const char *pathname, uid_t owner, gid_t group);
+// func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+// panic(todo(""))
+// // if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+// // t.setErrno(err)
+// // return -1
+// // }
+// //
+// // return 0
+// }
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_PIPE, pipefd, 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_READLINK, path, buf, uintptr(bufsize))
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ h, err := syscall.Open(GoString(pathname), int(flags), uint32(0666))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+
+ p, _ := wrapFdHandle(h)
+ if p != 0 {
+ return p
+ }
+ _ = syscall.Close(h)
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
+
+func Xrecv(t *TLS, sockfd uint32, buf uintptr, len, flags int32) int32 {
+ panic(todo(""))
+}
+
+func Xsend(t *TLS, sockfd uint32, buf uintptr, len, flags int32) int32 {
+ panic(todo(""))
+}
+
+func Xshutdown(t *TLS, sockfd uint32, how int32) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+ //
+ // return 0
+}
+
+func Xgetpeername(t *TLS, sockfd uint32, addr uintptr, addrlen uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xgetsockname(t *TLS, sockfd uint32, addr, addrlen uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xsocket(t *TLS, domain, type1, protocol int32) uint32 {
+ panic(todo(""))
+}
+
+func Xbind(t *TLS, sockfd uint32, addr uintptr, addrlen int32) int32 {
+ panic(todo(""))
+}
+
+func Xconnect(t *TLS, sockfd uint32, addr uintptr, addrlen int32) int32 {
+ panic(todo(""))
+}
+
+func Xlisten(t *TLS, sockfd uint32, backlog int32) int32 {
+ panic(todo(""))
+}
+
+func Xaccept(t *TLS, sockfd uint32, addr uintptr, addrlen uintptr) uint32 {
+ panic(todo(""))
+}
+
+// struct tm *_localtime32( const __time32_t *sourceTime );
+func X_localtime32(t *TLS, sourceTime uintptr) uintptr {
+ panic(todo(""))
+}
+
+// struct tm *_gmtime32( const __time32_t *sourceTime );
+func X_gmtime32(t *TLS, sourceTime uintptr) uintptr {
+ panic(todo(""))
+}
+
+// LONG SetWindowLongW(
+// HWND hWnd,
+// int nIndex,
+// LONG dwNewLong
+// );
+func XSetWindowLongW(t *TLS, hwnd uintptr, nIndex int32, dwNewLong long) long {
+ panic(todo(""))
+}
+
+// LONG GetWindowLongW(
+// HWND hWnd,
+// int nIndex
+// );
+func XGetWindowLongW(t *TLS, hwnd uintptr, nIndex int32) long {
+ panic(todo(""))
+}
+
+// LRESULT LRESULT DefWindowProcW(
+// HWND hWnd,
+// UINT Msg,
+// WPARAM wParam,
+// LPARAM lParam
+// );
+func XDefWindowProcW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
+
+func XSendMessageTimeoutW(t *TLS, _ ...interface{}) int32 {
+ panic(todo(""))
+}
diff --git a/vendor/modernc.org/libc/libc_windows_amd64.go b/vendor/modernc.org/libc/libc_windows_amd64.go
new file mode 100644
index 00000000..10cdf904
--- /dev/null
+++ b/vendor/modernc.org/libc/libc_windows_amd64.go
@@ -0,0 +1,513 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "modernc.org/libc/errno"
+ "modernc.org/libc/sys/types"
+ "os"
+ "strings"
+ "syscall"
+ "unsafe"
+)
+
+// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
+func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
+ panic(todo(""))
+ // musl/arch/x86_64/ksigaction.h
+ //
+ // struct k_sigaction {
+ // void (*handler)(int);
+ // unsigned long flags;
+ // void (*restorer)(void);
+ // unsigned mask[2];
+ // };
+ // type k_sigaction struct {
+ // handler uintptr
+ // flags ulong
+ // restorer uintptr
+ // mask [2]uint32
+ // }
+
+ // var kact, koldact uintptr
+ // if act != 0 {
+ // kact = t.Alloc(int(unsafe.Sizeof(k_sigaction{})))
+ // defer Xfree(t, kact)
+ // *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
+ // handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
+ // flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
+ // restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
+ // }
+ // Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
+ // }
+ // if oldact != 0 {
+ // panic(todo(""))
+ // }
+
+ // if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signal.SIGABRT), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if oldact != 0 {
+ // panic(todo(""))
+ // }
+
+ // return 0
+}
+
+// int fcntl(int fd, int cmd, ... /* arg */ );
+func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
+ panic(todo(""))
+ // var arg uintptr
+ // if args != 0 {
+ // arg = *(*uintptr)(unsafe.Pointer(args))
+ // }
+ // n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
+ // if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
+ // }
+ // return int32(n)
+}
+
+// int lstat(const char *pathname, struct stat *statbuf);
+func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LSTAT, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ // return 0
+}
+
+// int stat(const char *pathname, struct stat *statbuf);
+func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_STAT, pathname, statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ // return 0
+}
+
+// int fstat(int fd, struct stat *statbuf);
+func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_FSTAT, uintptr(fd), statbuf, 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %d size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
+ // }
+ // return 0
+}
+
+func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ return Xmmap64(t, addr, length, prot, flags, fd, offset)
+}
+
+// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
+func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
+ panic(todo(""))
+ // data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+ // if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ // t.setErrno(err)
+ // return ^uintptr(0) // (void*)-1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ // return data
+}
+
+// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
+func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
+ panic(todo(""))
+ // var arg uintptr
+ // if args != 0 {
+ // arg = *(*uintptr)(unsafe.Pointer(args))
+ // }
+ // data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
+ // if err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %v", origin(1), err)
+ // }
+ // t.setErrno(err)
+ // return ^uintptr(0) // (void*)-1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %#x", origin(1), data)
+ // }
+ // return data
+}
+
+// int ftruncate(int fd, off_t length);
+func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: fd %d: %v", origin(1), fd, err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %d %#x: ok", origin(1), fd, length)
+ // }
+ // return 0
+}
+
+// off64_t lseek64(int fd, off64_t offset, int whence);
+func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
+
+ f, ok := fdToFile(fd)
+ if !ok {
+ t.setErrno(errno.EBADF)
+ return -1
+ }
+
+ n, err := syscall.Seek(f.Handle, offset, int(whence))
+ if err != nil {
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), f._fd, offset, whenceStr(whence), n)
+ }
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), f._fd, offset, whenceStr(whence))
+ }
+ return n
+}
+
+// int utime(const char *filename, const struct utimbuf *times);
+func Xutime(t *TLS, filename, times uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_UTIME, filename, times, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// unsigned int alarm(unsigned int seconds);
+func Xalarm(t *TLS, seconds uint32) uint32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0)
+ // if err != 0 {
+ // panic(todo(""))
+ // }
+
+ // return uint32(n)
+}
+
+// time_t time(time_t *tloc);
+func Xtime(t *TLS, tloc uintptr) types.Time_t {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_TIME, tloc, 0, 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return types.Time_t(-1)
+ // }
+
+ // if tloc != 0 {
+ // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n)
+ // }
+ // return types.Time_t(n)
+}
+
+// int getrlimit(int resource, struct rlimit *rlim);
+func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int mkdir(const char *path, mode_t mode);
+func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKDIR, path, uintptr(mode), 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(path))
+ // }
+ // return 0
+}
+
+// int symlink(const char *target, const char *linkpath);
+func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_SYMLINK, target, linkpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath))
+ // }
+ // return 0
+}
+
+// int utimes(const char *filename, const struct timeval times[2]);
+func Xutimes(t *TLS, filename, times uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_UTIMES, filename, times, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(filename))
+ // }
+ // return 0
+}
+
+// int unlink(const char *pathname);
+func Xunlink(t *TLS, pathname uintptr) int32 {
+
+ err := syscall.DeleteFile((*uint16)(unsafe.Pointer(pathname)))
+ if err != nil {
+ t.setErrno(err)
+ return -1
+ }
+
+ if dmesgs {
+ dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ }
+
+ return 0
+}
+
+// int access(const char *pathname, int mode);
+func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_ACCESS, pathname, uintptr(mode), 0); err != 0 {
+ // if dmesgs {
+ // dmesg("%v: %q: %v", origin(1), GoString(pathname), err)
+ // }
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode)
+ // }
+ // return 0
+}
+
+// int rmdir(const char *pathname);
+func Xrmdir(t *TLS, pathname uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_RMDIR, pathname, 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // if dmesgs {
+ // dmesg("%v: %q: ok", origin(1), GoString(pathname))
+ // }
+ // return 0
+}
+
+// int mknod(const char *pathname, mode_t mode, dev_t dev);
+func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// // int chown(const char *pathname, uid_t owner, gid_t group);
+// func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
+// panic(todo(""))
+// // if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 {
+// // t.setErrno(err)
+// // return -1
+// // }
+//
+// // return 0
+// }
+
+// int link(const char *oldpath, const char *newpath);
+func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int pipe(int pipefd[2]);
+func Xpipe(t *TLS, pipefd uintptr) int32 {
+ panic(todo(""))
+ // if _, _, err := unix.Syscall(unix.SYS_PIPE, pipefd, 0, 0); err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return 0
+}
+
+// int dup2(int oldfd, int newfd);
+func Xdup2(t *TLS, oldfd, newfd int32) int32 {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return int32(n)
+}
+
+// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
+func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
+ panic(todo(""))
+ // n, _, err := unix.Syscall(unix.SYS_READLINK, path, buf, uintptr(bufsize))
+ // if err != 0 {
+ // t.setErrno(err)
+ // return -1
+ // }
+
+ // return types.Ssize_t(n)
+}
+
+// FILE *fopen64(const char *pathname, const char *mode);
+func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
+
+ m := strings.ReplaceAll(GoString(mode), "b", "")
+ var flags int
+ switch m {
+ case "r":
+ flags = os.O_RDONLY
+ case "r+":
+ flags = os.O_RDWR
+ case "w":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ case "w+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
+ case "a":
+ flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
+ case "a+":
+ flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
+ default:
+ panic(m)
+ }
+ //TODO- flags |= fcntl.O_LARGEFILE
+ h, err := syscall.Open(GoString(pathname), int(flags), uint32(0666))
+ if err != nil {
+ t.setErrno(err)
+ return 0
+ }
+
+ p, _ := wrapFdHandle(h)
+ if p != 0 {
+ return p
+ }
+ _ = syscall.Close(h)
+ t.setErrno(errno.ENOMEM)
+ return 0
+}
+
+func Xrecv(t *TLS, sockfd uint64, buf uintptr, len, flags int32) int32 {
+ panic(todo(""))
+}
+
+func Xsend(t *TLS, sockfd uint64, buf uintptr, len, flags int32) int32 {
+ panic(todo(""))
+}
+
+func Xshutdown(t *TLS, sockfd uint64, how int32) int32 {
+ panic(todo(""))
+}
+
+func Xgetpeername(t *TLS, sockfd uint64, addr uintptr, addrlen uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xgetsockname(t *TLS, sockfd uint64, addr, addrlen uintptr) int32 {
+ panic(todo(""))
+}
+
+func Xsocket(t *TLS, domain, type1, protocol int32) uint64 {
+ panic(todo(""))
+}
+
+func Xbind(t *TLS, sockfd uint64, addr uintptr, addrlen int32) int32 {
+ panic(todo(""))
+}
+
+func Xconnect(t *TLS, sockfd uint64, addr uintptr, addrlen int32) int32 {
+ panic(todo(""))
+}
+
+func Xlisten(t *TLS, sockfd uint64, backlog int32) int32 {
+ panic(todo(""))
+}
+
+func Xaccept(t *TLS, sockfd uint64, addr uintptr, addrlen uintptr) uint64 {
+ panic(todo(""))
+}
+
+// LRESULT LRESULT DefWindowProcW(
+// HWND hWnd,
+// UINT Msg,
+// WPARAM wParam,
+// LPARAM lParam
+// );
+func XDefWindowProcW(t *TLS, _ ...interface{}) int64 {
+ panic(todo(""))
+}
+
+func XSendMessageTimeoutW(t *TLS, _ ...interface{}) int64 {
+ panic(todo(""))
+}
diff --git a/vendor/modernc.org/libc/limits/capi_darwin_amd64.go b/vendor/modernc.org/libc/limits/capi_darwin_amd64.go
new file mode 100644
index 00000000..5f13594d
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo limits/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 limits/limits_darwin_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/limits/capi_darwin_arm64.go b/vendor/modernc.org/libc/limits/capi_darwin_arm64.go
new file mode 100644
index 00000000..81c0e802
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_darwin_arm64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_freebsd_386.go b/vendor/modernc.org/libc/limits/capi_freebsd_386.go
new file mode 100644
index 00000000..18fba028
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_freebsd_386.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_freebsd_amd64.go b/vendor/modernc.org/libc/limits/capi_freebsd_amd64.go
new file mode 100644
index 00000000..59d86908
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_freebsd_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_linux_386.go b/vendor/modernc.org/libc/limits/capi_linux_386.go
new file mode 100644
index 00000000..0f9d360d
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_386.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_linux_amd64.go b/vendor/modernc.org/libc/limits/capi_linux_amd64.go
new file mode 100644
index 00000000..ebab7361
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_linux_arm.go b/vendor/modernc.org/libc/limits/capi_linux_arm.go
new file mode 100644
index 00000000..f9f73992
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_arm.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_linux_arm64.go b/vendor/modernc.org/libc/limits/capi_linux_arm64.go
new file mode 100644
index 00000000..75630661
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_arm64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_linux_s390x.go b/vendor/modernc.org/libc/limits/capi_linux_s390x.go
new file mode 100644
index 00000000..eca6eefc
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_s390x.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_netbsd_amd64.go b/vendor/modernc.org/libc/limits/capi_netbsd_amd64.go
new file mode 100644
index 00000000..b1512432
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_netbsd_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_openbsd_amd64.go b/vendor/modernc.org/libc/limits/capi_openbsd_amd64.go
new file mode 100644
index 00000000..bda639df
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_openbsd_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_windows_386.go b/vendor/modernc.org/libc/limits/capi_windows_386.go
new file mode 100644
index 00000000..30ec29e9
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits/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 limits/limits_windows_386.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/capi_windows_amd64.go b/vendor/modernc.org/libc/limits/capi_windows_amd64.go
new file mode 100644
index 00000000..f16b0b15
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo limits\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 limits\limits_windows_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/limits/limits_darwin_amd64.go b/vendor/modernc.org/libc/limits/limits_darwin_amd64.go
new file mode 100644
index 00000000..a944a9ec
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_darwin_amd64.go
@@ -0,0 +1,935 @@
+// Code generated by 'ccgo limits/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 limits/limits_darwin_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 262144
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 266
+ CLK_TCK = 100
+ COLL_WEIGHTS_MAX = 2
+ EQUIV_CLASS_MAX = 2
+ EXPR_NEST_MAX = 32
+ GID_MAX = 2147483647
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_BIT = 64
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 1024
+ MAX_INPUT = 1024
+ MB_LEN_MAX = 6
+ NAME_MAX = 255
+ NGROUPS_MAX = 16
+ NL_ARGMAX = 9
+ NL_LANGMAX = 14
+ NL_MSGMAX = 32767
+ NL_NMAX = 1
+ NL_SETMAX = 255
+ NL_TEXTMAX = 2048
+ NZERO = 20
+ OFF_MAX = 9223372036854775807
+ OFF_MIN = -9223372036854775808
+ OPEN_MAX = 10240
+ PASS_MAX = 128
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 512
+ PTHREAD_STACK_MIN = 8192
+ QUAD_MAX = 9223372036854775807
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ UCHAR_MAX = 255
+ UID_MAX = 2147483647
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ UQUAD_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ WORD_BIT = 32
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_I386_LIMITS_H_ = 0
+ X_I386__LIMITS_H_ = 0
+ X_LIMITS_H_ = 0
+ X_LIMITS_H___ = 0
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EQUIV_CLASS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_SS_REPL_MAX = 4
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TRACE_EVENT_NAME_MAX = 30
+ X_POSIX_TRACE_NAME_MAX = 8
+ X_POSIX_TRACE_SYS_MAX = 8
+ X_POSIX_TRACE_USER_EVENT_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_SYS_SYSLIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (C) 1992-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// Copyright (c) 2000, 2004-2007, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// $NetBSD: limits.h,v 1.8 1996/10/21 05:10:50 jtc Exp $
+
+// Copyright (c) 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)limits.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// This is the `system' limits.h, independent of any particular
+// compiler. GCC provides its own limits.h which can be found in
+// /usr/lib/gcc, although it is not very informative.
+// This file is public domain.
+// Copyright (c) 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// The contents of this file constitute Original Code as defined in and
+// are subject to the Apple Public Source License Version 1.1 (the
+// "License"). You may not use this file except in compliance with the
+// License. Please obtain a copy of the License at
+// http://www.apple.com/publicsource and read it before using this file.
+//
+// This Original Code and all software distributed under the License are
+// distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+// These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values
+// are written as hex so that GCC will be quiet about large integer constants.
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// $NetBSD: syslimits.h,v 1.15 1997/06/25 00:48:09 lukem Exp $
+
+// Copyright (c) 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Note: CHILD_MAX *must* be less than hard_maxproc, which is set at
+// compile time; you *cannot* set it higher than the hard limit!!
+
+// = ((PRIO_MAX - PRIO_MIN) / 2) + 1
+// range: 0 - 39 [(2 * NZERO) - 1]
+// 0 is not actually used
+
+// Actually for XSI Visible
+
+// Removed in Issue 6
+
+// NZERO to be defined here. TBD. See also sys/param.h
+
+// Copyright (C) 1991-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_darwin_arm64.go b/vendor/modernc.org/libc/limits/limits_darwin_arm64.go
new file mode 100644
index 00000000..d27a72e2
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_darwin_arm64.go
@@ -0,0 +1,932 @@
+// Code generated by 'ccgo limits/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 limits/limits_darwin_arm64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 1048576
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 266
+ CLK_TCK = 100
+ COLL_WEIGHTS_MAX = 2
+ EQUIV_CLASS_MAX = 2
+ EXPR_NEST_MAX = 32
+ GID_MAX = 2147483647
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_BIT = 64
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 1024
+ MAX_INPUT = 1024
+ MB_LEN_MAX = 6
+ NAME_MAX = 255
+ NGROUPS_MAX = 16
+ NL_ARGMAX = 9
+ NL_LANGMAX = 14
+ NL_MSGMAX = 32767
+ NL_NMAX = 1
+ NL_SETMAX = 255
+ NL_TEXTMAX = 2048
+ NZERO = 20
+ OFF_MAX = 9223372036854775807
+ OFF_MIN = -9223372036854775808
+ OPEN_MAX = 10240
+ PASS_MAX = 128
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 512
+ PTHREAD_STACK_MIN = 16384
+ QUAD_MAX = 9223372036854775807
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ UCHAR_MAX = 255
+ UID_MAX = 2147483647
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ UQUAD_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ WORD_BIT = 32
+ X_ARM_LIMITS_H_ = 0
+ X_ARM__LIMITS_H_ = 0
+ X_BSD_MACHINE_LIMITS_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_LIMITS_H_ = 0
+ X_LIMITS_H___ = 0
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EQUIV_CLASS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_SS_REPL_MAX = 4
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TRACE_EVENT_NAME_MAX = 30
+ X_POSIX_TRACE_NAME_MAX = 8
+ X_POSIX_TRACE_SYS_MAX = 8
+ X_POSIX_TRACE_USER_EVENT_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_SYS_SYSLIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+)
+
+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 */
+
+// Copyright (C) 1992-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// Copyright (c) 2000, 2004-2007, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// $NetBSD: limits.h,v 1.8 1996/10/21 05:10:50 jtc Exp $
+
+// Copyright (c) 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)limits.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// This is the `system' limits.h, independent of any particular
+// compiler. GCC provides its own limits.h which can be found in
+// /usr/lib/gcc, although it is not very informative.
+// This file is public domain.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+// These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values
+// are written as hex so that GCC will be quiet about large integer constants.
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// $NetBSD: syslimits.h,v 1.15 1997/06/25 00:48:09 lukem Exp $
+
+// Copyright (c) 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// max bytes for an exec function
+
+// Note: CHILD_MAX *must* be less than hard_maxproc, which is set at
+// compile time; you *cannot* set it higher than the hard limit!!
+
+// = ((PRIO_MAX - PRIO_MIN) / 2) + 1
+// range: 0 - 39 [(2 * NZERO) - 1]
+// 0 is not actually used
+
+// Actually for XSI Visible
+
+// Removed in Issue 6
+
+// NZERO to be defined here. TBD. See also sys/param.h
+
+// Copyright (C) 1991-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_freebsd_386.go b/vendor/modernc.org/libc/limits/limits_freebsd_386.go
new file mode 100644
index 00000000..c8018409
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_freebsd_386.go
@@ -0,0 +1,567 @@
+// Code generated by 'ccgo limits/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 limits/limits_freebsd_386.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 262144
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 40
+ COLL_WEIGHTS_MAX = 10
+ EXPR_NEST_MAX = 32
+ GID_MAX = 4294967295
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_BIT = 32
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 6
+ MQ_PRIO_MAX = 64
+ NAME_MAX = 255
+ NGROUPS_MAX = 1023
+ NL_ARGMAX = 4096
+ NL_LANGMAX = 31
+ NL_MSGMAX = 32767
+ NL_NMAX = 1
+ NL_SETMAX = 255
+ NL_TEXTMAX = 2048
+ OFF_MAX = 9223372036854775807
+ OFF_MIN = -9223372036854775808
+ OPEN_MAX = 64
+ PASS_MAX = 128
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ QUAD_MAX = 9223372036854775807
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 4294967295
+ SSIZE_MAX = 2147483647
+ UCHAR_MAX = 255
+ UID_MAX = 4294967295
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UQUAD_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ WORD_BIT = 32
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_LIMITS_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EQUIV_CLASS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_SS_REPL_MAX = 4
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TRACE_EVENT_NAME_MAX = 30
+ X_POSIX_TRACE_NAME_MAX = 8
+ X_POSIX_TRACE_SYS_MAX = 8
+ X_POSIX_TRACE_USER_EVENT_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_LIMITS_H_ = 0
+ X_SYS_SYSLIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.2 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+// $FreeBSD$
+
+// Do not add any new variables here. (See the comment at the end of
+// the file for why.)
+
+// We leave the following values undefined to force applications to either
+// assume conservative values or call sysconf() to get the current value.
+//
+// HOST_NAME_MAX
+//
+// (We should do this for most of the values currently defined here,
+// but many programs are not prepared to deal with this yet.)
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_freebsd_amd64.go b/vendor/modernc.org/libc/limits/limits_freebsd_amd64.go
new file mode 100644
index 00000000..732fa2a9
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_freebsd_amd64.go
@@ -0,0 +1,574 @@
+// Code generated by 'ccgo limits/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 limits/limits_freebsd_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 524288
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 40
+ COLL_WEIGHTS_MAX = 10
+ EXPR_NEST_MAX = 32
+ GID_MAX = 4294967295
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_BIT = 64
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 6
+ MQ_PRIO_MAX = 64
+ NAME_MAX = 255
+ NGROUPS_MAX = 1023
+ NL_ARGMAX = 4096
+ NL_LANGMAX = 31
+ NL_MSGMAX = 32767
+ NL_NMAX = 1
+ NL_SETMAX = 255
+ NL_TEXTMAX = 2048
+ OFF_MAX = 9223372036854775807
+ OFF_MIN = -9223372036854775808
+ OPEN_MAX = 64
+ PASS_MAX = 128
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ QUAD_MAX = 9223372036854775807
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ UCHAR_MAX = 255
+ UID_MAX = 4294967295
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ UQUAD_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ WORD_BIT = 32
+ X_FILE_OFFSET_BITS = 64
+ X_LIMITS_H_ = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EQUIV_CLASS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_SS_REPL_MAX = 4
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TRACE_EVENT_NAME_MAX = 30
+ X_POSIX_TRACE_NAME_MAX = 8
+ X_POSIX_TRACE_SYS_MAX = 8
+ X_POSIX_TRACE_USER_EVENT_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_LIMITS_H_ = 0
+ X_SYS_SYSLIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.2 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+// $FreeBSD$
+
+// Do not add any new variables here. (See the comment at the end of
+// the file for why.)
+
+// We leave the following values undefined to force applications to either
+// assume conservative values or call sysconf() to get the current value.
+//
+// HOST_NAME_MAX
+//
+// (We should do this for most of the values currently defined here,
+// but many programs are not prepared to deal with this yet.)
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_linux_386.go b/vendor/modernc.org/libc/limits/limits_linux_386.go
new file mode 100644
index 00000000..ed5d6106
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_linux_386.go
@@ -0,0 +1,932 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_386.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AIO_PRIO_DELTA_MAX = 20
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 2048
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ COLL_WEIGHTS_MAX = 255
+ DELAYTIMER_MAX = 2147483647
+ EXPR_NEST_MAX = 32
+ HOST_NAME_MAX = 64
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 256
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 16
+ MQ_PRIO_MAX = 32768
+ NAME_MAX = 255
+ NGROUPS_MAX = 65536
+ PATH_MAX = 4096
+ PIPE_BUF = 4096
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 1024
+ PTHREAD_STACK_MIN = 16384
+ RE_DUP_MAX = 32767
+ RTSIG_MAX = 32
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SEM_VALUE_MAX = 2147483647
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SSIZE_MAX = 2147483647
+ TTY_NAME_MAX = 32
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ USHRT_MAX = 65535
+ XATTR_LIST_MAX = 65536
+ XATTR_NAME_MAX = 255
+ XATTR_SIZE_MAX = 65536
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX1_LIM_H = 1
+ X_BITS_POSIX2_LIM_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_ILP32 = 1
+ X_LIBC_LIMITS_H_ = 1
+ X_LIMITS_H___ = 0
+ X_LINUX_LIMITS_H = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SOURCE = 1
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
+
+// Handle feature test macros at the start of a header.
+// 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/>.
+
+// This header is internal to glibc and should not be included outside
+// of glibc headers. Headers including it must define
+// __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
+// cannot have multiple include guards because ISO C feature test
+// macros depend on the definition of the macro when an affected
+// header is included, not when the first system header is
+// included.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
+// macro.
+
+// ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
+// macro. Most but not all symbols enabled by that macro in TS
+// 18661-1 are enabled unconditionally in C2X; the symbols in Annex F
+// still require that macro in C2X.
+
+// ISO/IEC TS 18661-4:2015 defines the
+// __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
+// functions, the symbols from this TS are enabled unconditionally in
+// C2X.
+
+// ISO/IEC TS 18661-3:2015 defines the
+// __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
+
+// Maximum length of any multibyte character in any locale.
+// We define this value here since the gcc header does not define
+// the correct value.
+
+// If we are not using GNU CC we have to define all the symbols ourself.
+// Otherwise use gcc's definitions (see below).
+
+// Get the compiler's limits.h, which defines almost all the ISO constants.
+//
+// We put this #include_next outside the double inclusion check because
+// it should be possible to include this file more than once and still get
+// the definitions from gcc's header.
+
+// The <limits.h> files in some gcc versions don't define LLONG_MIN,
+// LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for
+// ages are available.
+
+// The integer width macros are not defined by GCC's <limits.h> before
+// GCC 7, or if _GNU_SOURCE rather than
+// __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
+
+// POSIX adds things to <limits.h>.
+// 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
+// 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/>.
+
+// POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
+//
+// Never include this file directly; use <limits.h> instead.
+
+// Determine the wordsize from the preprocessor defines.
+
+// These are the standard-mandated minimum values.
+
+// Minimum number of operations in one list I/O call.
+
+// Minimal number of outstanding asynchronous I/O operations.
+
+// Maximum length of arguments to `execve', including environment.
+
+// Maximum simultaneous processes per real user ID.
+
+// Minimal number of timer expiration overruns.
+
+// Maximum length of a host name (not including the terminating null)
+// as returned from the GETHOSTNAME function.
+
+// Maximum link count of a file.
+
+// Maximum length of login name.
+
+// Number of bytes in a terminal canonical input queue.
+
+// Number of bytes for which space will be
+// available in a terminal input queue.
+
+// Maximum number of message queues open for a process.
+
+// Maximum number of supported message priorities.
+
+// Number of bytes in a filename.
+
+// Number of simultaneous supplementary group IDs per process.
+
+// Number of files one process can have open at once.
+
+// Number of bytes in a pathname.
+
+// Number of bytes than can be written atomically to a pipe.
+
+// The number of repeated occurrences of a BRE permitted by the
+// REGEXEC and REGCOMP functions when using the interval notation.
+
+// Minimal number of realtime signals reserved for the application.
+
+// Number of semaphores a process can have.
+
+// Maximal value of a semaphore.
+
+// Number of pending realtime signals.
+
+// Largest value of a `ssize_t'.
+
+// Number of streams a process can have open at once.
+
+// The number of bytes in a symbolic link.
+
+// The number of symbolic links that can be traversed in the
+// resolution of a pathname in the absence of a loop.
+
+// Number of timer for a process.
+
+// Maximum number of characters in a tty name.
+
+// Maximum length of a timezone name (element of `tzname').
+
+// Maximum clock resolution in nanoseconds.
+
+// Get the implementation-specific values for the above.
+// Minimum guaranteed maximum values for system limits. Linux version.
+// Copyright (C) 1993-2020 Free Software 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// The kernel header pollutes the namespace with the NR_OPEN symbol
+// and defines LINK_MAX although filesystems have different maxima. A
+// similar thing is true for OPEN_MAX: the limit can be changed at
+// runtime and therefore the macro must not be defined. Remove this
+// after including the header if necessary.
+
+// The kernel sources contain a file with all the needed information.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// Have to remove NR_OPEN?
+// Have to remove LINK_MAX?
+// Have to remove OPEN_MAX?
+// Have to remove ARG_MAX?
+
+// The number of data keys per process.
+// This is the value this implementation supports.
+
+// Controlling the iterations of destructors for thread-specific data.
+// Number of iterations this implementation does.
+
+// The number of threads per process.
+// We have no predefined limit on the number of threads.
+
+// Maximum amount by which a process can descrease its asynchronous I/O
+// priority level.
+
+// Minimum size for a thread. We are free to choose a reasonable value.
+
+// Maximum number of timer expiration overruns.
+
+// Maximum tty name length.
+
+// Maximum login name length. This is arbitrary.
+
+// Maximum host name length.
+
+// Maximum message queue priority level.
+
+// Maximum value the semaphore can have.
+
+// ssize_t is not formally required to be the signed type
+// corresponding to size_t, but it is for all configurations supported
+// by glibc.
+
+// This value is a guaranteed minimum maximum.
+// The current maximum can be got from `sysconf'.
+
+// 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
+// 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/>.
+
+// Never include this file directly; include <limits.h> instead.
+
+// The maximum `ibase' and `obase' values allowed by the `bc' utility.
+
+// The maximum number of elements allowed in an array by the `bc' utility.
+
+// The maximum `scale' value allowed by the `bc' utility.
+
+// The maximum length of a string constant accepted by the `bc' utility.
+
+// The maximum number of weights that can be assigned to an entry of
+// the LC_COLLATE `order' keyword in the locale definition file.
+
+// The maximum number of expressions that can be nested
+// within parentheses by the `expr' utility.
+
+// The maximum length, in bytes, of an input line.
+
+// The maximum number of repeated occurrences of a regular expression
+// permitted when using the interval notation `\{M,N\}'.
+
+// The maximum number of bytes in a character class name. We have no
+// fixed limit, 2048 is a high number.
+
+// These values are implementation-specific,
+// and may vary within the implementation.
+// Their precise values can be obtained from sysconf.
+
+// This value is defined like this in regex.h.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_linux_amd64.go b/vendor/modernc.org/libc/limits/limits_linux_amd64.go
new file mode 100644
index 00000000..a9a95595
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_linux_amd64.go
@@ -0,0 +1,943 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AIO_PRIO_DELTA_MAX = 20
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 2048
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ COLL_WEIGHTS_MAX = 255
+ DELAYTIMER_MAX = 2147483647
+ EXPR_NEST_MAX = 32
+ HOST_NAME_MAX = 64
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 256
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 16
+ MQ_PRIO_MAX = 32768
+ NAME_MAX = 255
+ NGROUPS_MAX = 65536
+ PATH_MAX = 4096
+ PIPE_BUF = 4096
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 1024
+ PTHREAD_STACK_MIN = 16384
+ RE_DUP_MAX = 32767
+ RTSIG_MAX = 32
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SEM_VALUE_MAX = 2147483647
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SSIZE_MAX = 9223372036854775807
+ TTY_NAME_MAX = 32
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ XATTR_LIST_MAX = 65536
+ XATTR_NAME_MAX = 255
+ XATTR_SIZE_MAX = 65536
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX1_LIM_H = 1
+ X_BITS_POSIX2_LIM_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_LIBC_LIMITS_H_ = 1
+ X_LIMITS_H___ = 0
+ X_LINUX_LIMITS_H = 0
+ X_LP64 = 1
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SOURCE = 1
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
+
+// Handle feature test macros at the start of a header.
+// 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/>.
+
+// This header is internal to glibc and should not be included outside
+// of glibc headers. Headers including it must define
+// __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
+// cannot have multiple include guards because ISO C feature test
+// macros depend on the definition of the macro when an affected
+// header is included, not when the first system header is
+// included.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
+// macro.
+
+// ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
+// macro. Most but not all symbols enabled by that macro in TS
+// 18661-1 are enabled unconditionally in C2X; the symbols in Annex F
+// still require that macro in C2X.
+
+// ISO/IEC TS 18661-4:2015 defines the
+// __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
+// functions, the symbols from this TS are enabled unconditionally in
+// C2X.
+
+// ISO/IEC TS 18661-3:2015 defines the
+// __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
+
+// Maximum length of any multibyte character in any locale.
+// We define this value here since the gcc header does not define
+// the correct value.
+
+// If we are not using GNU CC we have to define all the symbols ourself.
+// Otherwise use gcc's definitions (see below).
+
+// Get the compiler's limits.h, which defines almost all the ISO constants.
+//
+// We put this #include_next outside the double inclusion check because
+// it should be possible to include this file more than once and still get
+// the definitions from gcc's header.
+
+// The <limits.h> files in some gcc versions don't define LLONG_MIN,
+// LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for
+// ages are available.
+
+// The integer width macros are not defined by GCC's <limits.h> before
+// GCC 7, or if _GNU_SOURCE rather than
+// __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
+
+// POSIX adds things to <limits.h>.
+// 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
+// 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/>.
+
+// POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
+//
+// Never include this file directly; use <limits.h> instead.
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+
+// These are the standard-mandated minimum values.
+
+// Minimum number of operations in one list I/O call.
+
+// Minimal number of outstanding asynchronous I/O operations.
+
+// Maximum length of arguments to `execve', including environment.
+
+// Maximum simultaneous processes per real user ID.
+
+// Minimal number of timer expiration overruns.
+
+// Maximum length of a host name (not including the terminating null)
+// as returned from the GETHOSTNAME function.
+
+// Maximum link count of a file.
+
+// Maximum length of login name.
+
+// Number of bytes in a terminal canonical input queue.
+
+// Number of bytes for which space will be
+// available in a terminal input queue.
+
+// Maximum number of message queues open for a process.
+
+// Maximum number of supported message priorities.
+
+// Number of bytes in a filename.
+
+// Number of simultaneous supplementary group IDs per process.
+
+// Number of files one process can have open at once.
+
+// Number of bytes in a pathname.
+
+// Number of bytes than can be written atomically to a pipe.
+
+// The number of repeated occurrences of a BRE permitted by the
+// REGEXEC and REGCOMP functions when using the interval notation.
+
+// Minimal number of realtime signals reserved for the application.
+
+// Number of semaphores a process can have.
+
+// Maximal value of a semaphore.
+
+// Number of pending realtime signals.
+
+// Largest value of a `ssize_t'.
+
+// Number of streams a process can have open at once.
+
+// The number of bytes in a symbolic link.
+
+// The number of symbolic links that can be traversed in the
+// resolution of a pathname in the absence of a loop.
+
+// Number of timer for a process.
+
+// Maximum number of characters in a tty name.
+
+// Maximum length of a timezone name (element of `tzname').
+
+// Maximum clock resolution in nanoseconds.
+
+// Get the implementation-specific values for the above.
+// Minimum guaranteed maximum values for system limits. Linux version.
+// Copyright (C) 1993-2020 Free Software 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// The kernel header pollutes the namespace with the NR_OPEN symbol
+// and defines LINK_MAX although filesystems have different maxima. A
+// similar thing is true for OPEN_MAX: the limit can be changed at
+// runtime and therefore the macro must not be defined. Remove this
+// after including the header if necessary.
+
+// The kernel sources contain a file with all the needed information.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// Have to remove NR_OPEN?
+// Have to remove LINK_MAX?
+// Have to remove OPEN_MAX?
+// Have to remove ARG_MAX?
+
+// The number of data keys per process.
+// This is the value this implementation supports.
+
+// Controlling the iterations of destructors for thread-specific data.
+// Number of iterations this implementation does.
+
+// The number of threads per process.
+// We have no predefined limit on the number of threads.
+
+// Maximum amount by which a process can descrease its asynchronous I/O
+// priority level.
+
+// Minimum size for a thread. We are free to choose a reasonable value.
+
+// Maximum number of timer expiration overruns.
+
+// Maximum tty name length.
+
+// Maximum login name length. This is arbitrary.
+
+// Maximum host name length.
+
+// Maximum message queue priority level.
+
+// Maximum value the semaphore can have.
+
+// ssize_t is not formally required to be the signed type
+// corresponding to size_t, but it is for all configurations supported
+// by glibc.
+
+// This value is a guaranteed minimum maximum.
+// The current maximum can be got from `sysconf'.
+
+// 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
+// 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/>.
+
+// Never include this file directly; include <limits.h> instead.
+
+// The maximum `ibase' and `obase' values allowed by the `bc' utility.
+
+// The maximum number of elements allowed in an array by the `bc' utility.
+
+// The maximum `scale' value allowed by the `bc' utility.
+
+// The maximum length of a string constant accepted by the `bc' utility.
+
+// The maximum number of weights that can be assigned to an entry of
+// the LC_COLLATE `order' keyword in the locale definition file.
+
+// The maximum number of expressions that can be nested
+// within parentheses by the `expr' utility.
+
+// The maximum length, in bytes, of an input line.
+
+// The maximum number of repeated occurrences of a regular expression
+// permitted when using the interval notation `\{M,N\}'.
+
+// The maximum number of bytes in a character class name. We have no
+// fixed limit, 2048 is a high number.
+
+// These values are implementation-specific,
+// and may vary within the implementation.
+// Their precise values can be obtained from sysconf.
+
+// This value is defined like this in regex.h.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_linux_arm.go b/vendor/modernc.org/libc/limits/limits_linux_arm.go
new file mode 100644
index 00000000..cb71184c
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_linux_arm.go
@@ -0,0 +1,976 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_arm.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AIO_PRIO_DELTA_MAX = 20
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 2048
+ CHAR_BIT = 8
+ CHAR_MAX = 255
+ CHAR_MIN = 0
+ COLL_WEIGHTS_MAX = 255
+ DELAYTIMER_MAX = 2147483647
+ EXPR_NEST_MAX = 32
+ HOST_NAME_MAX = 64
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 256
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 16
+ MQ_PRIO_MAX = 32768
+ NAME_MAX = 255
+ NGROUPS_MAX = 65536
+ PATH_MAX = 4096
+ PIPE_BUF = 4096
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 1024
+ PTHREAD_STACK_MIN = 16384
+ RE_DUP_MAX = 32767
+ RTSIG_MAX = 32
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SEM_VALUE_MAX = 2147483647
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SSIZE_MAX = 2147483647
+ TTY_NAME_MAX = 32
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ USHRT_MAX = 65535
+ XATTR_LIST_MAX = 65536
+ XATTR_NAME_MAX = 255
+ XATTR_SIZE_MAX = 65536
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX1_LIM_H = 1
+ X_BITS_POSIX2_LIM_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_LIBC_LIMITS_H_ = 1
+ X_LIMITS_H___ = 0
+ X_LINUX_LIMITS_H = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SOURCE = 1
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
+
+// Handle feature test macros at the start of a header.
+// 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/>.
+
+// This header is internal to glibc and should not be included outside
+// of glibc headers. Headers including it must define
+// __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
+// cannot have multiple include guards because ISO C feature test
+// macros depend on the definition of the macro when an affected
+// header is included, not when the first system header is
+// included.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
+// macro.
+
+// ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
+// macro. Most but not all symbols enabled by that macro in TS
+// 18661-1 are enabled unconditionally in C2X; the symbols in Annex F
+// still require that macro in C2X.
+
+// ISO/IEC TS 18661-4:2015 defines the
+// __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
+// functions, the symbols from this TS are enabled unconditionally in
+// C2X.
+
+// ISO/IEC TS 18661-3:2015 defines the
+// __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
+
+// Maximum length of any multibyte character in any locale.
+// We define this value here since the gcc header does not define
+// the correct value.
+
+// If we are not using GNU CC we have to define all the symbols ourself.
+// Otherwise use gcc's definitions (see below).
+
+// Get the compiler's limits.h, which defines almost all the ISO constants.
+//
+// We put this #include_next outside the double inclusion check because
+// it should be possible to include this file more than once and still get
+// the definitions from gcc's header.
+
+// The <limits.h> files in some gcc versions don't define LLONG_MIN,
+// LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for
+// ages are available.
+
+// The integer width macros are not defined by GCC's <limits.h> before
+// GCC 7, or if _GNU_SOURCE rather than
+// __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
+
+// POSIX adds things to <limits.h>.
+// 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
+// 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/>.
+
+// POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
+//
+// Never include this file directly; use <limits.h> instead.
+
+// 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/>.
+
+// These are the standard-mandated minimum values.
+
+// Minimum number of operations in one list I/O call.
+
+// Minimal number of outstanding asynchronous I/O operations.
+
+// Maximum length of arguments to `execve', including environment.
+
+// Maximum simultaneous processes per real user ID.
+
+// Minimal number of timer expiration overruns.
+
+// Maximum length of a host name (not including the terminating null)
+// as returned from the GETHOSTNAME function.
+
+// Maximum link count of a file.
+
+// Maximum length of login name.
+
+// Number of bytes in a terminal canonical input queue.
+
+// Number of bytes for which space will be
+// available in a terminal input queue.
+
+// Maximum number of message queues open for a process.
+
+// Maximum number of supported message priorities.
+
+// Number of bytes in a filename.
+
+// Number of simultaneous supplementary group IDs per process.
+
+// Number of files one process can have open at once.
+
+// Number of bytes in a pathname.
+
+// Number of bytes than can be written atomically to a pipe.
+
+// The number of repeated occurrences of a BRE permitted by the
+// REGEXEC and REGCOMP functions when using the interval notation.
+
+// Minimal number of realtime signals reserved for the application.
+
+// Number of semaphores a process can have.
+
+// Maximal value of a semaphore.
+
+// Number of pending realtime signals.
+
+// Largest value of a `ssize_t'.
+
+// Number of streams a process can have open at once.
+
+// The number of bytes in a symbolic link.
+
+// The number of symbolic links that can be traversed in the
+// resolution of a pathname in the absence of a loop.
+
+// Number of timer for a process.
+
+// Maximum number of characters in a tty name.
+
+// Maximum length of a timezone name (element of `tzname').
+
+// Maximum clock resolution in nanoseconds.
+
+// Get the implementation-specific values for the above.
+// Minimum guaranteed maximum values for system limits. Linux version.
+// Copyright (C) 1993-2020 Free Software 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// The kernel header pollutes the namespace with the NR_OPEN symbol
+// and defines LINK_MAX although filesystems have different maxima. A
+// similar thing is true for OPEN_MAX: the limit can be changed at
+// runtime and therefore the macro must not be defined. Remove this
+// after including the header if necessary.
+
+// The kernel sources contain a file with all the needed information.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// Have to remove NR_OPEN?
+// Have to remove LINK_MAX?
+// Have to remove OPEN_MAX?
+// Have to remove ARG_MAX?
+
+// The number of data keys per process.
+// This is the value this implementation supports.
+
+// Controlling the iterations of destructors for thread-specific data.
+// Number of iterations this implementation does.
+
+// The number of threads per process.
+// We have no predefined limit on the number of threads.
+
+// Maximum amount by which a process can descrease its asynchronous I/O
+// priority level.
+
+// Minimum size for a thread. We are free to choose a reasonable value.
+
+// Maximum number of timer expiration overruns.
+
+// Maximum tty name length.
+
+// Maximum login name length. This is arbitrary.
+
+// Maximum host name length.
+
+// Maximum message queue priority level.
+
+// Maximum value the semaphore can have.
+
+// ssize_t is not formally required to be the signed type
+// corresponding to size_t, but it is for all configurations supported
+// by glibc.
+
+// This value is a guaranteed minimum maximum.
+// The current maximum can be got from `sysconf'.
+
+// 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
+// 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/>.
+
+// Never include this file directly; include <limits.h> instead.
+
+// The maximum `ibase' and `obase' values allowed by the `bc' utility.
+
+// The maximum number of elements allowed in an array by the `bc' utility.
+
+// The maximum `scale' value allowed by the `bc' utility.
+
+// The maximum length of a string constant accepted by the `bc' utility.
+
+// The maximum number of weights that can be assigned to an entry of
+// the LC_COLLATE `order' keyword in the locale definition file.
+
+// The maximum number of expressions that can be nested
+// within parentheses by the `expr' utility.
+
+// The maximum length, in bytes, of an input line.
+
+// The maximum number of repeated occurrences of a regular expression
+// permitted when using the interval notation `\{M,N\}'.
+
+// The maximum number of bytes in a character class name. We have no
+// fixed limit, 2048 is a high number.
+
+// These values are implementation-specific,
+// and may vary within the implementation.
+// Their precise values can be obtained from sysconf.
+
+// This value is defined like this in regex.h.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_linux_arm64.go b/vendor/modernc.org/libc/limits/limits_linux_arm64.go
new file mode 100644
index 00000000..c1f0aa10
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_linux_arm64.go
@@ -0,0 +1,995 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_arm64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AIO_PRIO_DELTA_MAX = 20
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 2048
+ CHAR_BIT = 8
+ CHAR_MAX = 255
+ CHAR_MIN = 0
+ COLL_WEIGHTS_MAX = 255
+ DELAYTIMER_MAX = 2147483647
+ EXPR_NEST_MAX = 32
+ HOST_NAME_MAX = 64
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 256
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 16
+ MQ_PRIO_MAX = 32768
+ NAME_MAX = 255
+ NGROUPS_MAX = 65536
+ PATH_MAX = 4096
+ PIPE_BUF = 4096
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 1024
+ PTHREAD_STACK_MIN = 131072
+ RE_DUP_MAX = 32767
+ RTSIG_MAX = 32
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SEM_VALUE_MAX = 2147483647
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SSIZE_MAX = 9223372036854775807
+ TTY_NAME_MAX = 32
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ XATTR_LIST_MAX = 65536
+ XATTR_NAME_MAX = 255
+ XATTR_SIZE_MAX = 65536
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX1_LIM_H = 1
+ X_BITS_POSIX2_LIM_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_LIBC_LIMITS_H_ = 1
+ X_LIMITS_H___ = 0
+ X_LINUX_LIMITS_H = 0
+ X_LP64 = 1
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SOURCE = 1
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
+
+// Handle feature test macros at the start of a header.
+// 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/>.
+
+// This header is internal to glibc and should not be included outside
+// of glibc headers. Headers including it must define
+// __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
+// cannot have multiple include guards because ISO C feature test
+// macros depend on the definition of the macro when an affected
+// header is included, not when the first system header is
+// included.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
+// macro.
+
+// ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
+// macro. Most but not all symbols enabled by that macro in TS
+// 18661-1 are enabled unconditionally in C2X; the symbols in Annex F
+// still require that macro in C2X.
+
+// ISO/IEC TS 18661-4:2015 defines the
+// __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
+// functions, the symbols from this TS are enabled unconditionally in
+// C2X.
+
+// ISO/IEC TS 18661-3:2015 defines the
+// __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
+
+// Maximum length of any multibyte character in any locale.
+// We define this value here since the gcc header does not define
+// the correct value.
+
+// If we are not using GNU CC we have to define all the symbols ourself.
+// Otherwise use gcc's definitions (see below).
+
+// Get the compiler's limits.h, which defines almost all the ISO constants.
+//
+// We put this #include_next outside the double inclusion check because
+// it should be possible to include this file more than once and still get
+// the definitions from gcc's header.
+
+// The <limits.h> files in some gcc versions don't define LLONG_MIN,
+// LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for
+// ages are available.
+
+// The integer width macros are not defined by GCC's <limits.h> before
+// GCC 7, or if _GNU_SOURCE rather than
+// __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
+
+// POSIX adds things to <limits.h>.
+// 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
+// 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/>.
+
+// POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
+//
+// Never include this file directly; use <limits.h> instead.
+
+// 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/>.
+
+// These are the standard-mandated minimum values.
+
+// Minimum number of operations in one list I/O call.
+
+// Minimal number of outstanding asynchronous I/O operations.
+
+// Maximum length of arguments to `execve', including environment.
+
+// Maximum simultaneous processes per real user ID.
+
+// Minimal number of timer expiration overruns.
+
+// Maximum length of a host name (not including the terminating null)
+// as returned from the GETHOSTNAME function.
+
+// Maximum link count of a file.
+
+// Maximum length of login name.
+
+// Number of bytes in a terminal canonical input queue.
+
+// Number of bytes for which space will be
+// available in a terminal input queue.
+
+// Maximum number of message queues open for a process.
+
+// Maximum number of supported message priorities.
+
+// Number of bytes in a filename.
+
+// Number of simultaneous supplementary group IDs per process.
+
+// Number of files one process can have open at once.
+
+// Number of bytes in a pathname.
+
+// Number of bytes than can be written atomically to a pipe.
+
+// The number of repeated occurrences of a BRE permitted by the
+// REGEXEC and REGCOMP functions when using the interval notation.
+
+// Minimal number of realtime signals reserved for the application.
+
+// Number of semaphores a process can have.
+
+// Maximal value of a semaphore.
+
+// Number of pending realtime signals.
+
+// Largest value of a `ssize_t'.
+
+// Number of streams a process can have open at once.
+
+// The number of bytes in a symbolic link.
+
+// The number of symbolic links that can be traversed in the
+// resolution of a pathname in the absence of a loop.
+
+// Number of timer for a process.
+
+// Maximum number of characters in a tty name.
+
+// Maximum length of a timezone name (element of `tzname').
+
+// Maximum clock resolution in nanoseconds.
+
+// Get the implementation-specific values for the above.
+// Minimum guaranteed maximum values for system limits. Linux version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// The kernel header pollutes the namespace with the NR_OPEN symbol
+// and defines LINK_MAX although filesystems have different maxima. A
+// similar thing is true for OPEN_MAX: the limit can be changed at
+// runtime and therefore the macro must not be defined. Remove this
+// after including the header if necessary.
+
+// The kernel sources contain a file with all the needed information.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// Have to remove NR_OPEN?
+// Have to remove LINK_MAX?
+// Have to remove OPEN_MAX?
+// Have to remove ARG_MAX?
+
+// The number of data keys per process.
+// This is the value this implementation supports.
+
+// Controlling the iterations of destructors for thread-specific data.
+// Number of iterations this implementation does.
+
+// The number of threads per process.
+// We have no predefined limit on the number of threads.
+
+// Maximum amount by which a process can descrease its asynchronous I/O
+// priority level.
+
+// Minimum size for a thread. At least two pages for systems with 64k
+// pages.
+
+// Maximum number of timer expiration overruns.
+
+// Maximum tty name length.
+
+// Maximum login name length. This is arbitrary.
+
+// Maximum host name length.
+
+// Maximum message queue priority level.
+
+// Maximum value the semaphore can have.
+
+// ssize_t is not formally required to be the signed type
+// corresponding to size_t, but it is for all configurations supported
+// by glibc.
+
+// This value is a guaranteed minimum maximum.
+// The current maximum can be got from `sysconf'.
+
+// 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
+// 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/>.
+
+// Never include this file directly; include <limits.h> instead.
+
+// The maximum `ibase' and `obase' values allowed by the `bc' utility.
+
+// The maximum number of elements allowed in an array by the `bc' utility.
+
+// The maximum `scale' value allowed by the `bc' utility.
+
+// The maximum length of a string constant accepted by the `bc' utility.
+
+// The maximum number of weights that can be assigned to an entry of
+// the LC_COLLATE `order' keyword in the locale definition file.
+
+// The maximum number of expressions that can be nested
+// within parentheses by the `expr' utility.
+
+// The maximum length, in bytes, of an input line.
+
+// The maximum number of repeated occurrences of a regular expression
+// permitted when using the interval notation `\{M,N\}'.
+
+// The maximum number of bytes in a character class name. We have no
+// fixed limit, 2048 is a high number.
+
+// These values are implementation-specific,
+// and may vary within the implementation.
+// Their precise values can be obtained from sysconf.
+
+// This value is defined like this in regex.h.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_linux_s390x.go b/vendor/modernc.org/libc/limits/limits_linux_s390x.go
new file mode 100644
index 00000000..4e0c0045
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_linux_s390x.go
@@ -0,0 +1,939 @@
+// Code generated by 'ccgo limits/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 limits/limits_linux_s390x.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AIO_PRIO_DELTA_MAX = 20
+ BC_BASE_MAX = 99
+ BC_DIM_MAX = 2048
+ BC_SCALE_MAX = 99
+ BC_STRING_MAX = 1000
+ CHARCLASS_NAME_MAX = 2048
+ CHAR_BIT = 8
+ CHAR_MAX = 255
+ CHAR_MIN = 0
+ COLL_WEIGHTS_MAX = 255
+ DELAYTIMER_MAX = 2147483647
+ EXPR_NEST_MAX = 32
+ HOST_NAME_MAX = 64
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LINE_MAX = 2048
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 256
+ LONG_MAX = 9223372036854775807
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 16
+ MQ_PRIO_MAX = 32768
+ NAME_MAX = 255
+ NGROUPS_MAX = 65536
+ PATH_MAX = 4096
+ PIPE_BUF = 4096
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 1024
+ PTHREAD_STACK_MIN = 16384
+ RE_DUP_MAX = 32767
+ RTSIG_MAX = 32
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SEM_VALUE_MAX = 2147483647
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SSIZE_MAX = 9223372036854775807
+ TTY_NAME_MAX = 32
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_MAX = 18446744073709551615
+ USHRT_MAX = 65535
+ XATTR_LIST_MAX = 65536
+ XATTR_NAME_MAX = 255
+ XATTR_SIZE_MAX = 65536
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX1_LIM_H = 1
+ X_BITS_POSIX2_LIM_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_LIBC_LIMITS_H_ = 1
+ X_LIMITS_H___ = 0
+ X_LINUX_LIMITS_H = 0
+ X_LP64 = 1
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_RTSIG_MAX = 8
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SOURCE = 1
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
+
+// Handle feature test macros at the start of a header.
+// 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/>.
+
+// This header is internal to glibc and should not be included outside
+// of glibc headers. Headers including it must define
+// __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
+// cannot have multiple include guards because ISO C feature test
+// macros depend on the definition of the macro when an affected
+// header is included, not when the first system header is
+// included.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
+// macro.
+
+// ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
+// macro. Most but not all symbols enabled by that macro in TS
+// 18661-1 are enabled unconditionally in C2X; the symbols in Annex F
+// still require that macro in C2X.
+
+// ISO/IEC TS 18661-4:2015 defines the
+// __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
+// functions, the symbols from this TS are enabled unconditionally in
+// C2X.
+
+// ISO/IEC TS 18661-3:2015 defines the
+// __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
+
+// Maximum length of any multibyte character in any locale.
+// We define this value here since the gcc header does not define
+// the correct value.
+
+// If we are not using GNU CC we have to define all the symbols ourself.
+// Otherwise use gcc's definitions (see below).
+
+// Get the compiler's limits.h, which defines almost all the ISO constants.
+//
+// We put this #include_next outside the double inclusion check because
+// it should be possible to include this file more than once and still get
+// the definitions from gcc's header.
+
+// The <limits.h> files in some gcc versions don't define LLONG_MIN,
+// LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for
+// ages are available.
+
+// The integer width macros are not defined by GCC's <limits.h> before
+// GCC 7, or if _GNU_SOURCE rather than
+// __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
+
+// POSIX adds things to <limits.h>.
+// 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
+// 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/>.
+
+// POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
+//
+// Never include this file directly; use <limits.h> instead.
+
+// Determine the wordsize from the preprocessor defines.
+
+// These are the standard-mandated minimum values.
+
+// Minimum number of operations in one list I/O call.
+
+// Minimal number of outstanding asynchronous I/O operations.
+
+// Maximum length of arguments to `execve', including environment.
+
+// Maximum simultaneous processes per real user ID.
+
+// Minimal number of timer expiration overruns.
+
+// Maximum length of a host name (not including the terminating null)
+// as returned from the GETHOSTNAME function.
+
+// Maximum link count of a file.
+
+// Maximum length of login name.
+
+// Number of bytes in a terminal canonical input queue.
+
+// Number of bytes for which space will be
+// available in a terminal input queue.
+
+// Maximum number of message queues open for a process.
+
+// Maximum number of supported message priorities.
+
+// Number of bytes in a filename.
+
+// Number of simultaneous supplementary group IDs per process.
+
+// Number of files one process can have open at once.
+
+// Number of bytes in a pathname.
+
+// Number of bytes than can be written atomically to a pipe.
+
+// The number of repeated occurrences of a BRE permitted by the
+// REGEXEC and REGCOMP functions when using the interval notation.
+
+// Minimal number of realtime signals reserved for the application.
+
+// Number of semaphores a process can have.
+
+// Maximal value of a semaphore.
+
+// Number of pending realtime signals.
+
+// Largest value of a `ssize_t'.
+
+// Number of streams a process can have open at once.
+
+// The number of bytes in a symbolic link.
+
+// The number of symbolic links that can be traversed in the
+// resolution of a pathname in the absence of a loop.
+
+// Number of timer for a process.
+
+// Maximum number of characters in a tty name.
+
+// Maximum length of a timezone name (element of `tzname').
+
+// Maximum clock resolution in nanoseconds.
+
+// Get the implementation-specific values for the above.
+// Minimum guaranteed maximum values for system limits. Linux version.
+// Copyright (C) 1993-2020 Free Software 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// The kernel header pollutes the namespace with the NR_OPEN symbol
+// and defines LINK_MAX although filesystems have different maxima. A
+// similar thing is true for OPEN_MAX: the limit can be changed at
+// runtime and therefore the macro must not be defined. Remove this
+// after including the header if necessary.
+
+// The kernel sources contain a file with all the needed information.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// Have to remove NR_OPEN?
+// Have to remove LINK_MAX?
+// Have to remove OPEN_MAX?
+// Have to remove ARG_MAX?
+
+// The number of data keys per process.
+// This is the value this implementation supports.
+
+// Controlling the iterations of destructors for thread-specific data.
+// Number of iterations this implementation does.
+
+// The number of threads per process.
+// We have no predefined limit on the number of threads.
+
+// Maximum amount by which a process can descrease its asynchronous I/O
+// priority level.
+
+// Minimum size for a thread. We are free to choose a reasonable value.
+
+// Maximum number of timer expiration overruns.
+
+// Maximum tty name length.
+
+// Maximum login name length. This is arbitrary.
+
+// Maximum host name length.
+
+// Maximum message queue priority level.
+
+// Maximum value the semaphore can have.
+
+// ssize_t is not formally required to be the signed type
+// corresponding to size_t, but it is for all configurations supported
+// by glibc.
+
+// This value is a guaranteed minimum maximum.
+// The current maximum can be got from `sysconf'.
+
+// 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
+// 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/>.
+
+// Never include this file directly; include <limits.h> instead.
+
+// The maximum `ibase' and `obase' values allowed by the `bc' utility.
+
+// The maximum number of elements allowed in an array by the `bc' utility.
+
+// The maximum `scale' value allowed by the `bc' utility.
+
+// The maximum length of a string constant accepted by the `bc' utility.
+
+// The maximum number of weights that can be assigned to an entry of
+// the LC_COLLATE `order' keyword in the locale definition file.
+
+// The maximum number of expressions that can be nested
+// within parentheses by the `expr' utility.
+
+// The maximum length, in bytes, of an input line.
+
+// The maximum number of repeated occurrences of a regular expression
+// permitted when using the interval notation `\{M,N\}'.
+
+// The maximum number of bytes in a character class name. We have no
+// fixed limit, 2048 is a high number.
+
+// These values are implementation-specific,
+// and may vary within the implementation.
+// Their precise values can be obtained from sysconf.
+
+// This value is defined like this in regex.h.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_netbsd_amd64.go b/vendor/modernc.org/libc/limits/limits_netbsd_amd64.go
new file mode 100644
index 00000000..7166a522
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_netbsd_amd64.go
@@ -0,0 +1,460 @@
+// Code generated by 'ccgo limits/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 limits/limits_netbsd_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 262144
+ BC_BASE_MAX = 2147483647
+ BC_DIM_MAX = 65535
+ BC_SCALE_MAX = 2147483647
+ BC_STRING_MAX = 2147483647
+ CHARCLASS_NAME_MAX = 14
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ CHILD_MAX = 160
+ COLL_WEIGHTS_MAX = 2
+ DBL_DIG = 15
+ EXPR_NEST_MAX = 32
+ FLT_DIG = 6
+ GID_MAX = 2147483647
+ INT_MAX = 0x7fffffff
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LLONG_MAX = 0x7fffffffffffffff
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 17
+ LONG_BIT = 64
+ LONG_MAX = 0x7fffffffffffffff
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 32
+ NAME_MAX = 511
+ NGROUPS_MAX = 16
+ NL_ARGMAX = 9
+ NL_LANGMAX = 14
+ NL_MSGMAX = 32767
+ NL_NMAX = 1
+ NL_SETMAX = 255
+ NL_TEXTMAX = 2048
+ NZERO = 20
+ OPEN_MAX = 128
+ PASS_MAX = 128
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_KEYS_MAX = 256
+ PTHREAD_THREADS_MAX = 64
+ QUAD_MAX = 0x7fffffffffffffff
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 0x7f
+ SCHAR_MIN = -128
+ SHRT_MAX = 0x7fff
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ SSIZE_MIN = -9223372036854775808
+ TMP_MAX = 308915776
+ UCHAR_MAX = 0xff
+ UID_MAX = 2147483647
+ UINT_MAX = 0xffffffff
+ ULLONG_MAX = 0xffffffffffffffff
+ ULONG_MAX = 0xffffffffffffffff
+ UQUAD_MAX = 0xffffffffffffffff
+ USHRT_MAX = 0xffff
+ WORD_BIT = 32
+ X_FILE_OFFSET_BITS = 64
+ X_GETGR_R_SIZE_MAX = 1024
+ X_GETPW_R_SIZE_MAX = 1024
+ X_LIMITS_H_ = 0
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_AIO_LISTIO_MAX = 2
+ X_POSIX_AIO_MAX = 1
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_DELAYTIMER_MAX = 32
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_MQ_OPEN_MAX = 8
+ X_POSIX_MQ_PRIO_MAX = 32
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_REALTIME_SIGNALS = 200112
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SIGQUEUE_MAX = 32
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 64
+ X_POSIX_TIMER_MAX = 32
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_SYS_SYSLIMITS_H_ = 0
+ X_X86_64_LIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 256
+ X_XOPEN_PATH_MAX = 1024
+)
+
+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 */
+
+// $NetBSD: limits.h,v 1.40 2016/08/04 06:43:43 christos Exp $
+
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.2 (Berkeley) 1/4/94
+
+// $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>
+
+// We have not implemented these yet
+//
+// _POSIX_THREAD_ATTR_STACKADDR
+// _POSIX_THREAD_ATTR_STACKSIZE
+// _POSIX_THREAD_CPUTIME
+// _POSIX_THREAD_PRIORITY_SCHEDULING
+// _POSIX_THREAD_PRIO_INHERIT
+// _POSIX_THREAD_PRIO_PROTECT
+// _POSIX_THREAD_PROCESS_SHARED
+// _POSIX_THREAD_SAFE_FUNCTIONS
+// _POSIX_THREAD_SPORADIC_SERVER
+
+// The following 3 are defined in
+// Open Group Base Specifications Issue 7
+
+// These are the correct names, defined in terms of the above
+// except for PTHREAD_KEYS_MAX which is bigger than standard
+// mandated minimum value _POSIX_THREAD_KEYS_MAX.
+// Not yet: PTHREAD_STACK_MIN
+
+// X/Open CAE Specifications,
+// adopted in IEEE Std 1003.1-2001 XSI.
+
+// IEEE Std 1003.1-2001 TSF
+
+// Always ensure that this is consistent with <stdio.h>
+
+// X/Open Extended API set 2 (a.k.a. C063)
+// This hides unimplemented functions from GNU configure until
+// we are done implementing them.
+
+// $NetBSD: limits.h,v 1.15 2019/01/21 20:22:48 dholland Exp $
+
+// Copyright (c) 1988 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.
+//
+// @(#)limits.h 7.2 (Berkeley) 6/28/90
+
+// $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: syslimits.h,v 1.28 2015/08/21 07:19:39 uebayasi Exp $
+
+// Copyright (c) 1988, 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/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>
+
+// kept in sync with MAXNAMLEN
+
+// IEEE Std 1003.1c-95, adopted in X/Open CAE Specification Issue 5 Version 2
+
+// X/Open CAE Specification Issue 5 Version 2
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_openbsd_amd64.go b/vendor/modernc.org/libc/limits/limits_openbsd_amd64.go
new file mode 100644
index 00000000..f98757d4
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_openbsd_amd64.go
@@ -0,0 +1,540 @@
+// Code generated by 'ccgo limits/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 limits/limits_openbsd_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 524288
+ BC_BASE_MAX = 2147483647
+ BC_DIM_MAX = 65535
+ BC_SCALE_MAX = 2147483647
+ BC_STRING_MAX = 2147483647
+ CHAR_BIT = 8
+ CHAR_MAX = 0x7f
+ CHAR_MIN = -128
+ CHILD_MAX = 80
+ COLL_WEIGHTS_MAX = 2
+ EXPR_NEST_MAX = 32
+ GID_MAX = 4294967295
+ HOST_NAME_MAX = 255
+ INT_MAX = 0x7fffffff
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LLONG_MAX = 0x7fffffffffffffff
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 32
+ LONG_BIT = 64
+ LONG_MAX = 0x7fffffffffffffff
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 4
+ NAME_MAX = 255
+ NGROUPS_MAX = 16
+ NL_ARGMAX = 9
+ NL_LANGMAX = 14
+ NL_MSGMAX = 32767
+ NL_SETMAX = 255
+ NL_TEXTMAX = 255
+ NZERO = 20
+ OPEN_MAX = 64
+ PATH_MAX = 1024
+ PIPE_BUF = 512
+ QUAD_MAX = 0x7fffffffffffffff
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SCHAR_MAX = 0x7f
+ SCHAR_MIN = -128
+ SEM_VALUE_MAX = 4294967295
+ SHRT_MAX = 0x7fff
+ SHRT_MIN = -32768
+ SIZE_T_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ SYMLINK_MAX = 1024
+ SYMLOOP_MAX = 32
+ TTY_NAME_MAX = 260
+ UCHAR_MAX = 0xff
+ UID_MAX = 4294967295
+ UINT_MAX = 0xffffffff
+ ULLONG_MAX = 0xffffffffffffffff
+ ULONG_MAX = 0xffffffffffffffff
+ UQUAD_MAX = 0xffffffffffffffff
+ USHRT_MAX = 0xffff
+ WORD_BIT = 32
+ X_FILE_OFFSET_BITS = 64
+ X_LIMITS_H_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_LIMITS_H_ = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 4
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_RET_PROTECTOR = 1
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_LIMITS_H_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+ Unix = 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 */
+
+// $OpenBSD: limits.h,v 1.19 2015/01/20 22:09:50 tedu Exp $
+// $NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $
+
+// Copyright (c) 1988 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.
+//
+// @(#)limits.h 5.9 (Berkeley) 4/3/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: limits.h,v 1.10 2012/06/30 20:21:10 guenther Exp $
+// Copyright (c) 2002 Marc Espie.
+//
+// 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 OPENBSD PROJECT 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 OPENBSD
+// PROJECT 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.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// Common definitions for limits.h.
+
+// Legacy
+// $OpenBSD: limits.h,v 1.6 2015/04/30 13:42:08 millert Exp $
+
+// Copyright (c) 1988 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.
+//
+// @(#)limits.h 7.2 (Berkeley) 6/28/90
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// max value for unsigned long
+// max value for a signed long
+// min value for a signed long
+
+// max value for unsigned long long
+// max value for a signed long long
+// min value for a signed long long
+
+// $OpenBSD: syslimits.h,v 1.14 2020/04/02 18:00:00 deraadt Exp $
+// $NetBSD: syslimits.h,v 1.12 1995/10/05 05:26:19 thorpej Exp $
+
+// Copyright (c) 1988, 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_windows_386.go b/vendor/modernc.org/libc/limits/limits_windows_386.go
new file mode 100644
index 00000000..7a68f646
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_windows_386.go
@@ -0,0 +1,410 @@
+// Code generated by 'ccgo limits/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 limits/limits_windows_386.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MB_LEN_MAX = 5
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ PATH_MAX = 260
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_MAX = 4294967295
+ SSIZE_MAX = 2147483647
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ USHRT_MAX = 65535
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_I16_MAX = 32767
+ X_I16_MIN = -32768
+ X_I32_MAX = 2147483647
+ X_I32_MIN = -2147483648
+ X_I64_MAX = 9223372036854775807
+ X_I64_MIN = -9223372036854775808
+ X_I8_MAX = 127
+ X_I8_MIN = -128
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_LIMITS = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LIMITS_H___ = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UI16_MAX = 0xffff
+ X_UI32_MAX = 0xffffffff
+ X_UI64_MAX = 0xffffffffffffffff
+ X_UI8_MAX = 0xff
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+// File system limits
+//
+// NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
+// required for the NUL. TODO: Test?
+// NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
+// are semantically identical, with a limit of 259 characters for the
+// path name, plus one for a terminating NUL, for a total of 260.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/limits/limits_windows_amd64.go b/vendor/modernc.org/libc/limits/limits_windows_amd64.go
new file mode 100644
index 00000000..de7ff717
--- /dev/null
+++ b/vendor/modernc.org/libc/limits/limits_windows_amd64.go
@@ -0,0 +1,409 @@
+// Code generated by 'ccgo limits\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 limits\limits_windows_amd64.go -pkgname limits', DO NOT EDIT.
+
+package limits
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MB_LEN_MAX = 5
+ 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
+ PATH_MAX = 260
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ USHRT_MAX = 65535
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_LIMITS_H_ = 0
+ X_I16_MAX = 32767
+ X_I16_MIN = -32768
+ X_I32_MAX = 2147483647
+ X_I32_MIN = -2147483648
+ X_I64_MAX = 9223372036854775807
+ X_I64_MIN = -9223372036854775808
+ X_I8_MAX = 127
+ X_I8_MIN = -128
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_LIMITS = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LIMITS_H___ = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_PGLOBAL = 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_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UI16_MAX = 0xffff
+ X_UI32_MAX = 0xffffffff
+ X_UI64_MAX = 0xffffffffffffffff
+ X_UI8_MAX = 0xff
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+// File system limits
+//
+// NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
+// required for the NUL. TODO: Test?
+// NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
+// are semantically identical, with a limit of 259 characters for the
+// path name, plus one for a terminating NUL, for a total of 260.
+
+// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/mem.go b/vendor/modernc.org/libc/mem.go
new file mode 100644
index 00000000..50056c75
--- /dev/null
+++ b/vendor/modernc.org/libc/mem.go
@@ -0,0 +1,118 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !libc.membrk && !libc.memgrind
+// +build !libc.membrk,!libc.memgrind
+
+package libc // import "modernc.org/libc"
+
+import (
+ "modernc.org/libc/errno"
+ "modernc.org/libc/sys/types"
+ "modernc.org/memory"
+)
+
+const memgrind = false
+
+var (
+ allocator memory.Allocator
+)
+
+// void *malloc(size_t size);
+func Xmalloc(t *TLS, n types.Size_t) uintptr {
+ if n == 0 {
+ return 0
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ p, err := allocator.UintptrMalloc(int(n))
+ if err != nil {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ return p
+}
+
+// void *calloc(size_t nmemb, size_t size);
+func Xcalloc(t *TLS, n, size types.Size_t) uintptr {
+ rq := int(n * size)
+ if rq == 0 {
+ return 0
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ p, err := allocator.UintptrCalloc(int(n * size))
+ if err != nil {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ return p
+}
+
+// void *realloc(void *ptr, size_t size);
+func Xrealloc(t *TLS, ptr uintptr, size types.Size_t) uintptr {
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ p, err := allocator.UintptrRealloc(ptr, int(size))
+ if err != nil {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ return p
+}
+
+// void free(void *ptr);
+func Xfree(t *TLS, p uintptr) {
+ if p == 0 {
+ return
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ allocator.UintptrFree(p)
+}
+
+func UsableSize(p uintptr) types.Size_t {
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ return types.Size_t(memory.UintptrUsableSize(p))
+}
+
+// MemAuditStart locks the memory allocator, initializes and enables memory
+// auditing. Finaly it unlocks the memory allocator.
+//
+// Some memory handling errors, like double free or freeing of unallocated
+// memory, will panic when memory auditing is enabled.
+//
+// This memory auditing functionality has to be enabled using the libc.memgrind
+// build tag.
+//
+// It is intended only for debug/test builds. It slows down memory allocation
+// routines and it has additional memory costs.
+func MemAuditStart() {}
+
+// MemAuditReport locks the memory allocator, reports memory leaks, if any.
+// Finally it disables memory auditing and unlocks the memory allocator.
+//
+// This memory auditing functionality has to be enabled using the libc.memgrind
+// build tag.
+//
+// It is intended only for debug/test builds. It slows down memory allocation
+// routines and it has additional memory costs.
+func MemAuditReport() error { return nil }
diff --git a/vendor/modernc.org/libc/mem_brk.go b/vendor/modernc.org/libc/mem_brk.go
new file mode 100644
index 00000000..860a1a0a
--- /dev/null
+++ b/vendor/modernc.org/libc/mem_brk.go
@@ -0,0 +1,105 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build libc.membrk && !libc.memgrind
+// +build libc.membrk,!libc.memgrind
+
+// This is a debug-only version of the memory handling functions. When a
+// program is built with -tags=libc.membrk a simple but safe version of malloc
+// and friends is used that works like sbrk(2). Additionally free becomes a
+// nop.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "unsafe"
+
+ "modernc.org/libc/errno"
+ "modernc.org/libc/sys/types"
+)
+
+const (
+ heapSize = 20 << 30 // Adjust for your debugging session requirements and system RAM size.
+ heapAlign = 16
+ memgrind = false
+)
+
+var (
+ heap = make([]byte, heapSize)
+ heapP = uintptr(unsafe.Pointer(&heap[heapAlign]))
+ heapLast = uintptr(unsafe.Pointer(&heap[heapSize-1]))
+)
+
+// void *malloc(size_t size);
+func Xmalloc(t *TLS, n types.Size_t) uintptr {
+ if n == 0 {
+ return 0
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ n2 := uintptr(n) + uintptrSize // reserve space for recording block size
+ p := roundup(heapP, 16)
+ if p+uintptr(n2) >= heapLast {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ heapP = p + uintptr(n2)
+ *(*uintptr)(unsafe.Pointer(p - uintptrSize)) = uintptr(n)
+ return p
+}
+
+// void *calloc(size_t nmemb, size_t size);
+func Xcalloc(t *TLS, n, size types.Size_t) uintptr {
+ return Xmalloc(t, n*size)
+}
+
+// void *realloc(void *ptr, size_t size);
+func Xrealloc(t *TLS, ptr uintptr, size types.Size_t) uintptr {
+ switch {
+ case ptr != 0 && size != 0:
+ p := Xmalloc(t, size)
+ sz0 := UsableSize(ptr)
+ if p != 0 {
+ copy((*RawMem)(unsafe.Pointer(p))[:size:size], (*RawMem)(unsafe.Pointer(ptr))[:sz0:sz0])
+ }
+ return p
+ case ptr == 0 && size != 0:
+ return Xmalloc(t, size)
+ }
+ return 0
+}
+
+// void free(void *ptr);
+func Xfree(t *TLS, p uintptr) {}
+
+func UsableSize(p uintptr) types.Size_t {
+ return types.Size_t(*(*uintptr)(unsafe.Pointer(p - uintptrSize)))
+}
+
+// MemAuditStart locks the memory allocator, initializes and enables memory
+// auditing. Finaly it unlocks the memory allocator.
+//
+// Some memory handling errors, like double free or freeing of unallocated
+// memory, will panic when memory auditing is enabled.
+//
+// This memory auditing functionality has to be enabled using the libc.memgrind
+// build tag.
+//
+// It is intended only for debug/test builds. It slows down memory allocation
+// routines and it has additional memory costs.
+func MemAuditStart() {}
+
+// MemAuditReport locks the memory allocator, reports memory leaks, if any.
+// Finally it disables memory auditing and unlocks the memory allocator.
+//
+// This memory auditing functionality has to be enabled using the libc.memgrind
+// build tag.
+//
+// It is intended only for debug/test builds. It slows down memory allocation
+// routines and it has additional memory costs.
+func MemAuditReport() error { return nil }
diff --git a/vendor/modernc.org/libc/memgrind.go b/vendor/modernc.org/libc/memgrind.go
new file mode 100644
index 00000000..70044c07
--- /dev/null
+++ b/vendor/modernc.org/libc/memgrind.go
@@ -0,0 +1,320 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !libc.membrk && libc.memgrind
+// +build !libc.membrk,libc.memgrind
+
+// This is a debug-only version of the memory handling functions. When a
+// program is built with -tags=libc.memgrind the functions MemAuditStart and
+// MemAuditReport can be used to check for memory leaks.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "runtime"
+ "sort"
+ "strings"
+ "unsafe"
+
+ "modernc.org/libc/errno"
+ "modernc.org/libc/sys/types"
+ "modernc.org/memory"
+)
+
+const memgrind = true
+
+type memReportItem struct {
+ p, pc uintptr
+ s string
+}
+
+func (it *memReportItem) String() string {
+ more := it.s
+ if more != "" {
+ a := strings.Split(more, "\n")
+ more = "\n\t\t" + strings.Join(a, "\n\t\t")
+ }
+ return fmt.Sprintf("\t%s: %#x%s", pc2origin(it.pc), it.p, more)
+}
+
+type memReport []memReportItem
+
+func (r memReport) Error() string {
+ a := []string{"memory leaks"}
+ for _, v := range r {
+ a = append(a, v.String())
+ }
+ return strings.Join(a, "\n")
+}
+
+var (
+ allocator memory.Allocator
+ allocs map[uintptr]uintptr // addr: caller
+ allocsMore map[uintptr]string
+ frees map[uintptr]uintptr // addr: caller
+ memAudit memReport
+ memAuditEnabled bool
+)
+
+func pc2origin(pc uintptr) string {
+ f := runtime.FuncForPC(pc)
+ var fn, fns string
+ var fl int
+ if f != nil {
+ fn, fl = f.FileLine(pc)
+ fns = f.Name()
+ if x := strings.LastIndex(fns, "."); x > 0 {
+ fns = fns[x+1:]
+ }
+ }
+ return fmt.Sprintf("%s:%d:%s", fn, fl, fns)
+}
+
+// void *malloc(size_t size);
+func Xmalloc(t *TLS, size types.Size_t) uintptr {
+ if size == 0 {
+ return 0
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ p, err := allocator.UintptrCalloc(int(size))
+ if dmesgs {
+ dmesg("%v: %v -> %#x, %v", origin(1), size, p, err)
+ }
+ if err != nil {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ if memAuditEnabled {
+ pc, _, _, ok := runtime.Caller(1)
+ if !ok {
+ panic("cannot obtain caller's PC")
+ }
+
+ delete(frees, p)
+ if pc0, ok := allocs[p]; ok {
+ dmesg("%v: malloc returns same address twice, previous call at %v:", pc2origin(pc), pc2origin(pc0))
+ panic(fmt.Errorf("%v: malloc returns same address twice, previous call at %v:", pc2origin(pc), pc2origin(pc0)))
+ }
+
+ allocs[p] = pc
+ }
+ return p
+}
+
+// void *calloc(size_t nmemb, size_t size);
+func Xcalloc(t *TLS, n, size types.Size_t) uintptr {
+ rq := int(n * size)
+ if rq == 0 {
+ return 0
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ p, err := allocator.UintptrCalloc(int(n * size))
+ if dmesgs {
+ dmesg("%v: %v -> %#x, %v", origin(1), n*size, p, err)
+ }
+ if err != nil {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ if memAuditEnabled {
+ pc, _, _, ok := runtime.Caller(1)
+ if !ok {
+ panic("cannot obtain caller's PC")
+ }
+
+ delete(frees, p)
+ if pc0, ok := allocs[p]; ok {
+ dmesg("%v: calloc returns same address twice, previous call at %v:", pc2origin(pc), pc2origin(pc0))
+ panic(fmt.Errorf("%v: calloc returns same address twice, previous call at %v:", pc2origin(pc), pc2origin(pc0)))
+ }
+
+ allocs[p] = pc
+ }
+ return p
+}
+
+// void *realloc(void *ptr, size_t size);
+func Xrealloc(t *TLS, ptr uintptr, size types.Size_t) uintptr {
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ var pc uintptr
+ if memAuditEnabled {
+ var ok bool
+ if pc, _, _, ok = runtime.Caller(1); !ok {
+ panic("cannot obtain caller's PC")
+ }
+
+ if ptr != 0 {
+ if pc0, ok := frees[ptr]; ok {
+ dmesg("%v: realloc: double free of %#x, previous call at %v:", pc2origin(pc), ptr, pc2origin(pc0))
+ panic(fmt.Errorf("%v: realloc: double free of %#x, previous call at %v:", pc2origin(pc), ptr, pc2origin(pc0)))
+ }
+
+ if _, ok := allocs[ptr]; !ok {
+ dmesg("%v: %v: realloc, free of unallocated memory: %#x", origin(1), pc2origin(pc), ptr)
+ panic(fmt.Errorf("%v: realloc, free of unallocated memory: %#x", pc2origin(pc), ptr))
+ }
+
+ delete(allocs, ptr)
+ delete(allocsMore, ptr)
+ frees[ptr] = pc
+ }
+ }
+
+ p, err := allocator.UintptrRealloc(ptr, int(size))
+ if dmesgs {
+ dmesg("%v: %#x, %v -> %#x, %v", origin(1), ptr, size, p, err)
+ }
+ if err != nil {
+ t.setErrno(errno.ENOMEM)
+ return 0
+ }
+
+ if memAuditEnabled && p != 0 {
+ delete(frees, p)
+ if pc0, ok := allocs[p]; ok {
+ dmesg("%v: realloc returns same address twice, previous call at %v:", pc2origin(pc), pc2origin(pc0))
+ panic(fmt.Errorf("%v: realloc returns same address twice, previous call at %v:", pc2origin(pc), pc2origin(pc0)))
+ }
+
+ allocs[p] = pc
+ }
+ return p
+}
+
+// void free(void *ptr);
+func Xfree(t *TLS, p uintptr) {
+ if p == 0 {
+ return
+ }
+
+ if dmesgs {
+ dmesg("%v: %#x", origin(1), p)
+ }
+
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ sz := memory.UintptrUsableSize(p)
+ if memAuditEnabled {
+ pc, _, _, ok := runtime.Caller(1)
+ if !ok {
+ panic("cannot obtain caller's PC")
+ }
+
+ if pc0, ok := frees[p]; ok {
+ dmesg("%v: double free of %#x, previous call at %v:", pc2origin(pc), p, pc2origin(pc0))
+ panic(fmt.Errorf("%v: double free of %#x, previous call at %v:", pc2origin(pc), p, pc2origin(pc0)))
+ }
+
+ if _, ok := allocs[p]; !ok {
+ dmesg("%v: free of unallocated memory: %#x", pc2origin(pc), p)
+ panic(fmt.Errorf("%v: free of unallocated memory: %#x", pc2origin(pc), p))
+ }
+
+ delete(allocs, p)
+ delete(allocsMore, p)
+ frees[p] = pc
+ }
+
+ for i := uintptr(0); i < uintptr(sz); i++ {
+ *(*byte)(unsafe.Pointer(p + i)) = 0
+ }
+ allocator.UintptrFree(p)
+}
+
+func UsableSize(p uintptr) types.Size_t {
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ if memAuditEnabled {
+ pc, _, _, ok := runtime.Caller(1)
+ if !ok {
+ panic("cannot obtain caller's PC")
+ }
+
+ if _, ok := allocs[p]; !ok {
+ dmesg("%v: usable size of unallocated memory: %#x", pc2origin(pc), p)
+ panic(fmt.Errorf("%v: usable size of unallocated memory: %#x", pc2origin(pc), p))
+ }
+ }
+
+ return types.Size_t(memory.UintptrUsableSize(p))
+}
+
+// MemAuditStart locks the memory allocator, initializes and enables memory
+// auditing. Finally it unlocks the memory allocator.
+//
+// Some memory handling errors, like double free or freeing of unallocated
+// memory, will panic when memory auditing is enabled.
+//
+// This memory auditing functionality has to be enabled using the libc.memgrind
+// build tag.
+//
+// It is intended only for debug/test builds. It slows down memory allocation
+// routines and it has additional memory costs.
+func MemAuditStart() {
+ allocMu.Lock()
+
+ defer allocMu.Unlock()
+
+ allocs = map[uintptr]uintptr{} // addr: caller
+ allocsMore = map[uintptr]string{}
+ frees = map[uintptr]uintptr{} // addr: caller
+ memAuditEnabled = true
+}
+
+// MemAuditReport locks the memory allocator, reports memory leaks, if any.
+// Finally it disables memory auditing and unlocks the memory allocator.
+//
+// This memory auditing functionality has to be enabled using the libc.memgrind
+// build tag.
+//
+// It is intended only for debug/test builds. It slows down memory allocation
+// routines and it has additional memory costs.
+func MemAuditReport() (r error) {
+ allocMu.Lock()
+
+ defer func() {
+ allocs = nil
+ allocsMore = nil
+ frees = nil
+ memAuditEnabled = false
+ memAudit = nil
+ allocMu.Unlock()
+ }()
+
+ if len(allocs) != 0 {
+ for p, pc := range allocs {
+ memAudit = append(memAudit, memReportItem{p, pc, allocsMore[p]})
+ }
+ sort.Slice(memAudit, func(i, j int) bool {
+ return memAudit[i].String() < memAudit[j].String()
+ })
+ return memAudit
+ }
+
+ return nil
+}
+
+func MemAuditAnnotate(pc uintptr, s string) {
+ allocMu.Lock()
+ allocsMore[pc] = s
+ allocMu.Unlock()
+}
diff --git a/vendor/modernc.org/libc/musl_darwin_amd64.go b/vendor/modernc.org/libc/musl_darwin_amd64.go
new file mode 100644
index 00000000..44a812ca
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_darwin_amd64.go
@@ -0,0 +1,4712 @@
+// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -hide isascii,isspace,tolower,toupper -nostdinc -nostdlib -o ../musl_darwin_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../darwin/table.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// pthread opaque structures
+
+type __darwin_pthread_handler_rec = struct {
+ __routine uintptr
+ __arg uintptr
+ __next uintptr
+} /* table.c:1396:1 */
+
+type _opaque_pthread_attr_t = struct {
+ __sig int64
+ __opaque [56]int8
+} /* table.c:1402:1 */
+
+type _opaque_pthread_cond_t = struct {
+ __sig int64
+ __opaque [40]int8
+} /* table.c:1407:1 */
+
+type _opaque_pthread_condattr_t = struct {
+ __sig int64
+ __opaque [8]int8
+} /* table.c:1412:1 */
+
+type _opaque_pthread_mutex_t = struct {
+ __sig int64
+ __opaque [56]int8
+} /* table.c:1417:1 */
+
+type _opaque_pthread_mutexattr_t = struct {
+ __sig int64
+ __opaque [8]int8
+} /* table.c:1422:1 */
+
+type _opaque_pthread_once_t = struct {
+ __sig int64
+ __opaque [8]int8
+} /* table.c:1427:1 */
+
+type _opaque_pthread_rwlock_t = struct {
+ __sig int64
+ __opaque [192]int8
+} /* table.c:1432:1 */
+
+type _opaque_pthread_rwlockattr_t = struct {
+ __sig int64
+ __opaque [16]int8
+} /* table.c:1437:1 */
+
+type _opaque_pthread_t = struct {
+ __sig int64
+ __cleanup_stack uintptr
+ __opaque [8176]int8
+} /* table.c:1442:1 */
+
+type ct_rune_t = int32 /* table.c:1527:28 */
+
+type rune_t = int32 /* table.c:1536:25 */
+
+type wint_t = int32 /* table.c:1558:25 */
+
+type _RuneEntry = struct {
+ __min int32
+ __max int32
+ __map int32
+ _ [4]byte
+ __types uintptr
+} /* table.c:1575:3 */
+
+type _RuneRange = struct {
+ __nranges int32
+ _ [4]byte
+ __ranges uintptr
+} /* table.c:1580:3 */
+
+type _RuneCharClass = struct {
+ __name [14]int8
+ _ [2]byte
+ __mask uint32
+} /* table.c:1585:3 */
+
+type _RuneLocale = struct {
+ __magic [8]int8
+ __encoding [32]int8
+ __sgetrune uintptr
+ __sputrune uintptr
+ __invalid_rune int32
+ __runetype [256]uint32
+ __maplower [256]int32
+ __mapupper [256]int32
+ _ [4]byte
+ __runetype_ext _RuneRange
+ __maplower_ext _RuneRange
+ __mapupper_ext _RuneRange
+ __variable uintptr
+ __variable_len int32
+ __ncharclasses int32
+ __charclasses uintptr
+} /* table.c:1616:3 */
+
+func X__istype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1670:1: */
+
+ return func() int32 {
+ if Xisascii(tls, _c) != 0 {
+ return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0))
+ }
+ return BoolInt32(!!(X__maskrune(tls, _c, _f) != 0))
+ }()
+
+}
+
+func X__isctype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1681:1: */
+
+ if _c < 0 || _c >= int32(1)<<8 {
+ return 0
+ }
+ return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0))
+
+}
+
+func X__wcwidth(tls *TLS, _c int32) int32 { /* table.c:1700:1: */
+ var _x uint32
+
+ if _c == 0 {
+ return 0
+ }
+ _x = uint32(X__maskrune(tls, _c, uint64(0xe0000000|0x00040000)))
+ if int64(_x)&0xe0000000 != int64(0) {
+ return int32(int64(_x) & 0xe0000000 >> 30)
+ }
+ return func() int32 {
+ if int64(_x)&0x00040000 != int64(0) {
+ return 1
+ }
+ return -1
+ }()
+}
+
+func Xisalnum(tls *TLS, _c int32) int32 { /* table.c:1718:1: */
+ return X__istype(tls, _c, uint64(0x00000100|0x00000400))
+}
+
+func Xisalpha(tls *TLS, _c int32) int32 { /* table.c:1724:1: */
+ return X__istype(tls, _c, uint64(0x00000100))
+}
+
+func Xisblank(tls *TLS, _c int32) int32 { /* table.c:1730:1: */
+ return X__istype(tls, _c, uint64(0x00020000))
+}
+
+func Xiscntrl(tls *TLS, _c int32) int32 { /* table.c:1736:1: */
+ return X__istype(tls, _c, uint64(0x00000200))
+}
+
+func Xisdigit(tls *TLS, _c int32) int32 { /* table.c:1743:1: */
+ return X__isctype(tls, _c, uint64(0x00000400))
+}
+
+func Xisgraph(tls *TLS, _c int32) int32 { /* table.c:1749:1: */
+ return X__istype(tls, _c, uint64(0x00000800))
+}
+
+func Xislower(tls *TLS, _c int32) int32 { /* table.c:1755:1: */
+ return X__istype(tls, _c, uint64(0x00001000))
+}
+
+func Xisprint(tls *TLS, _c int32) int32 { /* table.c:1761:1: */
+ return X__istype(tls, _c, uint64(0x00040000))
+}
+
+func Xispunct(tls *TLS, _c int32) int32 { /* table.c:1767:1: */
+ return X__istype(tls, _c, uint64(0x00002000))
+}
+
+func Xisupper(tls *TLS, _c int32) int32 { /* table.c:1779:1: */
+ return X__istype(tls, _c, uint64(0x00008000))
+}
+
+func Xisxdigit(tls *TLS, _c int32) int32 { /* table.c:1786:1: */
+ return X__isctype(tls, _c, uint64(0x00010000))
+}
+
+func Xtoascii(tls *TLS, _c int32) int32 { /* table.c:1792:1: */
+ return _c & 0x7F
+}
+
+func Xdigittoint(tls *TLS, _c int32) int32 { /* table.c:1811:1: */
+ return X__maskrune(tls, _c, uint64(0x0F))
+}
+
+func Xishexnumber(tls *TLS, _c int32) int32 { /* table.c:1817:1: */
+ return X__istype(tls, _c, uint64(0x00010000))
+}
+
+func Xisideogram(tls *TLS, _c int32) int32 { /* table.c:1823:1: */
+ return X__istype(tls, _c, uint64(0x00080000))
+}
+
+func Xisnumber(tls *TLS, _c int32) int32 { /* table.c:1829:1: */
+ return X__istype(tls, _c, uint64(0x00000400))
+}
+
+func Xisphonogram(tls *TLS, _c int32) int32 { /* table.c:1835:1: */
+ return X__istype(tls, _c, uint64(0x00200000))
+}
+
+func Xisrune(tls *TLS, _c int32) int32 { /* table.c:1841:1: */
+ return X__istype(tls, _c, uint64(0xFFFFFFF0))
+}
+
+func Xisspecial(tls *TLS, _c int32) int32 { /* table.c:1847:1: */
+ return X__istype(tls, _c, uint64(0x00100000))
+}
+
+func X__maskrune(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1871:2: */
+ return int32(uint32(int32(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c&0xff)*4)))) & uint32(_f))
+}
+
+func X__toupper(tls *TLS, c int32) int32 { /* table.c:1876:20: */
+ return Xtoupper(tls, c)
+}
+
+func X__tolower(tls *TLS, c int32) int32 { /* table.c:1878:20: */
+ return Xtolower(tls, c)
+}
+
+var X_DefaultRuneLocale = _RuneLocale{__magic: [8]int8{int8(82), int8(117), int8(110), int8(101), int8(77), int8(97), int8(103), int8(65)}, __encoding: [32]int8{int8(78), int8(79), int8(78), int8(69), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0)}, __invalid_rune: 0xfffd, __runetype: [256]uint32{
+ uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x24200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x200), uint32(0x200),
+ uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200),
+ uint32(0x64000), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x50c00), uint32(0x50c01), uint32(0x50c02), uint32(0x50c03), uint32(0x50c04), uint32(0x50c05), uint32(0x50c06), uint32(0x50c07), uint32(0x50c08), uint32(0x50c09), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x42800), uint32(0x5890a), uint32(0x5890b), uint32(0x5890c), uint32(0x5890d), uint32(0x5890e), uint32(0x5890f), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900),
+ uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x42800), uint32(0x5190a), uint32(0x5190b), uint32(0x5190c), uint32(0x5190d), uint32(0x5190e), uint32(0x5190f), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900),
+ uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x200),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+}, __maplower: [256]int32{
+ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+}, __mapupper: [256]int32{
+ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+},
+} /* table.c:1879:13 */
+
+var X_CurrentRuneLocale uintptr = 0 /* table.c:1940:13 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type locale_t = uintptr /* alltypes.h:343:32 */
+
+type ssize_t = int64 /* alltypes.h:65:15 */
+
+type intptr_t = int64 /* alltypes.h:70:15 */
+
+type off_t = int64 /* alltypes.h:162:16 */
+
+type pid_t = int32 /* alltypes.h:235:13 */
+
+type uid_t = uint32 /* alltypes.h:245:18 */
+
+type gid_t = uint32 /* alltypes.h:250:18 */
+
+type useconds_t = uint32 /* alltypes.h:260:18 */
+
+func X__putenv(tls *TLS, s uintptr, l size_t, r uintptr) int32 { /* putenv.c:8:5: */
+ var i size_t
+ var newenv uintptr
+ var tmp uintptr
+ //TODO for (char **e = __environ; *e; e++, i++)
+ var e uintptr
+ i = uint64(0)
+ if !(Environ() != 0) {
+ goto __1
+ }
+ //TODO for (char **e = __environ; *e; e++, i++)
+ e = Environ()
+__2:
+ if !(*(*uintptr)(unsafe.Pointer(e)) != 0) {
+ goto __4
+ }
+ if !!(Xstrncmp(tls, s, *(*uintptr)(unsafe.Pointer(e)), l+uint64(1)) != 0) {
+ goto __5
+ }
+ tmp = *(*uintptr)(unsafe.Pointer(e))
+ *(*uintptr)(unsafe.Pointer(e)) = s
+ X__env_rm_add(tls, tmp, r)
+ return 0
+__5:
+ ;
+ goto __3
+__3:
+ e += 8
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+__1:
+ ;
+ if !(Environ() == _soldenv) {
+ goto __6
+ }
+ newenv = Xrealloc(tls, _soldenv, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __8
+ }
+ goto oom
+__8:
+ ;
+ goto __7
+__6:
+ newenv = Xmalloc(tls, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __9
+ }
+ goto oom
+__9:
+ ;
+ if !(i != 0) {
+ goto __10
+ }
+ Xmemcpy(tls, newenv, Environ(), uint64(unsafe.Sizeof(uintptr(0)))*i)
+__10:
+ ;
+ Xfree(tls, _soldenv)
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i)*8)) = s
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i+uint64(1))*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(EnvironP())) = AssignPtrUintptr(uintptr(unsafe.Pointer(&_soldenv)), newenv)
+ if !(r != 0) {
+ goto __11
+ }
+ X__env_rm_add(tls, uintptr(0), r)
+__11:
+ ;
+ return 0
+oom:
+ Xfree(tls, r)
+ return -1
+}
+
+var _soldenv uintptr /* putenv.c:22:14: */
+
+func Xputenv(tls *TLS, s uintptr) int32 { /* putenv.c:43:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, s, '=')) - int64(s)) / 1)
+ if !(l != 0) || !(int32(*(*int8)(unsafe.Pointer(s + uintptr(l)))) != 0) {
+ return Xunsetenv(tls, s)
+ }
+ return X__putenv(tls, s, l, uintptr(0))
+}
+
+func X__env_rm_add(tls *TLS, old uintptr, new uintptr) { /* setenv.c:5:6: */
+ //TODO for (size_t i=0; i < env_alloced_n; i++)
+ var i size_t = uint64(0)
+ for ; i < _senv_alloced_n; i++ {
+ if *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) == old {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ Xfree(tls, old)
+ return
+ } else if !(int32(*(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8))) != 0) && new != 0 {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ new = uintptr(0)
+ }
+ }
+ if !(new != 0) {
+ return
+ }
+ var t uintptr = Xrealloc(tls, _senv_alloced, uint64(unsafe.Sizeof(uintptr(0)))*(_senv_alloced_n+uint64(1)))
+ if !(t != 0) {
+ return
+ }
+ *(*uintptr)(unsafe.Pointer(AssignPtrUintptr(uintptr(unsafe.Pointer(&_senv_alloced)), t) + uintptr(PostIncUint64(&_senv_alloced_n, 1))*8)) = new
+}
+
+var _senv_alloced uintptr /* setenv.c:7:14: */
+var _senv_alloced_n size_t /* setenv.c:8:16: */
+
+func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) int32 { /* setenv.c:26:5: */
+ var s uintptr
+ var l1 size_t
+ var l2 size_t
+
+ if !(var1 != 0) || !(int32(AssignUint64(&l1, size_t((int64(X__strchrnul(tls, var1, '='))-int64(var1))/1))) != 0) || *(*int8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if !(overwrite != 0) && Xgetenv(tls, var1) != 0 {
+ return 0
+ }
+
+ l2 = Xstrlen(tls, value)
+ s = Xmalloc(tls, l1+l2+uint64(2))
+ if !(s != 0) {
+ return -1
+ }
+ Xmemcpy(tls, s, var1, l1)
+ *(*int8)(unsafe.Pointer(s + uintptr(l1))) = int8('=')
+ Xmemcpy(tls, s+uintptr(l1)+uintptr(1), value, l2+uint64(1))
+ return X__putenv(tls, s, l1, s)
+}
+
+func Xunsetenv(tls *TLS, name uintptr) int32 { /* unsetenv.c:9:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, name, '=')) - int64(name)) / 1)
+ if !(l != 0) || *(*int8)(unsafe.Pointer(name + uintptr(l))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if Environ() != 0 {
+ var e uintptr = Environ()
+ var eo uintptr = e
+ for ; *(*uintptr)(unsafe.Pointer(e)) != 0; e += 8 {
+ //TODO if (!strncmp(name, *e, l) && l[*e] == '=')
+ if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == '=' {
+ X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(e)), uintptr(0))
+ } else if eo != e {
+ *(*uintptr)(unsafe.Pointer(PostIncUintptr(&eo, 8))) = *(*uintptr)(unsafe.Pointer(e))
+ } else {
+ eo += 8
+ }
+ }
+ if eo != e {
+ *(*uintptr)(unsafe.Pointer(eo)) = uintptr(0)
+ }
+ }
+ return 0
+}
+
+type uintptr_t = uint64 /* alltypes.h:55:24 */
+
+type int8_t = int8 /* alltypes.h:96:25 */
+
+type int16_t = int16 /* alltypes.h:101:25 */
+
+type int32_t = int32 /* alltypes.h:106:25 */
+
+type int64_t = int64 /* alltypes.h:111:25 */
+
+type intmax_t = int64 /* alltypes.h:116:25 */
+
+type uint8_t = uint8 /* alltypes.h:121:25 */
+
+type uint16_t = uint16 /* alltypes.h:126:25 */
+
+type uint32_t = uint32 /* alltypes.h:131:25 */
+
+type uint64_t = uint64 /* alltypes.h:136:25 */
+
+type uintmax_t = uint64 /* alltypes.h:146:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:320:9 */
+
+type FILE = _IO_FILE /* alltypes.h:320:25 */
+
+type va_list = uintptr /* alltypes.h:326:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:29:15 */
+
+type double_t = float64 /* alltypes.h:34:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits int8
+ frac_digits int8
+ p_cs_precedes int8
+ p_sep_by_space int8
+ n_cs_precedes int8
+ n_sep_by_space int8
+ p_sign_posn int8
+ n_sign_posn int8
+ int_p_cs_precedes int8
+ int_p_sep_by_space int8
+ int_n_cs_precedes int8
+ int_n_sep_by_space int8
+ int_p_sign_posn int8
+ int_n_sign_posn int8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: Int8FromInt32(255), frac_digits: Int8FromInt32(255), p_cs_precedes: Int8FromInt32(255), p_sep_by_space: Int8FromInt32(255), n_cs_precedes: Int8FromInt32(255), n_sep_by_space: Int8FromInt32(255), p_sign_posn: Int8FromInt32(255), n_sign_posn: Int8FromInt32(255), int_p_cs_precedes: Int8FromInt32(255), int_p_sep_by_space: Int8FromInt32(255), int_n_cs_precedes: Int8FromInt32(255), int_n_sep_by_space: Int8FromInt32(255), int_p_sign_posn: Int8FromInt32(255), int_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:41:54 */
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:355:1 */
+
+type socklen_t = uint32 /* alltypes.h:361:18 */
+
+type sa_family_t = uint16 /* alltypes.h:366:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:85:16 */
+
+type clockid_t = int32 /* alltypes.h:214:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:229:1 */
+
+type pthread_t = uintptr /* alltypes.h:273:26 */
+
+type pthread_once_t = int32 /* alltypes.h:279:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:284:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:289:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:349:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:349:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:372:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:377:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:387:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:397:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:402:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:209:14 */
+
+type clock_t = int64 /* alltypes.h:219:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* pthread.h:206:1 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint64(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint64(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) {
+ return 34
+ }
+ buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))
+ buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l))
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]int8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+90, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]int8 at bp, 78
+
+ // var buf [256]int8 at bp+78, 256
+
+ // var num [13]int8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]int8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= size_t(nodelen) {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= size_t(servlen) {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:152:18 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func X__strchrnul(tls *TLS, s uintptr, c int32) uintptr { /* strchrnul.c:10:6: */
+ c = int32(uint8(c))
+ if !(c != 0) {
+ return s + uintptr(Xstrlen(tls, s))
+ }
+ var w uintptr
+ for ; uintptr_t(s)%uintptr_t(unsafe.Sizeof(size_t(0))) != 0; s++ {
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c {
+ return s
+ }
+ }
+ var k size_t = Uint64(Uint64FromInt32(-1)) / uint64(255) * size_t(c)
+ for w = s; !((*(*uint64)(unsafe.Pointer(w))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(w)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0) && !((*(*uint64)(unsafe.Pointer(w))^k-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0); w += 8 {
+ }
+ s = w
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c; s++ {
+ }
+ return s
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint64(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*int8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 8
+ wd += 8
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*int8)(unsafe.Pointer(d)) = int8(0)
+finish:
+ return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint64(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*int8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = int8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*int8)(unsafe.Pointer(_sp)) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = int8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35:
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_darwin_arm64.go b/vendor/modernc.org/libc/musl_darwin_arm64.go
new file mode 100644
index 00000000..deb7e627
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_darwin_arm64.go
@@ -0,0 +1,4710 @@
+// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -hide isascii,isspace,tolower,toupper -nostdinc -nostdlib -o ../musl_darwin_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../darwin/table.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+// pthread opaque structures
+
+type __darwin_pthread_handler_rec = struct {
+ __routine uintptr
+ __arg uintptr
+ __next uintptr
+} /* table.c:1396:1 */
+
+type _opaque_pthread_attr_t = struct {
+ __sig int64
+ __opaque [56]int8
+} /* table.c:1402:1 */
+
+type _opaque_pthread_cond_t = struct {
+ __sig int64
+ __opaque [40]int8
+} /* table.c:1407:1 */
+
+type _opaque_pthread_condattr_t = struct {
+ __sig int64
+ __opaque [8]int8
+} /* table.c:1412:1 */
+
+type _opaque_pthread_mutex_t = struct {
+ __sig int64
+ __opaque [56]int8
+} /* table.c:1417:1 */
+
+type _opaque_pthread_mutexattr_t = struct {
+ __sig int64
+ __opaque [8]int8
+} /* table.c:1422:1 */
+
+type _opaque_pthread_once_t = struct {
+ __sig int64
+ __opaque [8]int8
+} /* table.c:1427:1 */
+
+type _opaque_pthread_rwlock_t = struct {
+ __sig int64
+ __opaque [192]int8
+} /* table.c:1432:1 */
+
+type _opaque_pthread_rwlockattr_t = struct {
+ __sig int64
+ __opaque [16]int8
+} /* table.c:1437:1 */
+
+type _opaque_pthread_t = struct {
+ __sig int64
+ __cleanup_stack uintptr
+ __opaque [8176]int8
+} /* table.c:1442:1 */
+
+type ct_rune_t = int32 /* table.c:1527:28 */
+
+type rune_t = int32 /* table.c:1536:25 */
+
+type wint_t = int32 /* table.c:1558:25 */
+
+type _RuneEntry = struct {
+ __min int32
+ __max int32
+ __map int32
+ _ [4]byte
+ __types uintptr
+} /* table.c:1575:3 */
+
+type _RuneRange = struct {
+ __nranges int32
+ _ [4]byte
+ __ranges uintptr
+} /* table.c:1580:3 */
+
+type _RuneCharClass = struct {
+ __name [14]int8
+ _ [2]byte
+ __mask uint32
+} /* table.c:1585:3 */
+
+type _RuneLocale = struct {
+ __magic [8]int8
+ __encoding [32]int8
+ __sgetrune uintptr
+ __sputrune uintptr
+ __invalid_rune int32
+ __runetype [256]uint32
+ __maplower [256]int32
+ __mapupper [256]int32
+ _ [4]byte
+ __runetype_ext _RuneRange
+ __maplower_ext _RuneRange
+ __mapupper_ext _RuneRange
+ __variable uintptr
+ __variable_len int32
+ __ncharclasses int32
+ __charclasses uintptr
+} /* table.c:1616:3 */
+
+func X__istype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1670:1: */
+
+ return func() int32 {
+ if Xisascii(tls, _c) != 0 {
+ return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0))
+ }
+ return BoolInt32(!!(X__maskrune(tls, _c, _f) != 0))
+ }()
+
+}
+
+func X__isctype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1681:1: */
+
+ if _c < 0 || _c >= int32(1)<<8 {
+ return 0
+ }
+ return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0))
+
+}
+
+func X__wcwidth(tls *TLS, _c int32) int32 { /* table.c:1700:1: */
+ var _x uint32
+
+ if _c == 0 {
+ return 0
+ }
+ _x = uint32(X__maskrune(tls, _c, uint64(0xe0000000|0x00040000)))
+ if int64(_x)&0xe0000000 != int64(0) {
+ return int32(int64(_x) & 0xe0000000 >> 30)
+ }
+ return func() int32 {
+ if int64(_x)&0x00040000 != int64(0) {
+ return 1
+ }
+ return -1
+ }()
+}
+
+func Xisalnum(tls *TLS, _c int32) int32 { /* table.c:1718:1: */
+ return X__istype(tls, _c, uint64(0x00000100|0x00000400))
+}
+
+func Xisalpha(tls *TLS, _c int32) int32 { /* table.c:1724:1: */
+ return X__istype(tls, _c, uint64(0x00000100))
+}
+
+func Xisblank(tls *TLS, _c int32) int32 { /* table.c:1730:1: */
+ return X__istype(tls, _c, uint64(0x00020000))
+}
+
+func Xiscntrl(tls *TLS, _c int32) int32 { /* table.c:1736:1: */
+ return X__istype(tls, _c, uint64(0x00000200))
+}
+
+func Xisdigit(tls *TLS, _c int32) int32 { /* table.c:1743:1: */
+ return X__isctype(tls, _c, uint64(0x00000400))
+}
+
+func Xisgraph(tls *TLS, _c int32) int32 { /* table.c:1749:1: */
+ return X__istype(tls, _c, uint64(0x00000800))
+}
+
+func Xislower(tls *TLS, _c int32) int32 { /* table.c:1755:1: */
+ return X__istype(tls, _c, uint64(0x00001000))
+}
+
+func Xisprint(tls *TLS, _c int32) int32 { /* table.c:1761:1: */
+ return X__istype(tls, _c, uint64(0x00040000))
+}
+
+func Xispunct(tls *TLS, _c int32) int32 { /* table.c:1767:1: */
+ return X__istype(tls, _c, uint64(0x00002000))
+}
+
+func Xisupper(tls *TLS, _c int32) int32 { /* table.c:1779:1: */
+ return X__istype(tls, _c, uint64(0x00008000))
+}
+
+func Xisxdigit(tls *TLS, _c int32) int32 { /* table.c:1786:1: */
+ return X__isctype(tls, _c, uint64(0x00010000))
+}
+
+func Xtoascii(tls *TLS, _c int32) int32 { /* table.c:1792:1: */
+ return _c & 0x7F
+}
+
+func Xdigittoint(tls *TLS, _c int32) int32 { /* table.c:1811:1: */
+ return X__maskrune(tls, _c, uint64(0x0F))
+}
+
+func Xishexnumber(tls *TLS, _c int32) int32 { /* table.c:1817:1: */
+ return X__istype(tls, _c, uint64(0x00010000))
+}
+
+func Xisideogram(tls *TLS, _c int32) int32 { /* table.c:1823:1: */
+ return X__istype(tls, _c, uint64(0x00080000))
+}
+
+func Xisnumber(tls *TLS, _c int32) int32 { /* table.c:1829:1: */
+ return X__istype(tls, _c, uint64(0x00000400))
+}
+
+func Xisphonogram(tls *TLS, _c int32) int32 { /* table.c:1835:1: */
+ return X__istype(tls, _c, uint64(0x00200000))
+}
+
+func Xisrune(tls *TLS, _c int32) int32 { /* table.c:1841:1: */
+ return X__istype(tls, _c, uint64(0xFFFFFFF0))
+}
+
+func Xisspecial(tls *TLS, _c int32) int32 { /* table.c:1847:1: */
+ return X__istype(tls, _c, uint64(0x00100000))
+}
+
+func X__maskrune(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1871:2: */
+ return int32(uint32(int32(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c&0xff)*4)))) & uint32(_f))
+}
+
+func X__toupper(tls *TLS, c int32) int32 { /* table.c:1876:20: */
+ return Xtoupper(tls, c)
+}
+
+func X__tolower(tls *TLS, c int32) int32 { /* table.c:1878:20: */
+ return Xtolower(tls, c)
+}
+
+var X_DefaultRuneLocale = _RuneLocale{__magic: [8]int8{int8(82), int8(117), int8(110), int8(101), int8(77), int8(97), int8(103), int8(65)}, __encoding: [32]int8{int8(78), int8(79), int8(78), int8(69), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0)}, __invalid_rune: 0xfffd, __runetype: [256]uint32{
+ uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x24200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x200), uint32(0x200),
+ uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200),
+ uint32(0x64000), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x50c00), uint32(0x50c01), uint32(0x50c02), uint32(0x50c03), uint32(0x50c04), uint32(0x50c05), uint32(0x50c06), uint32(0x50c07), uint32(0x50c08), uint32(0x50c09), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x42800), uint32(0x5890a), uint32(0x5890b), uint32(0x5890c), uint32(0x5890d), uint32(0x5890e), uint32(0x5890f), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900),
+ uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800),
+ uint32(0x42800), uint32(0x5190a), uint32(0x5190b), uint32(0x5190c), uint32(0x5190d), uint32(0x5190e), uint32(0x5190f), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900),
+ uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x200),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+ uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0),
+}, __maplower: [256]int32{
+ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+}, __mapupper: [256]int32{
+ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+},
+} /* table.c:1879:13 */
+
+var X_CurrentRuneLocale uintptr = 0 /* table.c:1940:13 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type locale_t = uintptr /* alltypes.h:351:32 */
+
+type ssize_t = int64 /* alltypes.h:73:15 */
+
+type intptr_t = int64 /* alltypes.h:78:15 */
+
+type off_t = int64 /* alltypes.h:170:16 */
+
+type pid_t = int32 /* alltypes.h:243:13 */
+
+type uid_t = uint32 /* alltypes.h:253:18 */
+
+type gid_t = uint32 /* alltypes.h:258:18 */
+
+type useconds_t = uint32 /* alltypes.h:268:18 */
+
+func X__putenv(tls *TLS, s uintptr, l size_t, r uintptr) int32 { /* putenv.c:8:5: */
+ var i size_t
+ var newenv uintptr
+ var tmp uintptr
+ //TODO for (char **e = __environ; *e; e++, i++)
+ var e uintptr
+ i = uint64(0)
+ if !(Environ() != 0) {
+ goto __1
+ }
+ //TODO for (char **e = __environ; *e; e++, i++)
+ e = Environ()
+__2:
+ if !(*(*uintptr)(unsafe.Pointer(e)) != 0) {
+ goto __4
+ }
+ if !!(Xstrncmp(tls, s, *(*uintptr)(unsafe.Pointer(e)), l+uint64(1)) != 0) {
+ goto __5
+ }
+ tmp = *(*uintptr)(unsafe.Pointer(e))
+ *(*uintptr)(unsafe.Pointer(e)) = s
+ X__env_rm_add(tls, tmp, r)
+ return 0
+__5:
+ ;
+ goto __3
+__3:
+ e += 8
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+__1:
+ ;
+ if !(Environ() == _soldenv) {
+ goto __6
+ }
+ newenv = Xrealloc(tls, _soldenv, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __8
+ }
+ goto oom
+__8:
+ ;
+ goto __7
+__6:
+ newenv = Xmalloc(tls, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __9
+ }
+ goto oom
+__9:
+ ;
+ if !(i != 0) {
+ goto __10
+ }
+ Xmemcpy(tls, newenv, Environ(), uint64(unsafe.Sizeof(uintptr(0)))*i)
+__10:
+ ;
+ Xfree(tls, _soldenv)
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i)*8)) = s
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i+uint64(1))*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(EnvironP())) = AssignPtrUintptr(uintptr(unsafe.Pointer(&_soldenv)), newenv)
+ if !(r != 0) {
+ goto __11
+ }
+ X__env_rm_add(tls, uintptr(0), r)
+__11:
+ ;
+ return 0
+oom:
+ Xfree(tls, r)
+ return -1
+}
+
+var _soldenv uintptr /* putenv.c:22:14: */
+
+func Xputenv(tls *TLS, s uintptr) int32 { /* putenv.c:43:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, s, '=')) - int64(s)) / 1)
+ if !(l != 0) || !(int32(*(*int8)(unsafe.Pointer(s + uintptr(l)))) != 0) {
+ return Xunsetenv(tls, s)
+ }
+ return X__putenv(tls, s, l, uintptr(0))
+}
+
+func X__env_rm_add(tls *TLS, old uintptr, new uintptr) { /* setenv.c:5:6: */
+ //TODO for (size_t i=0; i < env_alloced_n; i++)
+ var i size_t = uint64(0)
+ for ; i < _senv_alloced_n; i++ {
+ if *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) == old {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ Xfree(tls, old)
+ return
+ } else if !(int32(*(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8))) != 0) && new != 0 {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ new = uintptr(0)
+ }
+ }
+ if !(new != 0) {
+ return
+ }
+ var t uintptr = Xrealloc(tls, _senv_alloced, uint64(unsafe.Sizeof(uintptr(0)))*(_senv_alloced_n+uint64(1)))
+ if !(t != 0) {
+ return
+ }
+ *(*uintptr)(unsafe.Pointer(AssignPtrUintptr(uintptr(unsafe.Pointer(&_senv_alloced)), t) + uintptr(PostIncUint64(&_senv_alloced_n, 1))*8)) = new
+}
+
+var _senv_alloced uintptr /* setenv.c:7:14: */
+var _senv_alloced_n size_t /* setenv.c:8:16: */
+
+func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) int32 { /* setenv.c:26:5: */
+ var s uintptr
+ var l1 size_t
+ var l2 size_t
+
+ if !(var1 != 0) || !(int32(AssignUint64(&l1, size_t((int64(X__strchrnul(tls, var1, '='))-int64(var1))/1))) != 0) || *(*int8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if !(overwrite != 0) && Xgetenv(tls, var1) != 0 {
+ return 0
+ }
+
+ l2 = Xstrlen(tls, value)
+ s = Xmalloc(tls, l1+l2+uint64(2))
+ if !(s != 0) {
+ return -1
+ }
+ Xmemcpy(tls, s, var1, l1)
+ *(*int8)(unsafe.Pointer(s + uintptr(l1))) = int8('=')
+ Xmemcpy(tls, s+uintptr(l1)+uintptr(1), value, l2+uint64(1))
+ return X__putenv(tls, s, l1, s)
+}
+
+func Xunsetenv(tls *TLS, name uintptr) int32 { /* unsetenv.c:9:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, name, '=')) - int64(name)) / 1)
+ if !(l != 0) || *(*int8)(unsafe.Pointer(name + uintptr(l))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if Environ() != 0 {
+ var e uintptr = Environ()
+ var eo uintptr = e
+ for ; *(*uintptr)(unsafe.Pointer(e)) != 0; e += 8 {
+ //TODO if (!strncmp(name, *e, l) && l[*e] == '=')
+ if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == '=' {
+ X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(e)), uintptr(0))
+ } else if eo != e {
+ *(*uintptr)(unsafe.Pointer(PostIncUintptr(&eo, 8))) = *(*uintptr)(unsafe.Pointer(e))
+ } else {
+ eo += 8
+ }
+ }
+ if eo != e {
+ *(*uintptr)(unsafe.Pointer(eo)) = uintptr(0)
+ }
+ }
+ return 0
+}
+
+type uintptr_t = uint64 /* alltypes.h:63:24 */
+
+type int8_t = int8 /* alltypes.h:104:25 */
+
+type int16_t = int16 /* alltypes.h:109:25 */
+
+type int32_t = int32 /* alltypes.h:114:25 */
+
+type int64_t = int64 /* alltypes.h:119:25 */
+
+type intmax_t = int64 /* alltypes.h:124:25 */
+
+type uint8_t = uint8 /* alltypes.h:129:25 */
+
+type uint16_t = uint16 /* alltypes.h:134:25 */
+
+type uint32_t = uint32 /* alltypes.h:139:25 */
+
+type uint64_t = uint64 /* alltypes.h:144:25 */
+
+type uintmax_t = uint64 /* alltypes.h:154:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:328:9 */
+
+type FILE = _IO_FILE /* alltypes.h:328:25 */
+
+type va_list = uintptr /* alltypes.h:334:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:38:15 */
+
+type double_t = float64 /* alltypes.h:43:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits int8
+ frac_digits int8
+ p_cs_precedes int8
+ p_sep_by_space int8
+ n_cs_precedes int8
+ n_sep_by_space int8
+ p_sign_posn int8
+ n_sign_posn int8
+ int_p_cs_precedes int8
+ int_p_sep_by_space int8
+ int_n_cs_precedes int8
+ int_n_sep_by_space int8
+ int_p_sign_posn int8
+ int_n_sign_posn int8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: Int8FromInt32(255), frac_digits: Int8FromInt32(255), p_cs_precedes: Int8FromInt32(255), p_sep_by_space: Int8FromInt32(255), n_cs_precedes: Int8FromInt32(255), n_sep_by_space: Int8FromInt32(255), p_sign_posn: Int8FromInt32(255), n_sign_posn: Int8FromInt32(255), int_p_cs_precedes: Int8FromInt32(255), int_p_sep_by_space: Int8FromInt32(255), int_n_cs_precedes: Int8FromInt32(255), int_n_sep_by_space: Int8FromInt32(255), int_p_sign_posn: Int8FromInt32(255), int_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:49:54 */
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:363:1 */
+
+type socklen_t = uint32 /* alltypes.h:369:18 */
+
+type sa_family_t = uint16 /* alltypes.h:374:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:93:16 */
+
+type clockid_t = int32 /* alltypes.h:222:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:237:1 */
+
+type pthread_t = uintptr /* alltypes.h:281:26 */
+
+type pthread_once_t = int32 /* alltypes.h:287:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:292:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:297:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:302:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:307:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:312:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:317:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:357:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:357:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:380:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:385:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:395:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:405:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:410:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:217:14 */
+
+type clock_t = int64 /* alltypes.h:227:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* pthread.h:206:1 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint64(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint64(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) {
+ return 34
+ }
+ buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))
+ buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l))
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]int8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+90, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]int8 at bp, 78
+
+ // var buf [256]int8 at bp+78, 256
+
+ // var num [13]int8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]int8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= size_t(nodelen) {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= size_t(servlen) {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:160:18 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func X__strchrnul(tls *TLS, s uintptr, c int32) uintptr { /* strchrnul.c:10:6: */
+ c = int32(uint8(c))
+ if !(c != 0) {
+ return s + uintptr(Xstrlen(tls, s))
+ }
+ var w uintptr
+ for ; uintptr_t(s)%uintptr_t(unsafe.Sizeof(size_t(0))) != 0; s++ {
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c {
+ return s
+ }
+ }
+ var k size_t = Uint64(Uint64FromInt32(-1)) / uint64(255) * size_t(c)
+ for w = s; !((*(*uint64)(unsafe.Pointer(w))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(w)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0) && !((*(*uint64)(unsafe.Pointer(w))^k-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0); w += 8 {
+ }
+ s = w
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c; s++ {
+ }
+ return s
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint64(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*int8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 8
+ wd += 8
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*int8)(unsafe.Pointer(d)) = int8(0)
+finish:
+ return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint64(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*int8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = int8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*int8)(unsafe.Pointer(_sp)) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = int8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35:
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_freebsd_386.go b/vendor/modernc.org/libc/musl_freebsd_386.go
new file mode 100644
index 00000000..aeec9c68
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_freebsd_386.go
@@ -0,0 +1,6726 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_freebsd_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type size_t = uint32 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+/// typedef __ct_rune_t __wint_t;
+///
+///
+///
+/// typedef __uint_least16_t __char16_t;
+/// typedef __uint_least32_t __char32_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef struct {
+/// long long __max_align1 __attribute__((__aligned__(_Alignof(long long))));
+///
+/// long double __max_align2 __attribute__((__aligned__(_Alignof(long double))));
+///
+/// } __max_align_t;
+///
+/// typedef __uint64_t __dev_t;
+///
+/// typedef __uint32_t __fixpt_t;
+///
+///
+///
+///
+///
+/// typedef union {
+/// char __mbstate8[128];
+/// __int64_t _mbstateL;
+/// } __mbstate_t;
+///
+/// typedef __uintmax_t __rman_res_t;
+///
+///
+///
+///
+///
+///
+/// typedef __builtin_va_list __va_list;
+///
+///
+///
+///
+///
+///
+/// typedef __va_list __gnuc_va_list;
+///
+///
+///
+///
+/// unsigned long ___runetype(__ct_rune_t) __attribute__((__pure__));
+/// __ct_rune_t ___tolower(__ct_rune_t) __attribute__((__pure__));
+/// __ct_rune_t ___toupper(__ct_rune_t) __attribute__((__pure__));
+///
+///
+/// extern int __mb_sb_limit;
+
+type _RuneEntry = struct {
+ __min int32
+ __max int32
+ __map int32
+ __types uintptr
+} /* table.cpp.c:290:3 */
+
+type _RuneRange = struct {
+ __nranges int32
+ __ranges uintptr
+} /* table.cpp.c:295:3 */
+
+type _RuneLocale = struct {
+ __magic [8]int8
+ __encoding [32]int8
+ __sgetrune uintptr
+ __sputrune uintptr
+ __invalid_rune int32
+ __runetype [256]uint32
+ __maplower [256]int32
+ __mapupper [256]int32
+ __runetype_ext _RuneRange
+ __maplower_ext _RuneRange
+ __mapupper_ext _RuneRange
+ __variable uintptr
+ __variable_len int32
+} /* table.cpp.c:320:3 */
+///
+/// extern const _RuneLocale _DefaultRuneLocale;
+/// extern const _RuneLocale *_CurrentRuneLocale;
+///
+///
+///
+/// extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
+/// static __inline const _RuneLocale *__getCurrentRuneLocale(void)
+/// {
+///
+/// if (_ThreadRuneLocale)
+/// return _ThreadRuneLocale;
+/// return _CurrentRuneLocale;
+/// }
+///
+///
+///
+///
+///
+/// static __inline int
+/// __maskrune(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return ((_c < 0 || _c >= (1 <<8 )) ? ___runetype(_c) :
+/// (__getCurrentRuneLocale())->__runetype[_c]) & _f;
+/// }
+///
+/// static __inline int
+/// __sbmaskrune(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? 0 :
+/// (__getCurrentRuneLocale())->__runetype[_c] & _f;
+/// }
+///
+/// static __inline int
+/// __istype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (!!__maskrune(_c, _f));
+/// }
+///
+/// static __inline int
+/// __sbistype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (!!__sbmaskrune(_c, _f));
+/// }
+///
+/// static __inline int
+/// __isctype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (_c < 0 || _c >= 128) ? 0 :
+/// !!(_DefaultRuneLocale.__runetype[_c] & _f);
+/// }
+///
+/// static __inline __ct_rune_t
+/// __toupper(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= (1 <<8 )) ? ___toupper(_c) :
+/// (__getCurrentRuneLocale())->__mapupper[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __sbtoupper(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
+/// (__getCurrentRuneLocale())->__mapupper[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __tolower(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= (1 <<8 )) ? ___tolower(_c) :
+/// (__getCurrentRuneLocale())->__maplower[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __sbtolower(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
+/// (__getCurrentRuneLocale())->__maplower[_c];
+/// }
+///
+/// static __inline int
+/// __wcwidth(__ct_rune_t _c)
+/// {
+/// unsigned int _x;
+///
+/// if (_c == 0)
+/// return (0);
+/// _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L);
+/// if ((_x & 0xe0000000L) != 0)
+/// return ((_x & 0xe0000000L) >> 30);
+/// return ((_x & 0x00040000L) != 0 ? 1 : -1);
+/// }
+///
+///
+///
+/// int isalnum(int);
+/// int isalpha(int);
+/// int iscntrl(int);
+/// int isdigit(int);
+/// int isgraph(int);
+/// int islower(int);
+/// int isprint(int);
+/// int ispunct(int);
+/// int isspace(int);
+/// int isupper(int);
+/// int isxdigit(int);
+/// int tolower(int);
+/// int toupper(int);
+///
+///
+/// int isascii(int);
+/// int toascii(int);
+///
+///
+///
+/// int isblank(int);
+///
+///
+///
+/// int digittoint(int);
+/// int ishexnumber(int);
+/// int isideogram(int);
+/// int isnumber(int);
+/// int isphonogram(int);
+/// int isrune(int);
+/// int isspecial(int);
+///
+///
+///
+///
+///
+/// typedef struct _xlocale *locale_t;
+///
+///
+///
+///
+/// unsigned long ___runetype_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// __ct_rune_t ___tolower_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// __ct_rune_t ___toupper_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// _RuneLocale *__runes_for_locale(locale_t, int*);
+///
+/// inline int
+/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
+/// inline int
+/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
+///
+/// inline int
+/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
+/// {
+/// int __limit;
+/// _RuneLocale *runes = __runes_for_locale(__loc, &__limit);
+/// return (__c < 0 || __c >= __limit) ? 0 :
+/// runes->__runetype[__c] & __f;
+/// }
+///
+/// inline int
+/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
+/// {
+/// return (!!__sbmaskrune_l(__c, __f, __loc));
+/// }
+///
+///
+///
+///
+///
+///
+///
+/// inline int isalnum_l(int, locale_t); inline int isalnum_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L|0x00000400L|0x00400000L, __l); }
+/// inline int isalpha_l(int, locale_t); inline int isalpha_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L, __l); }
+/// inline int isblank_l(int, locale_t); inline int isblank_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00020000L, __l); }
+/// inline int iscntrl_l(int, locale_t); inline int iscntrl_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000200L, __l); }
+/// inline int isdigit_l(int, locale_t); inline int isdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L, __l); }
+/// inline int isgraph_l(int, locale_t); inline int isgraph_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000800L, __l); }
+/// inline int ishexnumber_l(int, locale_t); inline int ishexnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
+/// inline int isideogram_l(int, locale_t); inline int isideogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00080000L, __l); }
+/// inline int islower_l(int, locale_t); inline int islower_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00001000L, __l); }
+/// inline int isnumber_l(int, locale_t); inline int isnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L|0x00400000L, __l); }
+/// inline int isphonogram_l(int, locale_t); inline int isphonogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00200000L, __l); }
+/// inline int isprint_l(int, locale_t); inline int isprint_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00040000L, __l); }
+/// inline int ispunct_l(int, locale_t); inline int ispunct_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00002000L, __l); }
+/// inline int isrune_l(int, locale_t); inline int isrune_l(int __c, locale_t __l) { return __sbistype_l(__c, 0xFFFFFF00L, __l); }
+/// inline int isspace_l(int, locale_t); inline int isspace_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00004000L, __l); }
+/// inline int isspecial_l(int, locale_t); inline int isspecial_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00100000L, __l); }
+/// inline int isupper_l(int, locale_t); inline int isupper_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00008000L, __l); }
+/// inline int isxdigit_l(int, locale_t); inline int isxdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
+///
+/// inline int digittoint_l(int, locale_t);
+/// inline int tolower_l(int, locale_t);
+/// inline int toupper_l(int, locale_t);
+///
+/// inline int digittoint_l(int __c, locale_t __l)
+/// { return __sbmaskrune_l((__c), 0xFF, __l); }
+///
+/// inline int tolower_l(int __c, locale_t __l)
+/// {
+/// int __limit;
+/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
+/// return (__c < 0 || __c >= __limit) ? __c :
+/// __runes->__maplower[__c];
+/// }
+/// inline int toupper_l(int __c, locale_t __l)
+/// {
+/// int __limit;
+/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
+/// return (__c < 0 || __c >= __limit) ? __c :
+/// __runes->__mapupper[__c];
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __mbstate_t mbstate_t;
+///
+///
+///
+///
+/// typedef __size_t size_t;
+///
+///
+///
+///
+///
+/// typedef __va_list va_list;
+///
+///
+///
+///
+///
+///
+/// typedef ___wchar_t wchar_t;
+///
+///
+///
+///
+///
+/// typedef __wint_t wint_t;
+///
+/// typedef struct __sFILE FILE;
+///
+/// struct tm;
+///
+///
+/// wint_t btowc(int);
+/// wint_t fgetwc(FILE *);
+/// wchar_t *
+/// fgetws(wchar_t * restrict, int, FILE * restrict);
+/// wint_t fputwc(wchar_t, FILE *);
+/// int fputws(const wchar_t * restrict, FILE * restrict);
+/// int fwide(FILE *, int);
+/// int fwprintf(FILE * restrict, const wchar_t * restrict, ...);
+/// int fwscanf(FILE * restrict, const wchar_t * restrict, ...);
+/// wint_t getwc(FILE *);
+/// wint_t getwchar(void);
+/// size_t mbrlen(const char * restrict, size_t, mbstate_t * restrict);
+/// size_t mbrtowc(wchar_t * restrict, const char * restrict, size_t,
+/// mbstate_t * restrict);
+/// int mbsinit(const mbstate_t *);
+/// size_t mbsrtowcs(wchar_t * restrict, const char ** restrict, size_t,
+/// mbstate_t * restrict);
+/// wint_t putwc(wchar_t, FILE *);
+/// wint_t putwchar(wchar_t);
+/// int swprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
+/// ...);
+/// int swscanf(const wchar_t * restrict, const wchar_t * restrict, ...);
+/// wint_t ungetwc(wint_t, FILE *);
+/// int vfwprintf(FILE * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vswprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
+/// __va_list);
+/// int vwprintf(const wchar_t * restrict, __va_list);
+/// size_t wcrtomb(char * restrict, wchar_t, mbstate_t * restrict);
+/// wchar_t *wcscat(wchar_t * restrict, const wchar_t * restrict);
+/// wchar_t *wcschr(const wchar_t *, wchar_t) __attribute__((__pure__));
+/// int wcscmp(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// int wcscoll(const wchar_t *, const wchar_t *);
+/// wchar_t *wcscpy(wchar_t * restrict, const wchar_t * restrict);
+/// size_t wcscspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// size_t wcsftime(wchar_t * restrict, size_t, const wchar_t * restrict,
+/// const struct tm * restrict);
+/// size_t wcslen(const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsncat(wchar_t * restrict, const wchar_t * restrict,
+/// size_t);
+/// int wcsncmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
+/// wchar_t *wcsncpy(wchar_t * restrict , const wchar_t * restrict, size_t);
+/// wchar_t *wcspbrk(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsrchr(const wchar_t *, wchar_t) __attribute__((__pure__));
+/// size_t wcsrtombs(char * restrict, const wchar_t ** restrict, size_t,
+/// mbstate_t * restrict);
+/// size_t wcsspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsstr(const wchar_t * restrict, const wchar_t * restrict)
+/// __attribute__((__pure__));
+/// size_t wcsxfrm(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// int wctob(wint_t);
+/// double wcstod(const wchar_t * restrict, wchar_t ** restrict);
+/// wchar_t *wcstok(wchar_t * restrict, const wchar_t * restrict,
+/// wchar_t ** restrict);
+/// long wcstol(const wchar_t * restrict, wchar_t ** restrict, int);
+/// unsigned long
+/// wcstoul(const wchar_t * restrict, wchar_t ** restrict, int);
+/// wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) __attribute__((__pure__));
+/// int wmemcmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
+/// wchar_t *wmemcpy(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
+/// wchar_t *wmemset(wchar_t *, wchar_t, size_t);
+/// int wprintf(const wchar_t * restrict, ...);
+/// int wscanf(const wchar_t * restrict, ...);
+///
+///
+/// extern FILE *__stdinp;
+/// extern FILE *__stdoutp;
+/// extern FILE *__stderrp;
+///
+/// int vfwscanf(FILE * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vswscanf(const wchar_t * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vwscanf(const wchar_t * restrict, __va_list);
+/// float wcstof(const wchar_t * restrict, wchar_t ** restrict);
+/// long double
+/// wcstold(const wchar_t * restrict, wchar_t ** restrict);
+///
+///
+/// long long
+/// wcstoll(const wchar_t * restrict, wchar_t ** restrict, int);
+///
+/// unsigned long long
+/// wcstoull(const wchar_t * restrict, wchar_t ** restrict, int);
+///
+///
+///
+///
+/// int wcswidth(const wchar_t *, size_t);
+/// int wcwidth(wchar_t);
+///
+///
+///
+///
+/// size_t mbsnrtowcs(wchar_t * restrict, const char ** restrict, size_t,
+/// size_t, mbstate_t * restrict);
+/// FILE *open_wmemstream(wchar_t **, size_t *);
+/// wchar_t *wcpcpy(wchar_t * restrict, const wchar_t * restrict);
+/// wchar_t *wcpncpy(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// wchar_t *wcsdup(const wchar_t *) __attribute__((__malloc__));
+/// int wcscasecmp(const wchar_t *, const wchar_t *);
+/// int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n);
+/// size_t wcsnlen(const wchar_t *, size_t) __attribute__((__pure__));
+/// size_t wcsnrtombs(char * restrict, const wchar_t ** restrict, size_t,
+/// size_t, mbstate_t * restrict);
+///
+///
+///
+/// wchar_t *fgetwln(FILE * restrict, size_t * restrict);
+/// size_t wcslcat(wchar_t *, const wchar_t *, size_t);
+/// size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
+///
+///
+///
+///
+///
+/// int wcscasecmp_l(const wchar_t *, const wchar_t *,
+/// locale_t);
+/// int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t,
+/// locale_t);
+/// int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
+/// size_t wcsxfrm_l(wchar_t * restrict,
+/// const wchar_t * restrict, size_t, locale_t);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct lconv {
+/// char *decimal_point;
+/// char *thousands_sep;
+/// char *grouping;
+/// char *int_curr_symbol;
+/// char *currency_symbol;
+/// char *mon_decimal_point;
+/// char *mon_thousands_sep;
+/// char *mon_grouping;
+/// char *positive_sign;
+/// char *negative_sign;
+/// char int_frac_digits;
+/// char frac_digits;
+/// char p_cs_precedes;
+/// char p_sep_by_space;
+/// char n_cs_precedes;
+/// char n_sep_by_space;
+/// char p_sign_posn;
+/// char n_sign_posn;
+/// char int_p_cs_precedes;
+/// char int_n_cs_precedes;
+/// char int_p_sep_by_space;
+/// char int_n_sep_by_space;
+/// char int_p_sign_posn;
+/// char int_n_sign_posn;
+/// };
+///
+///
+/// struct lconv *localeconv(void);
+/// char *setlocale(int, const char *);
+///
+///
+///
+///
+/// locale_t duplocale(locale_t base);
+/// void freelocale(locale_t loc);
+/// locale_t newlocale(int mask, const char *locale, locale_t base);
+/// const char *querylocale(int mask, locale_t loc);
+/// locale_t uselocale(locale_t loc);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// wint_t btowc_l(int, locale_t);
+/// wint_t fgetwc_l(FILE *, locale_t);
+/// wchar_t *fgetws_l(wchar_t * restrict, int, FILE * restrict,
+/// locale_t);
+/// wint_t fputwc_l(wchar_t, FILE *, locale_t);
+/// int fputws_l(const wchar_t * restrict, FILE * restrict,
+/// locale_t);
+/// int fwprintf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// int fwscanf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// wint_t getwc_l(FILE *, locale_t);
+/// wint_t getwchar_l(locale_t);
+/// size_t mbrlen_l(const char * restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t mbrtowc_l(wchar_t * restrict,
+/// const char * restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// int mbsinit_l(const mbstate_t *, locale_t);
+/// size_t mbsrtowcs_l(wchar_t * restrict,
+/// const char ** restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// wint_t putwc_l(wchar_t, FILE *, locale_t);
+/// wint_t putwchar_l(wchar_t, locale_t);
+/// int swprintf_l(wchar_t * restrict, size_t n, locale_t,
+/// const wchar_t * restrict, ...);
+/// int swscanf_l(const wchar_t * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// wint_t ungetwc_l(wint_t, FILE *, locale_t);
+/// int vfwprintf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vswprintf_l(wchar_t * restrict, size_t n, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vwprintf_l(locale_t, const wchar_t * restrict,
+/// __va_list);
+/// size_t wcrtomb_l(char * restrict, wchar_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t wcsftime_l(wchar_t * restrict, size_t,
+/// const wchar_t * restrict,
+/// const struct tm * restrict, locale_t);
+/// size_t wcsrtombs_l(char * restrict,
+/// const wchar_t ** restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// double wcstod_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long wcstol_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// unsigned long wcstoul_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// int wcswidth_l(const wchar_t *, size_t, locale_t);
+/// int wctob_l(wint_t, locale_t);
+/// int wcwidth_l(wchar_t, locale_t);
+/// int wprintf_l(locale_t, const wchar_t * restrict, ...);
+/// int wscanf_l(locale_t, const wchar_t * restrict, ...);
+/// int vfwscanf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vswscanf_l(const wchar_t * restrict, locale_t,
+/// const wchar_t *restrict, __va_list);
+/// int vwscanf_l(locale_t, const wchar_t * restrict,
+/// __va_list);
+/// float wcstof_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long double wcstold_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long long wcstoll_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// unsigned long long wcstoull_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// size_t mbsnrtowcs_l(wchar_t * restrict,
+/// const char ** restrict, size_t, size_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t wcsnrtombs_l(char * restrict,
+/// const wchar_t ** restrict, size_t, size_t,
+/// mbstate_t * restrict, locale_t);
+///
+///
+///
+///
+///
+/// struct lconv *localeconv_l(locale_t);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __rune_t rune_t;
+///
+/// typedef struct {
+/// int quot;
+/// int rem;
+/// } div_t;
+///
+/// typedef struct {
+/// long quot;
+/// long rem;
+/// } ldiv_t;
+///
+///
+///
+///
+///
+/// double atof_l(const char *, locale_t);
+/// int atoi_l(const char *, locale_t);
+/// long atol_l(const char *, locale_t);
+/// long long atoll_l(const char *, locale_t);
+/// int mblen_l(const char *, size_t, locale_t);
+/// size_t mbstowcs_l(wchar_t * restrict,
+/// const char * restrict, size_t, locale_t);
+/// int mbtowc_l(wchar_t * restrict,
+/// const char * restrict, size_t, locale_t);
+/// double strtod_l(const char *, char **, locale_t);
+/// float strtof_l(const char *, char **, locale_t);
+/// long strtol_l(const char *, char **, int, locale_t);
+/// long double strtold_l(const char *, char **, locale_t);
+/// long long strtoll_l(const char *, char **, int, locale_t);
+/// unsigned long strtoul_l(const char *, char **, int, locale_t);
+/// unsigned long long strtoull_l(const char *, char **, int, locale_t);
+/// size_t wcstombs_l(char * restrict,
+/// const wchar_t * restrict, size_t, locale_t);
+/// int wctomb_l(char *, wchar_t, locale_t);
+///
+/// int ___mb_cur_max_l(locale_t);
+///
+///
+/// extern int __mb_cur_max;
+/// extern int ___mb_cur_max(void);
+///
+///
+/// _Noreturn void abort(void);
+/// int abs(int) __attribute__((__const__));
+/// int atexit(void (* )(void));
+/// double atof(const char *);
+/// int atoi(const char *);
+/// long atol(const char *);
+/// void *bsearch(const void *, const void *, size_t,
+/// size_t, int (*)(const void * , const void *));
+/// void *calloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__))
+/// __attribute__((__alloc_size__(1, 2)));
+/// div_t div(int, int) __attribute__((__const__));
+/// _Noreturn void exit(int);
+/// void free(void *);
+/// char *getenv(const char *);
+/// long labs(long) __attribute__((__const__));
+/// ldiv_t ldiv(long, long) __attribute__((__const__));
+/// void *malloc(size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1)));
+/// int mblen(const char *, size_t);
+/// size_t mbstowcs(wchar_t * restrict , const char * restrict, size_t);
+/// int mbtowc(wchar_t * restrict, const char * restrict, size_t);
+/// void qsort(void *, size_t, size_t,
+/// int (* )(const void *, const void *));
+/// int rand(void);
+/// void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
+/// void srand(unsigned);
+/// double strtod(const char * restrict, char ** restrict);
+/// float strtof(const char * restrict, char ** restrict);
+/// long strtol(const char * restrict, char ** restrict, int);
+/// long double
+/// strtold(const char * restrict, char ** restrict);
+/// unsigned long
+/// strtoul(const char * restrict, char ** restrict, int);
+/// int system(const char *);
+/// int wctomb(char *, wchar_t);
+/// size_t wcstombs(char * restrict, const wchar_t * restrict, size_t);
+///
+/// typedef struct {
+/// long long quot;
+/// long long rem;
+/// } lldiv_t;
+///
+///
+/// long long
+/// atoll(const char *);
+///
+/// long long
+/// llabs(long long) __attribute__((__const__));
+///
+/// lldiv_t lldiv(long long, long long) __attribute__((__const__));
+///
+/// long long
+/// strtoll(const char * restrict, char ** restrict, int);
+///
+/// unsigned long long
+/// strtoull(const char * restrict, char ** restrict, int);
+///
+///
+/// _Noreturn void _Exit(int);
+///
+///
+///
+///
+///
+///
+/// void * aligned_alloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__alloc_align__(1)))
+/// __attribute__((__alloc_size__(2)));
+/// int at_quick_exit(void (*)(void));
+/// _Noreturn void
+/// quick_exit(int);
+///
+///
+///
+///
+///
+/// char *realpath(const char * restrict, char * restrict);
+///
+///
+/// int rand_r(unsigned *);
+///
+///
+/// int posix_memalign(void **, size_t, size_t);
+/// int setenv(const char *, const char *, int);
+/// int unsetenv(const char *);
+///
+///
+///
+/// int getsubopt(char **, char *const *, char **);
+///
+/// char *mkdtemp(char *);
+///
+///
+///
+/// int mkstemp(char *);
+///
+/// long a64l(const char *);
+/// double drand48(void);
+///
+/// double erand48(unsigned short[3]);
+///
+///
+/// char *initstate(unsigned int, char *, size_t);
+/// long jrand48(unsigned short[3]);
+/// char *l64a(long);
+/// void lcong48(unsigned short[7]);
+/// long lrand48(void);
+///
+/// char *mktemp(char *);
+///
+///
+/// long mrand48(void);
+/// long nrand48(unsigned short[3]);
+/// int putenv(char *);
+/// long random(void);
+/// unsigned short
+/// *seed48(unsigned short[3]);
+/// char *setstate( char *);
+/// void srand48(long);
+/// void srandom(unsigned int);
+///
+///
+///
+/// int grantpt(int);
+/// int posix_openpt(int);
+/// char *ptsname(int);
+/// int unlockpt(int);
+///
+///
+///
+/// int ptsname_r(int, char *, size_t);
+///
+///
+///
+/// extern const char *malloc_conf;
+/// extern void (*malloc_message)(void *, const char *);
+///
+/// void abort2(const char *, int, void **) __attribute__((__noreturn__));
+/// __uint32_t
+/// arc4random(void);
+/// void arc4random_buf(void *, size_t);
+/// __uint32_t
+/// arc4random_uniform(__uint32_t);
+///
+///
+///
+///
+///
+///
+/// char *getbsize(int *, long *);
+///
+/// char *cgetcap(char *, const char *, int);
+/// int cgetclose(void);
+/// int cgetent(char **, char **, const char *);
+/// int cgetfirst(char **, char **);
+/// int cgetmatch(const char *, const char *);
+/// int cgetnext(char **, char **);
+/// int cgetnum(char *, const char *, long *);
+/// int cgetset(const char *);
+/// int cgetstr(char *, const char *, char **);
+/// int cgetustr(char *, const char *, char **);
+///
+/// int daemon(int, int);
+/// int daemonfd(int, int);
+/// char *devname(__dev_t, __mode_t);
+/// char *devname_r(__dev_t, __mode_t, char *, int);
+/// char *fdevname(int);
+/// char *fdevname_r(int, char *, int);
+/// int getloadavg(double [], int);
+/// const char *
+/// getprogname(void);
+///
+/// int heapsort(void *, size_t, size_t,
+/// int (* )(const void *, const void *));
+///
+///
+///
+///
+///
+///
+/// int l64a_r(long, char *, int);
+/// int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
+///
+///
+///
+/// int mkostemp(char *, int);
+/// int mkostemps(char *, int, int);
+/// int mkostempsat(int, char *, int, int);
+/// void qsort_r(void *, size_t, size_t, void *,
+/// int (*)(void *, const void *, const void *));
+/// int radixsort(const unsigned char **, int, const unsigned char *,
+/// unsigned);
+/// void *reallocarray(void *, size_t, size_t) __attribute__((__warn_unused_result__))
+/// __attribute__((__alloc_size__(2, 3)));
+/// void *reallocf(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
+/// int rpmatch(const char *);
+/// void setprogname(const char *);
+/// int sradixsort(const unsigned char **, int, const unsigned char *,
+/// unsigned);
+/// void srandomdev(void);
+/// long long
+/// strtonum(const char *, long long, long long, const char **);
+///
+///
+/// __int64_t
+/// strtoq(const char *, char **, int);
+/// __uint64_t
+/// strtouq(const char *, char **, int);
+///
+/// extern char *suboptarg;
+///
+///
+///
+///
+///
+///
+/// typedef size_t rsize_t;
+///
+///
+///
+///
+/// typedef int errno_t;
+///
+///
+///
+/// typedef void (*constraint_handler_t)(const char * restrict,
+/// void * restrict, errno_t);
+///
+/// constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);
+///
+/// _Noreturn void abort_handler_s(const char * restrict, void * restrict,
+/// errno_t);
+///
+/// void ignore_handler_s(const char * restrict, void * restrict, errno_t);
+///
+/// errno_t qsort_s(void *, rsize_t, rsize_t,
+/// int (*)(const void *, const void *, void *), void *);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __int8_t int8_t;
+///
+///
+///
+///
+/// typedef __int16_t int16_t;
+///
+///
+///
+///
+/// typedef __int32_t int32_t;
+///
+///
+///
+///
+/// typedef __int64_t int64_t;
+///
+///
+///
+///
+/// typedef __uint8_t uint8_t;
+///
+///
+///
+///
+/// typedef __uint16_t uint16_t;
+///
+///
+///
+///
+/// typedef __uint32_t uint32_t;
+///
+///
+///
+///
+/// typedef __uint64_t uint64_t;
+///
+///
+///
+///
+/// typedef __intptr_t intptr_t;
+///
+///
+///
+/// typedef __uintptr_t uintptr_t;
+///
+///
+///
+/// typedef __intmax_t intmax_t;
+///
+///
+///
+/// typedef __uintmax_t uintmax_t;
+///
+///
+/// typedef __int_least8_t int_least8_t;
+/// typedef __int_least16_t int_least16_t;
+/// typedef __int_least32_t int_least32_t;
+/// typedef __int_least64_t int_least64_t;
+///
+/// typedef __uint_least8_t uint_least8_t;
+/// typedef __uint_least16_t uint_least16_t;
+/// typedef __uint_least32_t uint_least32_t;
+/// typedef __uint_least64_t uint_least64_t;
+///
+/// typedef __int_fast8_t int_fast8_t;
+/// typedef __int_fast16_t int_fast16_t;
+/// typedef __int_fast32_t int_fast32_t;
+/// typedef __int_fast64_t int_fast64_t;
+///
+/// typedef __uint_fast8_t uint_fast8_t;
+/// typedef __uint_fast16_t uint_fast16_t;
+/// typedef __uint_fast32_t uint_fast32_t;
+/// typedef __uint_fast64_t uint_fast64_t;
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct pthread;
+/// struct pthread_attr;
+/// struct pthread_cond;
+/// struct pthread_cond_attr;
+/// struct pthread_mutex;
+/// struct pthread_mutex_attr;
+/// struct pthread_once;
+/// struct pthread_rwlock;
+/// struct pthread_rwlockattr;
+/// struct pthread_barrier;
+/// struct pthread_barrier_attr;
+/// struct pthread_spinlock;
+///
+/// typedef struct pthread *pthread_t;
+///
+///
+/// typedef struct pthread_attr *pthread_attr_t;
+/// typedef struct pthread_mutex *pthread_mutex_t;
+/// typedef struct pthread_mutex_attr *pthread_mutexattr_t;
+/// typedef struct pthread_cond *pthread_cond_t;
+/// typedef struct pthread_cond_attr *pthread_condattr_t;
+/// typedef int pthread_key_t;
+/// typedef struct pthread_once pthread_once_t;
+/// typedef struct pthread_rwlock *pthread_rwlock_t;
+/// typedef struct pthread_rwlockattr *pthread_rwlockattr_t;
+/// typedef struct pthread_barrier *pthread_barrier_t;
+/// typedef struct pthread_barrierattr *pthread_barrierattr_t;
+/// typedef struct pthread_spinlock *pthread_spinlock_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef void *pthread_addr_t;
+/// typedef void *(*pthread_startroutine_t)(void *);
+///
+///
+///
+///
+/// struct pthread_once {
+/// int state;
+/// pthread_mutex_t mutex;
+/// };
+///
+///
+///
+/// typedef unsigned char u_char;
+/// typedef unsigned short u_short;
+/// typedef unsigned int u_int;
+/// typedef unsigned long u_long;
+///
+/// typedef unsigned short ushort;
+/// typedef unsigned int uint;
+///
+/// typedef __uint8_t u_int8_t;
+/// typedef __uint16_t u_int16_t;
+/// typedef __uint32_t u_int32_t;
+/// typedef __uint64_t u_int64_t;
+///
+/// typedef __uint64_t u_quad_t;
+/// typedef __int64_t quad_t;
+/// typedef quad_t * qaddr_t;
+///
+/// typedef char * caddr_t;
+/// typedef const char * c_caddr_t;
+///
+///
+/// typedef __blksize_t blksize_t;
+///
+///
+///
+/// typedef __cpuwhich_t cpuwhich_t;
+/// typedef __cpulevel_t cpulevel_t;
+/// typedef __cpusetid_t cpusetid_t;
+///
+///
+/// typedef __blkcnt_t blkcnt_t;
+///
+///
+///
+///
+/// typedef __clock_t clock_t;
+///
+///
+///
+///
+/// typedef __clockid_t clockid_t;
+///
+///
+///
+/// typedef __critical_t critical_t;
+/// typedef __daddr_t daddr_t;
+///
+///
+/// typedef __dev_t dev_t;
+///
+///
+///
+///
+/// typedef __fflags_t fflags_t;
+///
+///
+///
+/// typedef __fixpt_t fixpt_t;
+///
+///
+/// typedef __fsblkcnt_t fsblkcnt_t;
+/// typedef __fsfilcnt_t fsfilcnt_t;
+///
+///
+///
+///
+/// typedef __gid_t gid_t;
+///
+///
+///
+///
+/// typedef __uint32_t in_addr_t;
+///
+///
+///
+///
+/// typedef __uint16_t in_port_t;
+///
+///
+///
+///
+/// typedef __id_t id_t;
+///
+///
+///
+///
+/// typedef __ino_t ino_t;
+///
+///
+///
+///
+/// typedef __key_t key_t;
+///
+///
+///
+///
+/// typedef __lwpid_t lwpid_t;
+///
+///
+///
+///
+/// typedef __mode_t mode_t;
+///
+///
+///
+///
+/// typedef __accmode_t accmode_t;
+///
+///
+///
+///
+/// typedef __nlink_t nlink_t;
+///
+///
+///
+///
+/// typedef __off_t off_t;
+///
+///
+///
+///
+/// typedef __off64_t off64_t;
+///
+///
+///
+///
+/// typedef __pid_t pid_t;
+///
+///
+///
+/// typedef __register_t register_t;
+///
+///
+/// typedef __rlim_t rlim_t;
+///
+///
+///
+/// typedef __int64_t sbintime_t;
+///
+/// typedef __segsz_t segsz_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef __ssize_t ssize_t;
+///
+///
+///
+///
+/// typedef __suseconds_t suseconds_t;
+///
+///
+///
+///
+/// typedef __time_t time_t;
+///
+///
+///
+///
+/// typedef __timer_t timer_t;
+///
+///
+///
+///
+/// typedef __mqd_t mqd_t;
+///
+///
+///
+/// typedef __u_register_t u_register_t;
+///
+///
+/// typedef __uid_t uid_t;
+///
+///
+///
+///
+/// typedef __useconds_t useconds_t;
+///
+///
+///
+///
+///
+/// typedef unsigned long cap_ioctl_t;
+///
+///
+///
+///
+/// struct cap_rights;
+///
+/// typedef struct cap_rights cap_rights_t;
+///
+/// typedef __uint64_t kpaddr_t;
+/// typedef __uint64_t kvaddr_t;
+/// typedef __uint64_t ksize_t;
+/// typedef __int64_t kssize_t;
+///
+/// typedef __vm_offset_t vm_offset_t;
+/// typedef __uint64_t vm_ooffset_t;
+/// typedef __vm_paddr_t vm_paddr_t;
+/// typedef __uint64_t vm_pindex_t;
+/// typedef __vm_size_t vm_size_t;
+///
+/// typedef __rman_res_t rman_res_t;
+///
+/// static __inline __uint16_t
+/// __bitcount16(__uint16_t _x)
+/// {
+///
+/// _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1);
+/// _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f;
+/// _x = (_x + (_x >> 8)) & 0x00ff;
+/// return (_x);
+/// }
+///
+/// static __inline __uint32_t
+/// __bitcount32(__uint32_t _x)
+/// {
+///
+/// _x = (_x & 0x55555555) + ((_x & 0xaaaaaaaa) >> 1);
+/// _x = (_x & 0x33333333) + ((_x & 0xcccccccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f;
+/// _x = (_x + (_x >> 8));
+/// _x = (_x + (_x >> 16)) & 0x000000ff;
+/// return (_x);
+/// }
+///
+///
+/// static __inline __uint64_t
+/// __bitcount64(__uint64_t _x)
+/// {
+///
+/// _x = (_x & 0x5555555555555555) + ((_x & 0xaaaaaaaaaaaaaaaa) >> 1);
+/// _x = (_x & 0x3333333333333333) + ((_x & 0xcccccccccccccccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f0f0f0f0f;
+/// _x = (_x + (_x >> 8));
+/// _x = (_x + (_x >> 16));
+/// _x = (_x + (_x >> 32)) & 0x000000ff;
+/// return (_x);
+/// }
+///
+///
+///
+///
+///
+/// typedef struct __sigset {
+/// __uint32_t __bits[4];
+/// } __sigset_t;
+///
+///
+///
+/// struct timeval {
+/// time_t tv_sec;
+/// suseconds_t tv_usec;
+/// };
+///
+///
+///
+///
+///
+/// struct timespec {
+/// time_t tv_sec;
+/// long tv_nsec;
+/// };
+///
+///
+/// struct itimerspec {
+/// struct timespec it_interval;
+/// struct timespec it_value;
+/// };
+///
+///
+/// typedef unsigned long __fd_mask;
+///
+/// typedef __fd_mask fd_mask;
+///
+///
+///
+///
+/// typedef __sigset_t sigset_t;
+///
+/// typedef struct fd_set {
+/// __fd_mask __fds_bits[(((1024) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))];
+/// } fd_set;
+///
+///
+/// int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+/// const struct timespec *restrict, const sigset_t *restrict);
+///
+///
+///
+/// int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
+///
+///
+///
+///
+/// static __inline int
+/// __major(dev_t _d)
+/// {
+/// return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff));
+/// }
+///
+/// static __inline int
+/// __minor(dev_t _d)
+/// {
+/// return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff));
+/// }
+///
+/// static __inline dev_t
+/// __makedev(int _Major, int _Minor)
+/// {
+/// return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
+/// ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff));
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// int ftruncate(int, off_t);
+///
+///
+///
+/// off_t lseek(int, off_t, int);
+///
+///
+///
+/// void * mmap(void *, size_t, int, int, int, off_t);
+///
+///
+///
+/// int truncate(const char *, off_t);
+///
+///
+///
+///
+///
+///
+///
+///
+/// static __inline int atomic_cmpset_char(volatile u_char *dst, u_char expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_char(volatile u_char *dst, u_char *expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_short(volatile u_short *dst, u_short expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_short(volatile u_short *dst, u_short *expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+///
+///
+///
+///
+///
+/// static __inline u_int
+/// atomic_fetchadd_int(volatile u_int *p, u_int v)
+/// {
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " xaddl %0,%1 ; "
+/// "# atomic_fetchadd_int"
+/// : "+r" (v),
+/// "+m" (*p)
+/// : : "cc");
+/// return (v);
+/// }
+///
+///
+///
+///
+///
+/// static __inline u_long
+/// atomic_fetchadd_long(volatile u_long *p, u_long v)
+/// {
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " xaddq %0,%1 ; "
+/// "# atomic_fetchadd_long"
+/// : "+r" (v),
+/// "+m" (*p)
+/// : : "cc");
+/// return (v);
+/// }
+///
+/// static __inline int
+/// atomic_testandset_int(volatile u_int *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btsl %2,%1 ; "
+/// "# atomic_testandset_int"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Ir" (v & 0x1f)
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandset_long(volatile u_long *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btsq %2,%1 ; "
+/// "# atomic_testandset_long"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Jr" ((u_long)(v & 0x3f))
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandclear_int(volatile u_int *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btrl %2,%1 ; "
+/// "# atomic_testandclear_int"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Ir" (v & 0x1f)
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandclear_long(volatile u_long *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btrq %2,%1 ; "
+/// "# atomic_testandclear_long"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Jr" ((u_long)(v & 0x3f))
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline void
+/// __storeload_barrier(void)
+/// {
+///
+/// __asm volatile("lock; addl $0,-8(%%rsp)" : : : "memory", "cc");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_acq(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_rel(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_acq_rel(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_seq_cst(void)
+/// {
+///
+/// __storeload_barrier();
+/// }
+///
+///
+///
+/// static __inline void atomic_set_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_set_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "cc"); } static __inline void atomic_clear_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_add_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_subtract_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_set_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "cc"); } static __inline void atomic_clear_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_add_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_subtract_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+///
+///
+///
+///
+///
+/// static __inline u_char atomic_load_acq_char(volatile u_char *p) { u_char res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_char(volatile u_char *p, u_char v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_short atomic_load_acq_short(volatile u_short *p) { u_short res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_short(volatile u_short *p, u_short v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_int atomic_load_acq_int(volatile u_int *p) { u_int res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_int(volatile u_int *p, u_int v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_long atomic_load_acq_long(volatile u_long *p) { u_long res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_long(volatile u_long *p, u_long v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+///
+/// static __inline u_int
+/// atomic_swap_int(volatile u_int *p, u_int v)
+/// {
+///
+/// __asm volatile(
+/// " xchgl %1,%0 ; "
+/// "# atomic_swap_int"
+/// : "+r" (v),
+/// "+m" (*p));
+/// return (v);
+/// }
+///
+/// static __inline u_long
+/// atomic_swap_long(volatile u_long *p, u_long v)
+/// {
+///
+/// __asm volatile(
+/// " xchgq %1,%0 ; "
+/// "# atomic_swap_long"
+/// : "+r" (v),
+/// "+m" (*p));
+/// return (v);
+/// }
+///
+///
+///
+///
+///
+/// extern char *_PathLocale;
+///
+/// int __detect_path_locale(void);
+/// int __wrap_setrunelocale(const char *);
+///
+///
+/// enum {
+/// XLC_COLLATE = 0,
+/// XLC_CTYPE,
+/// XLC_MONETARY,
+/// XLC_NUMERIC,
+/// XLC_TIME,
+/// XLC_MESSAGES,
+/// XLC_LAST
+/// };
+///
+/// _Static_assert(XLC_LAST - XLC_COLLATE == 6, "XLC values should be contiguous");
+/// _Static_assert(XLC_COLLATE ==
+///
+/// 1
+///
+/// - 1,
+/// "XLC_COLLATE doesn't match the LC_COLLATE value.");
+/// _Static_assert(XLC_CTYPE ==
+///
+/// 2
+///
+/// - 1,
+/// "XLC_CTYPE doesn't match the LC_CTYPE value.");
+/// _Static_assert(XLC_MONETARY ==
+///
+/// 3
+///
+/// - 1,
+/// "XLC_MONETARY doesn't match the LC_MONETARY value.");
+/// _Static_assert(XLC_NUMERIC ==
+///
+/// 4
+///
+/// - 1,
+/// "XLC_NUMERIC doesn't match the LC_NUMERIC value.");
+/// _Static_assert(XLC_TIME ==
+///
+/// 5
+///
+/// - 1,
+/// "XLC_TIME doesn't match the LC_TIME value.");
+/// _Static_assert(XLC_MESSAGES ==
+///
+/// 6
+///
+/// - 1,
+/// "XLC_MESSAGES doesn't match the LC_MESSAGES value.");
+///
+/// struct xlocale_refcounted {
+///
+/// long retain_count;
+///
+/// void(*destructor)(void*);
+/// };
+///
+///
+///
+///
+///
+///
+///
+/// struct xlocale_component {
+/// struct xlocale_refcounted header;
+///
+/// char locale[31 +1];
+///
+/// char version[12];
+/// };
+///
+///
+///
+///
+/// struct _xlocale {
+/// struct xlocale_refcounted header;
+///
+/// struct xlocale_component *components[XLC_LAST];
+///
+///
+/// int monetary_locale_changed;
+///
+///
+/// int using_monetary_locale;
+///
+///
+/// int numeric_locale_changed;
+///
+///
+/// int using_numeric_locale;
+///
+///
+/// int using_time_locale;
+///
+///
+/// int using_messages_locale;
+///
+/// struct lconv lconv;
+///
+/// char *csym;
+/// };
+///
+///
+///
+///
+/// __attribute__((unused)) static void*
+/// xlocale_retain(void *val)
+/// {
+/// struct xlocale_refcounted *obj = val;
+/// atomic_add_long(&(obj->retain_count), 1);
+/// return (val);
+/// }
+///
+///
+///
+///
+/// __attribute__((unused)) static void
+/// xlocale_release(void *val)
+/// {
+/// struct xlocale_refcounted *obj = val;
+/// long count;
+///
+/// count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
+/// if (count < 0 && obj->destructor !=
+///
+/// ((void *)0)
+///
+/// )
+/// obj->destructor(obj);
+/// }
+///
+///
+///
+///
+///
+/// extern void* __collate_load(const char*, locale_t);
+/// extern void* __ctype_load(const char*, locale_t);
+/// extern void* __messages_load(const char*, locale_t);
+/// extern void* __monetary_load(const char*, locale_t);
+/// extern void* __numeric_load(const char*, locale_t);
+/// extern void* __time_load(const char*, locale_t);
+///
+/// extern struct _xlocale __xlocale_global_locale;
+/// extern struct _xlocale __xlocale_C_locale;
+///
+///
+///
+///
+/// void __set_thread_rune_locale(locale_t loc);
+///
+///
+///
+///
+/// extern int __has_thread_locale;
+///
+///
+///
+///
+///
+/// extern _Thread_local locale_t __thread_locale;
+///
+///
+///
+///
+///
+///
+///
+/// static inline locale_t __get_locale(void)
+/// {
+///
+/// if (!__has_thread_locale) {
+/// return (&__xlocale_global_locale);
+/// }
+/// return (__thread_locale ? __thread_locale : &__xlocale_global_locale);
+/// }
+///
+///
+///
+///
+///
+/// static inline locale_t get_real_locale(locale_t locale)
+/// {
+/// switch ((intptr_t)locale) {
+/// case 0: return (&__xlocale_C_locale);
+/// case -1: return (&__xlocale_global_locale);
+/// default: return (locale);
+/// }
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct xlocale_ctype {
+/// struct xlocale_component header;
+/// _RuneLocale *runes;
+/// size_t (*__mbrtowc)(wchar_t *
+///
+/// restrict
+///
+/// , const char *
+///
+/// restrict
+///
+/// ,
+/// size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// int (*__mbsinit)(const mbstate_t *);
+/// size_t (*__mbsnrtowcs)(wchar_t *
+///
+/// restrict
+///
+/// , const char **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t (*__wcrtomb)(char *
+///
+/// restrict
+///
+/// , wchar_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t (*__wcsnrtombs)(char *
+///
+/// restrict
+///
+/// , const wchar_t **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// int __mb_cur_max;
+/// int __mb_sb_limit;
+///
+/// __mbstate_t mblen;
+///
+/// __mbstate_t mbrlen;
+///
+/// __mbstate_t mbrtoc16;
+///
+/// __mbstate_t mbrtoc32;
+///
+/// __mbstate_t mbrtowc;
+///
+/// __mbstate_t mbsnrtowcs;
+///
+/// __mbstate_t mbsrtowcs;
+///
+/// __mbstate_t mbtowc;
+///
+/// __mbstate_t c16rtomb;
+///
+/// __mbstate_t c32rtomb;
+///
+/// __mbstate_t wcrtomb;
+///
+/// __mbstate_t wcsnrtombs;
+///
+/// __mbstate_t wcsrtombs;
+///
+/// __mbstate_t wctomb;
+/// };
+///
+/// extern struct xlocale_ctype __xlocale_global_ctype;
+///
+///
+///
+///
+/// int _none_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _UTF8_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GB18030_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GB2312_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GBK_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _BIG5_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _ascii_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+///
+/// typedef size_t (*mbrtowc_pfn_t)(wchar_t *
+///
+/// restrict
+///
+/// ,
+/// const char *
+///
+/// restrict
+///
+/// , size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// typedef size_t (*wcrtomb_pfn_t)(char *
+///
+/// restrict
+///
+/// , wchar_t,
+/// mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t __mbsnrtowcs_std(wchar_t *
+///
+/// restrict
+///
+/// , const char **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// , mbrtowc_pfn_t);
+/// size_t __wcsnrtombs_std(char *
+///
+/// restrict
+///
+/// , const wchar_t **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// , wcrtomb_pfn_t);
+///
+
+var X_DefaultRuneLocale = _RuneLocale{
+
+ __magic: *(*[8]int8)(unsafe.Pointer(ts)),
+ __encoding: *(*[32]int8)(unsafe.Pointer(ts + 9)),
+ __invalid_rune: 0xFFFD,
+
+ __runetype: [256]uint32{
+
+ 0: uint32(0x00000200),
+
+ 1: uint32(0x00000200),
+
+ 2: uint32(0x00000200),
+
+ 3: uint32(0x00000200),
+
+ 4: uint32(0x00000200),
+
+ 5: uint32(0x00000200),
+
+ 6: uint32(0x00000200),
+
+ 7: uint32(0x00000200),
+
+ 8: uint32(0x00000200),
+
+ 9: uint32(0x00000200 |
+
+ 0x00004000 |
+
+ 0x00020000),
+
+ 10: uint32(0x00000200 |
+
+ 0x00004000),
+
+ 11: uint32(0x00000200 |
+
+ 0x00004000),
+
+ 12: uint32(0x00000200 |
+
+ 0x00004000),
+
+ 13: uint32(0x00000200 |
+
+ 0x00004000),
+
+ 14: uint32(0x00000200),
+
+ 15: uint32(0x00000200),
+
+ 16: uint32(0x00000200),
+
+ 17: uint32(0x00000200),
+
+ 18: uint32(0x00000200),
+
+ 19: uint32(0x00000200),
+
+ 20: uint32(0x00000200),
+
+ 21: uint32(0x00000200),
+
+ 22: uint32(0x00000200),
+
+ 23: uint32(0x00000200),
+
+ 24: uint32(0x00000200),
+
+ 25: uint32(0x00000200),
+
+ 26: uint32(0x00000200),
+
+ 27: uint32(0x00000200),
+
+ 28: uint32(0x00000200),
+
+ 29: uint32(0x00000200),
+
+ 30: uint32(0x00000200),
+
+ 31: uint32(0x00000200),
+
+ 32: uint32(0x00004000 |
+
+ 0x00020000 |
+
+ 0x00040000),
+
+ 33: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 34: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 35: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 36: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 37: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 38: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 39: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 40: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 41: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 42: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 43: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 44: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 45: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 46: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 47: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 48: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 0),
+
+ 49: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 1),
+
+ 50: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 2),
+
+ 51: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 3),
+
+ 52: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 4),
+
+ 53: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 5),
+
+ 54: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 6),
+
+ 55: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 7),
+
+ 56: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 8),
+
+ 57: uint32(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ 9),
+
+ 58: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 59: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 60: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 61: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 62: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 63: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 64: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 65: uint32(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 10),
+
+ 66: uint32(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 11),
+
+ 67: uint32(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 12),
+
+ 68: uint32(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 13),
+
+ 69: uint32(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 14),
+
+ 70: uint32(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 15),
+
+ 71: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 72: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 73: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 74: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 75: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 76: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 77: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 78: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 79: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 80: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 81: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 82: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 83: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 84: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 85: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 86: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 87: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 88: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 89: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 90: uint32(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 91: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 92: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 93: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 94: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 95: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 96: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 97: uint32(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 10),
+
+ 98: uint32(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 11),
+
+ 99: uint32(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 12),
+
+ 100: uint32(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 13),
+
+ 101: uint32(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 14),
+
+ 102: uint32(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ 15),
+
+ 103: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 104: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 105: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 106: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 107: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 108: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 109: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 110: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 111: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 112: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 113: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 114: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 115: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 116: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 117: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 118: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 119: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 120: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 121: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 122: uint32(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 123: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 124: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 125: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 126: uint32(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 127: uint32(0x00000200),
+ },
+ __maplower: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ },
+ __mapupper: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ },
+} /* table.cpp.c:2243:19 */
+
+var X_CurrentRuneLocale uintptr = 0 /* table.cpp.c:4092:19 */
+
+/// _RuneLocale *
+/// __runes_for_locale(locale_t locale, int *mb_sb_limit)
+/// {
+/// (locale = get_real_locale(locale));
+/// struct xlocale_ctype *c = ((struct xlocale_ctype*)(locale)->components[XLC_CTYPE]);
+/// *mb_sb_limit = c->__mb_sb_limit;
+/// return c->runes;
+/// }
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type locale_t = uintptr /* alltypes.h:366:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+type uintptr_t = uint32 /* alltypes.h:78:24 */
+
+type intptr_t = int32 /* alltypes.h:93:15 */
+
+type int8_t = int8 /* alltypes.h:119:25 */
+
+type int16_t = int16 /* alltypes.h:124:25 */
+
+type int32_t = int32 /* alltypes.h:129:25 */
+
+type int64_t = int64 /* alltypes.h:134:25 */
+
+type intmax_t = int64 /* alltypes.h:139:25 */
+
+type uint8_t = uint8 /* alltypes.h:144:25 */
+
+type uint16_t = uint16 /* alltypes.h:149:25 */
+
+type uint32_t = uint32 /* alltypes.h:154:25 */
+
+type uint64_t = uint64 /* alltypes.h:159:25 */
+
+type uintmax_t = uint64 /* alltypes.h:169:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type ssize_t = int32 /* alltypes.h:88:15 */
+
+type off_t = int64 /* alltypes.h:185:16 */
+
+type _IO_FILE = struct {
+ flags uint32
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int32
+ mode int32
+ lock int32
+ lbf int32
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:343:9 */
+
+type FILE = _IO_FILE /* alltypes.h:343:25 */
+
+type va_list = uintptr /* alltypes.h:349:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint32
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float64 /* alltypes.h:38:21 */
+
+type double_t = float64 /* alltypes.h:43:21 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type syscall_arg_t = int32 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = size_t(0); i < size_t(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 41 /* "infinity" */ + uintptr(i)))); i++ {
+ if i < size_t(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == size_t(3) || i == size_t(8) || i > size_t(3) && pok != 0 {
+ if i != size_t(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > size_t(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = size_t(0); i < size_t(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 50 /* "nan" */ + uintptr(i)))); i++ {
+ if i < size_t(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == size_t(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ for i = size_t(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint32(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 55 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf) - int32((*FILE)(unsafe.Pointer(f)).rpos)) / 1)
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1)
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:51:66 */
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type pid_t = int32 /* alltypes.h:258:13 */
+
+type uid_t = uint32 /* alltypes.h:268:18 */
+
+type gid_t = uint32 /* alltypes.h:273:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:378:1 */
+
+type socklen_t = uint32 /* alltypes.h:384:18 */
+
+type sa_family_t = uint16 /* alltypes.h:389:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ msg_iov uintptr
+ msg_iovlen int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ msg_flags int32
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = size_t(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint32(uintptr(0)))
+ b -= 68 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+66, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:108:16 */
+
+type clockid_t = int32 /* alltypes.h:237:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+} /* alltypes.h:252:1 */
+
+type pthread_t = uintptr /* alltypes.h:296:26 */
+
+type pthread_once_t = int32 /* alltypes.h:302:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:307:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:312:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:317:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:322:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:327:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:332:40 */
+
+type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:372:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:372:71 */
+
+type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:395:147 */
+
+type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:400:157 */
+
+type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:410:112 */
+
+type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:420:139 */
+
+type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:425:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [4]int32
+ __reserved3 int32
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:232:14 */
+
+type clock_t = int32 /* alltypes.h:242:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ tm_gmtoff int32
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* pthread.h:206:1 */
+
+type useconds_t = uint32 /* alltypes.h:283:18 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint32(1), uint32(nais)*uint32(unsafe.Sizeof(aibuf{}))+uint32(canon_len)+uint32(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*68
+ Xmemcpy(tls, outcanon, bp+1352, uint32(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addr = out + uintptr(k)*68 + 32
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*68)).ai.ai_next = out + uintptr(k)*68
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*68+32+4, bp+8+uintptr(i)*28+8, uint32(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*68+32+8, bp+8+uintptr(i)*28+8, uint32(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ msg_iov uintptr
+ msg_iovlen int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ msg_flags int32
+ }
+ msg_len uint32
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var size size_t = size_t(63)
+ // var res uintptr at bp, 4
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var size size_t = size_t(63)
+ // var res uintptr at bp, 4
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint32(unsafe.Sizeof(uintptr(0))) - uint32(1))
+
+ need = uint32(4) * uint32(unsafe.Sizeof(uintptr(0)))
+ need = need + uint32(cnt+1)*(uint32(unsafe.Sizeof(uintptr(0)))+uint32((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + size_t(1))
+ need = need + (Xstrlen(tls, bp+1344) + size_t(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint32(3) * uint32(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint32(cnt+1) * uint32(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)), bp+uintptr(i)*28+8, uint32((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + size_t(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4))) + size_t(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*4)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint32
+ mem_end uint32
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint32
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [2]byte
+ data uintptr
+ len int32
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint32
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint32
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _u struct {
+ _ [0]uint32
+ pad [52]int8
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint32(3) * uint32(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+64,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+89)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 98)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+115, ts+126)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint32(4))
+ Xmemcpy(tls, bp, ts+129, uint32(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint32(4))
+ Xmemcpy(tls, bp+528+8, ts+129, uint32(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint32(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int32(z)-int32(p))/1 < 256 {
+ Xmemcpy(tls, buf, p, uint32((int32(z)-int32(p))/1+1))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint32)(unsafe.Pointer(bp /* a */)) = [4]uint32{0: uint32(0)}
+ // var z uintptr at bp+16, 4
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) = Xstrtoul(tls, s, bp+16, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 16)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint32)(unsafe.Pointer(bp + 1*4)) = *(*uint32)(unsafe.Pointer(bp)) & uint32(0xffffff)
+ AssignShrPtrUint32(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint32)(unsafe.Pointer(bp + 2*4)) = *(*uint32)(unsafe.Pointer(bp + 1*4)) & uint32(0xffff)
+ AssignShrPtrUint32(bp+1*4, int(16))
+ fallthrough
+ case 2:
+ *(*uint32)(unsafe.Pointer(bp + 3*4)) = *(*uint32)(unsafe.Pointer(bp + 2*4)) & uint32(0xff)
+ AssignShrPtrUint32(bp+2*4, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) > uint32(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, l, ts+142, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+129, uint32(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]int8{})),
+ ts+154,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]int8{})),
+ ts+178,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+208))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint32(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < l {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint32(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint32(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+84, 4
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int32(p)-int32(name))/1 < 64 {
+ Xmemcpy(tls, bp+4, name, uint32((int32(p)-int32(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int32(p)-int32(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint32(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+84, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 84 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:175:18 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint32(255))-size_t(1) >= size_t(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+115, ts+126)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint32((int32(z)-int32(p))/1+1))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 211)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 228)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 244)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 260)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 276)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 292)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint32(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint32(255))
+ if l-size_t(1) >= size_t(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+size_t(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint32(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+129, uint32(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4))
+ Xmemcpy(tls, bp+8,
+ ts+129, uint32(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint32(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint32(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint32(cnt), uint32(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 54 /* "" */
+ var port uint32 = uint32(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint32(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 72)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint32(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+28, AssignPtrUintptr(f+16, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+8, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint32(1)) == size_t(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ // var f FILE at bp, 136
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ // var f FILE at bp, 136
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1))
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint32 { /* strtol.c:31:15: */
+ return uint32(strtox1(tls, s, p, base, uint64(2*uint32(0x7fffffff)+uint32(1))))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int32 { /* strtol.c:36:6: */
+ return int32(strtox1(tls, s, p, base, uint64(0+Uint32FromInt32(Int32(-Int32(0x7fffffff))-Int32FromInt32(1)))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return Xstrtoll(tls, s, p, base)
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return Xstrtoull(tls, s, p, base)
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+size_t(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+size_t(1))
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint32((int32(p) - int32(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[8]size_t)(unsafe.Pointer(bp /* byteset */)) = [8]size_t{0: size_t(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return size_t(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int32(s) - int32(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint32(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4, size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4))&(size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int32(s) - int32(a)) / 1)
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.cpp.c:4092:41:
+}
+
+var ts1 = "RuneMagi\x00NONE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_freebsd_amd64.go b/vendor/modernc.org/libc/musl_freebsd_amd64.go
new file mode 100644
index 00000000..55490d4d
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_freebsd_amd64.go
@@ -0,0 +1,6790 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_freebsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+/// typedef __ct_rune_t __wint_t;
+///
+///
+///
+/// typedef __uint_least16_t __char16_t;
+/// typedef __uint_least32_t __char32_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef struct {
+/// long long __max_align1 __attribute__((__aligned__(_Alignof(long long))));
+///
+/// long double __max_align2 __attribute__((__aligned__(_Alignof(long double))));
+///
+/// } __max_align_t;
+///
+/// typedef __uint64_t __dev_t;
+///
+/// typedef __uint32_t __fixpt_t;
+///
+///
+///
+///
+///
+/// typedef union {
+/// char __mbstate8[128];
+/// __int64_t _mbstateL;
+/// } __mbstate_t;
+///
+/// typedef __uintmax_t __rman_res_t;
+///
+///
+///
+///
+///
+///
+/// typedef __builtin_va_list __va_list;
+///
+///
+///
+///
+///
+///
+/// typedef __va_list __gnuc_va_list;
+///
+///
+///
+///
+/// unsigned long ___runetype(__ct_rune_t) __attribute__((__pure__));
+/// __ct_rune_t ___tolower(__ct_rune_t) __attribute__((__pure__));
+/// __ct_rune_t ___toupper(__ct_rune_t) __attribute__((__pure__));
+///
+///
+/// extern int __mb_sb_limit;
+
+type _RuneEntry = struct {
+ __min int32
+ __max int32
+ __map int32
+ _ [4]byte
+ __types uintptr
+} /* table.cpp.c:290:3 */
+
+type _RuneRange = struct {
+ __nranges int32
+ _ [4]byte
+ __ranges uintptr
+} /* table.cpp.c:295:3 */
+
+type _RuneLocale = struct {
+ __magic [8]int8
+ __encoding [32]int8
+ __sgetrune uintptr
+ __sputrune uintptr
+ __invalid_rune int32
+ _ [4]byte
+ __runetype [256]uint64
+ __maplower [256]int32
+ __mapupper [256]int32
+ __runetype_ext _RuneRange
+ __maplower_ext _RuneRange
+ __mapupper_ext _RuneRange
+ __variable uintptr
+ __variable_len int32
+ _ [4]byte
+} /* table.cpp.c:320:3 */
+///
+/// extern const _RuneLocale _DefaultRuneLocale;
+/// extern const _RuneLocale *_CurrentRuneLocale;
+///
+///
+///
+/// extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
+/// static __inline const _RuneLocale *__getCurrentRuneLocale(void)
+/// {
+///
+/// if (_ThreadRuneLocale)
+/// return _ThreadRuneLocale;
+/// return _CurrentRuneLocale;
+/// }
+///
+///
+///
+///
+///
+/// static __inline int
+/// __maskrune(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return ((_c < 0 || _c >= (1 <<8 )) ? ___runetype(_c) :
+/// (__getCurrentRuneLocale())->__runetype[_c]) & _f;
+/// }
+///
+/// static __inline int
+/// __sbmaskrune(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? 0 :
+/// (__getCurrentRuneLocale())->__runetype[_c] & _f;
+/// }
+///
+/// static __inline int
+/// __istype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (!!__maskrune(_c, _f));
+/// }
+///
+/// static __inline int
+/// __sbistype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (!!__sbmaskrune(_c, _f));
+/// }
+///
+/// static __inline int
+/// __isctype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (_c < 0 || _c >= 128) ? 0 :
+/// !!(_DefaultRuneLocale.__runetype[_c] & _f);
+/// }
+///
+/// static __inline __ct_rune_t
+/// __toupper(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= (1 <<8 )) ? ___toupper(_c) :
+/// (__getCurrentRuneLocale())->__mapupper[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __sbtoupper(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
+/// (__getCurrentRuneLocale())->__mapupper[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __tolower(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= (1 <<8 )) ? ___tolower(_c) :
+/// (__getCurrentRuneLocale())->__maplower[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __sbtolower(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
+/// (__getCurrentRuneLocale())->__maplower[_c];
+/// }
+///
+/// static __inline int
+/// __wcwidth(__ct_rune_t _c)
+/// {
+/// unsigned int _x;
+///
+/// if (_c == 0)
+/// return (0);
+/// _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L);
+/// if ((_x & 0xe0000000L) != 0)
+/// return ((_x & 0xe0000000L) >> 30);
+/// return ((_x & 0x00040000L) != 0 ? 1 : -1);
+/// }
+///
+///
+///
+/// int isalnum(int);
+/// int isalpha(int);
+/// int iscntrl(int);
+/// int isdigit(int);
+/// int isgraph(int);
+/// int islower(int);
+/// int isprint(int);
+/// int ispunct(int);
+/// int isspace(int);
+/// int isupper(int);
+/// int isxdigit(int);
+/// int tolower(int);
+/// int toupper(int);
+///
+///
+/// int isascii(int);
+/// int toascii(int);
+///
+///
+///
+/// int isblank(int);
+///
+///
+///
+/// int digittoint(int);
+/// int ishexnumber(int);
+/// int isideogram(int);
+/// int isnumber(int);
+/// int isphonogram(int);
+/// int isrune(int);
+/// int isspecial(int);
+///
+///
+///
+///
+///
+/// typedef struct _xlocale *locale_t;
+///
+///
+///
+///
+/// unsigned long ___runetype_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// __ct_rune_t ___tolower_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// __ct_rune_t ___toupper_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// _RuneLocale *__runes_for_locale(locale_t, int*);
+///
+/// inline int
+/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
+/// inline int
+/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
+///
+/// inline int
+/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
+/// {
+/// int __limit;
+/// _RuneLocale *runes = __runes_for_locale(__loc, &__limit);
+/// return (__c < 0 || __c >= __limit) ? 0 :
+/// runes->__runetype[__c] & __f;
+/// }
+///
+/// inline int
+/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
+/// {
+/// return (!!__sbmaskrune_l(__c, __f, __loc));
+/// }
+///
+///
+///
+///
+///
+///
+///
+/// inline int isalnum_l(int, locale_t); inline int isalnum_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L|0x00000400L|0x00400000L, __l); }
+/// inline int isalpha_l(int, locale_t); inline int isalpha_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L, __l); }
+/// inline int isblank_l(int, locale_t); inline int isblank_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00020000L, __l); }
+/// inline int iscntrl_l(int, locale_t); inline int iscntrl_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000200L, __l); }
+/// inline int isdigit_l(int, locale_t); inline int isdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L, __l); }
+/// inline int isgraph_l(int, locale_t); inline int isgraph_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000800L, __l); }
+/// inline int ishexnumber_l(int, locale_t); inline int ishexnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
+/// inline int isideogram_l(int, locale_t); inline int isideogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00080000L, __l); }
+/// inline int islower_l(int, locale_t); inline int islower_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00001000L, __l); }
+/// inline int isnumber_l(int, locale_t); inline int isnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L|0x00400000L, __l); }
+/// inline int isphonogram_l(int, locale_t); inline int isphonogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00200000L, __l); }
+/// inline int isprint_l(int, locale_t); inline int isprint_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00040000L, __l); }
+/// inline int ispunct_l(int, locale_t); inline int ispunct_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00002000L, __l); }
+/// inline int isrune_l(int, locale_t); inline int isrune_l(int __c, locale_t __l) { return __sbistype_l(__c, 0xFFFFFF00L, __l); }
+/// inline int isspace_l(int, locale_t); inline int isspace_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00004000L, __l); }
+/// inline int isspecial_l(int, locale_t); inline int isspecial_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00100000L, __l); }
+/// inline int isupper_l(int, locale_t); inline int isupper_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00008000L, __l); }
+/// inline int isxdigit_l(int, locale_t); inline int isxdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
+///
+/// inline int digittoint_l(int, locale_t);
+/// inline int tolower_l(int, locale_t);
+/// inline int toupper_l(int, locale_t);
+///
+/// inline int digittoint_l(int __c, locale_t __l)
+/// { return __sbmaskrune_l((__c), 0xFF, __l); }
+///
+/// inline int tolower_l(int __c, locale_t __l)
+/// {
+/// int __limit;
+/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
+/// return (__c < 0 || __c >= __limit) ? __c :
+/// __runes->__maplower[__c];
+/// }
+/// inline int toupper_l(int __c, locale_t __l)
+/// {
+/// int __limit;
+/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
+/// return (__c < 0 || __c >= __limit) ? __c :
+/// __runes->__mapupper[__c];
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __mbstate_t mbstate_t;
+///
+///
+///
+///
+/// typedef __size_t size_t;
+///
+///
+///
+///
+///
+/// typedef __va_list va_list;
+///
+///
+///
+///
+///
+///
+/// typedef ___wchar_t wchar_t;
+///
+///
+///
+///
+///
+/// typedef __wint_t wint_t;
+///
+/// typedef struct __sFILE FILE;
+///
+/// struct tm;
+///
+///
+/// wint_t btowc(int);
+/// wint_t fgetwc(FILE *);
+/// wchar_t *
+/// fgetws(wchar_t * restrict, int, FILE * restrict);
+/// wint_t fputwc(wchar_t, FILE *);
+/// int fputws(const wchar_t * restrict, FILE * restrict);
+/// int fwide(FILE *, int);
+/// int fwprintf(FILE * restrict, const wchar_t * restrict, ...);
+/// int fwscanf(FILE * restrict, const wchar_t * restrict, ...);
+/// wint_t getwc(FILE *);
+/// wint_t getwchar(void);
+/// size_t mbrlen(const char * restrict, size_t, mbstate_t * restrict);
+/// size_t mbrtowc(wchar_t * restrict, const char * restrict, size_t,
+/// mbstate_t * restrict);
+/// int mbsinit(const mbstate_t *);
+/// size_t mbsrtowcs(wchar_t * restrict, const char ** restrict, size_t,
+/// mbstate_t * restrict);
+/// wint_t putwc(wchar_t, FILE *);
+/// wint_t putwchar(wchar_t);
+/// int swprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
+/// ...);
+/// int swscanf(const wchar_t * restrict, const wchar_t * restrict, ...);
+/// wint_t ungetwc(wint_t, FILE *);
+/// int vfwprintf(FILE * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vswprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
+/// __va_list);
+/// int vwprintf(const wchar_t * restrict, __va_list);
+/// size_t wcrtomb(char * restrict, wchar_t, mbstate_t * restrict);
+/// wchar_t *wcscat(wchar_t * restrict, const wchar_t * restrict);
+/// wchar_t *wcschr(const wchar_t *, wchar_t) __attribute__((__pure__));
+/// int wcscmp(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// int wcscoll(const wchar_t *, const wchar_t *);
+/// wchar_t *wcscpy(wchar_t * restrict, const wchar_t * restrict);
+/// size_t wcscspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// size_t wcsftime(wchar_t * restrict, size_t, const wchar_t * restrict,
+/// const struct tm * restrict);
+/// size_t wcslen(const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsncat(wchar_t * restrict, const wchar_t * restrict,
+/// size_t);
+/// int wcsncmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
+/// wchar_t *wcsncpy(wchar_t * restrict , const wchar_t * restrict, size_t);
+/// wchar_t *wcspbrk(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsrchr(const wchar_t *, wchar_t) __attribute__((__pure__));
+/// size_t wcsrtombs(char * restrict, const wchar_t ** restrict, size_t,
+/// mbstate_t * restrict);
+/// size_t wcsspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsstr(const wchar_t * restrict, const wchar_t * restrict)
+/// __attribute__((__pure__));
+/// size_t wcsxfrm(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// int wctob(wint_t);
+/// double wcstod(const wchar_t * restrict, wchar_t ** restrict);
+/// wchar_t *wcstok(wchar_t * restrict, const wchar_t * restrict,
+/// wchar_t ** restrict);
+/// long wcstol(const wchar_t * restrict, wchar_t ** restrict, int);
+/// unsigned long
+/// wcstoul(const wchar_t * restrict, wchar_t ** restrict, int);
+/// wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) __attribute__((__pure__));
+/// int wmemcmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
+/// wchar_t *wmemcpy(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
+/// wchar_t *wmemset(wchar_t *, wchar_t, size_t);
+/// int wprintf(const wchar_t * restrict, ...);
+/// int wscanf(const wchar_t * restrict, ...);
+///
+///
+/// extern FILE *__stdinp;
+/// extern FILE *__stdoutp;
+/// extern FILE *__stderrp;
+///
+/// int vfwscanf(FILE * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vswscanf(const wchar_t * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vwscanf(const wchar_t * restrict, __va_list);
+/// float wcstof(const wchar_t * restrict, wchar_t ** restrict);
+/// long double
+/// wcstold(const wchar_t * restrict, wchar_t ** restrict);
+///
+///
+/// long long
+/// wcstoll(const wchar_t * restrict, wchar_t ** restrict, int);
+///
+/// unsigned long long
+/// wcstoull(const wchar_t * restrict, wchar_t ** restrict, int);
+///
+///
+///
+///
+/// int wcswidth(const wchar_t *, size_t);
+/// int wcwidth(wchar_t);
+///
+///
+///
+///
+/// size_t mbsnrtowcs(wchar_t * restrict, const char ** restrict, size_t,
+/// size_t, mbstate_t * restrict);
+/// FILE *open_wmemstream(wchar_t **, size_t *);
+/// wchar_t *wcpcpy(wchar_t * restrict, const wchar_t * restrict);
+/// wchar_t *wcpncpy(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// wchar_t *wcsdup(const wchar_t *) __attribute__((__malloc__));
+/// int wcscasecmp(const wchar_t *, const wchar_t *);
+/// int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n);
+/// size_t wcsnlen(const wchar_t *, size_t) __attribute__((__pure__));
+/// size_t wcsnrtombs(char * restrict, const wchar_t ** restrict, size_t,
+/// size_t, mbstate_t * restrict);
+///
+///
+///
+/// wchar_t *fgetwln(FILE * restrict, size_t * restrict);
+/// size_t wcslcat(wchar_t *, const wchar_t *, size_t);
+/// size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
+///
+///
+///
+///
+///
+/// int wcscasecmp_l(const wchar_t *, const wchar_t *,
+/// locale_t);
+/// int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t,
+/// locale_t);
+/// int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
+/// size_t wcsxfrm_l(wchar_t * restrict,
+/// const wchar_t * restrict, size_t, locale_t);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct lconv {
+/// char *decimal_point;
+/// char *thousands_sep;
+/// char *grouping;
+/// char *int_curr_symbol;
+/// char *currency_symbol;
+/// char *mon_decimal_point;
+/// char *mon_thousands_sep;
+/// char *mon_grouping;
+/// char *positive_sign;
+/// char *negative_sign;
+/// char int_frac_digits;
+/// char frac_digits;
+/// char p_cs_precedes;
+/// char p_sep_by_space;
+/// char n_cs_precedes;
+/// char n_sep_by_space;
+/// char p_sign_posn;
+/// char n_sign_posn;
+/// char int_p_cs_precedes;
+/// char int_n_cs_precedes;
+/// char int_p_sep_by_space;
+/// char int_n_sep_by_space;
+/// char int_p_sign_posn;
+/// char int_n_sign_posn;
+/// };
+///
+///
+/// struct lconv *localeconv(void);
+/// char *setlocale(int, const char *);
+///
+///
+///
+///
+/// locale_t duplocale(locale_t base);
+/// void freelocale(locale_t loc);
+/// locale_t newlocale(int mask, const char *locale, locale_t base);
+/// const char *querylocale(int mask, locale_t loc);
+/// locale_t uselocale(locale_t loc);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// wint_t btowc_l(int, locale_t);
+/// wint_t fgetwc_l(FILE *, locale_t);
+/// wchar_t *fgetws_l(wchar_t * restrict, int, FILE * restrict,
+/// locale_t);
+/// wint_t fputwc_l(wchar_t, FILE *, locale_t);
+/// int fputws_l(const wchar_t * restrict, FILE * restrict,
+/// locale_t);
+/// int fwprintf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// int fwscanf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// wint_t getwc_l(FILE *, locale_t);
+/// wint_t getwchar_l(locale_t);
+/// size_t mbrlen_l(const char * restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t mbrtowc_l(wchar_t * restrict,
+/// const char * restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// int mbsinit_l(const mbstate_t *, locale_t);
+/// size_t mbsrtowcs_l(wchar_t * restrict,
+/// const char ** restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// wint_t putwc_l(wchar_t, FILE *, locale_t);
+/// wint_t putwchar_l(wchar_t, locale_t);
+/// int swprintf_l(wchar_t * restrict, size_t n, locale_t,
+/// const wchar_t * restrict, ...);
+/// int swscanf_l(const wchar_t * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// wint_t ungetwc_l(wint_t, FILE *, locale_t);
+/// int vfwprintf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vswprintf_l(wchar_t * restrict, size_t n, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vwprintf_l(locale_t, const wchar_t * restrict,
+/// __va_list);
+/// size_t wcrtomb_l(char * restrict, wchar_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t wcsftime_l(wchar_t * restrict, size_t,
+/// const wchar_t * restrict,
+/// const struct tm * restrict, locale_t);
+/// size_t wcsrtombs_l(char * restrict,
+/// const wchar_t ** restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// double wcstod_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long wcstol_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// unsigned long wcstoul_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// int wcswidth_l(const wchar_t *, size_t, locale_t);
+/// int wctob_l(wint_t, locale_t);
+/// int wcwidth_l(wchar_t, locale_t);
+/// int wprintf_l(locale_t, const wchar_t * restrict, ...);
+/// int wscanf_l(locale_t, const wchar_t * restrict, ...);
+/// int vfwscanf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vswscanf_l(const wchar_t * restrict, locale_t,
+/// const wchar_t *restrict, __va_list);
+/// int vwscanf_l(locale_t, const wchar_t * restrict,
+/// __va_list);
+/// float wcstof_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long double wcstold_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long long wcstoll_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// unsigned long long wcstoull_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// size_t mbsnrtowcs_l(wchar_t * restrict,
+/// const char ** restrict, size_t, size_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t wcsnrtombs_l(char * restrict,
+/// const wchar_t ** restrict, size_t, size_t,
+/// mbstate_t * restrict, locale_t);
+///
+///
+///
+///
+///
+/// struct lconv *localeconv_l(locale_t);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __rune_t rune_t;
+///
+/// typedef struct {
+/// int quot;
+/// int rem;
+/// } div_t;
+///
+/// typedef struct {
+/// long quot;
+/// long rem;
+/// } ldiv_t;
+///
+///
+///
+///
+///
+/// double atof_l(const char *, locale_t);
+/// int atoi_l(const char *, locale_t);
+/// long atol_l(const char *, locale_t);
+/// long long atoll_l(const char *, locale_t);
+/// int mblen_l(const char *, size_t, locale_t);
+/// size_t mbstowcs_l(wchar_t * restrict,
+/// const char * restrict, size_t, locale_t);
+/// int mbtowc_l(wchar_t * restrict,
+/// const char * restrict, size_t, locale_t);
+/// double strtod_l(const char *, char **, locale_t);
+/// float strtof_l(const char *, char **, locale_t);
+/// long strtol_l(const char *, char **, int, locale_t);
+/// long double strtold_l(const char *, char **, locale_t);
+/// long long strtoll_l(const char *, char **, int, locale_t);
+/// unsigned long strtoul_l(const char *, char **, int, locale_t);
+/// unsigned long long strtoull_l(const char *, char **, int, locale_t);
+/// size_t wcstombs_l(char * restrict,
+/// const wchar_t * restrict, size_t, locale_t);
+/// int wctomb_l(char *, wchar_t, locale_t);
+///
+/// int ___mb_cur_max_l(locale_t);
+///
+///
+/// extern int __mb_cur_max;
+/// extern int ___mb_cur_max(void);
+///
+///
+/// _Noreturn void abort(void);
+/// int abs(int) __attribute__((__const__));
+/// int atexit(void (* )(void));
+/// double atof(const char *);
+/// int atoi(const char *);
+/// long atol(const char *);
+/// void *bsearch(const void *, const void *, size_t,
+/// size_t, int (*)(const void * , const void *));
+/// void *calloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__))
+/// __attribute__((__alloc_size__(1, 2)));
+/// div_t div(int, int) __attribute__((__const__));
+/// _Noreturn void exit(int);
+/// void free(void *);
+/// char *getenv(const char *);
+/// long labs(long) __attribute__((__const__));
+/// ldiv_t ldiv(long, long) __attribute__((__const__));
+/// void *malloc(size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1)));
+/// int mblen(const char *, size_t);
+/// size_t mbstowcs(wchar_t * restrict , const char * restrict, size_t);
+/// int mbtowc(wchar_t * restrict, const char * restrict, size_t);
+/// void qsort(void *, size_t, size_t,
+/// int (* )(const void *, const void *));
+/// int rand(void);
+/// void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
+/// void srand(unsigned);
+/// double strtod(const char * restrict, char ** restrict);
+/// float strtof(const char * restrict, char ** restrict);
+/// long strtol(const char * restrict, char ** restrict, int);
+/// long double
+/// strtold(const char * restrict, char ** restrict);
+/// unsigned long
+/// strtoul(const char * restrict, char ** restrict, int);
+/// int system(const char *);
+/// int wctomb(char *, wchar_t);
+/// size_t wcstombs(char * restrict, const wchar_t * restrict, size_t);
+///
+/// typedef struct {
+/// long long quot;
+/// long long rem;
+/// } lldiv_t;
+///
+///
+/// long long
+/// atoll(const char *);
+///
+/// long long
+/// llabs(long long) __attribute__((__const__));
+///
+/// lldiv_t lldiv(long long, long long) __attribute__((__const__));
+///
+/// long long
+/// strtoll(const char * restrict, char ** restrict, int);
+///
+/// unsigned long long
+/// strtoull(const char * restrict, char ** restrict, int);
+///
+///
+/// _Noreturn void _Exit(int);
+///
+///
+///
+///
+///
+///
+/// void * aligned_alloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__alloc_align__(1)))
+/// __attribute__((__alloc_size__(2)));
+/// int at_quick_exit(void (*)(void));
+/// _Noreturn void
+/// quick_exit(int);
+///
+///
+///
+///
+///
+/// char *realpath(const char * restrict, char * restrict);
+///
+///
+/// int rand_r(unsigned *);
+///
+///
+/// int posix_memalign(void **, size_t, size_t);
+/// int setenv(const char *, const char *, int);
+/// int unsetenv(const char *);
+///
+///
+///
+/// int getsubopt(char **, char *const *, char **);
+///
+/// char *mkdtemp(char *);
+///
+///
+///
+/// int mkstemp(char *);
+///
+/// long a64l(const char *);
+/// double drand48(void);
+///
+/// double erand48(unsigned short[3]);
+///
+///
+/// char *initstate(unsigned int, char *, size_t);
+/// long jrand48(unsigned short[3]);
+/// char *l64a(long);
+/// void lcong48(unsigned short[7]);
+/// long lrand48(void);
+///
+/// char *mktemp(char *);
+///
+///
+/// long mrand48(void);
+/// long nrand48(unsigned short[3]);
+/// int putenv(char *);
+/// long random(void);
+/// unsigned short
+/// *seed48(unsigned short[3]);
+/// char *setstate( char *);
+/// void srand48(long);
+/// void srandom(unsigned int);
+///
+///
+///
+/// int grantpt(int);
+/// int posix_openpt(int);
+/// char *ptsname(int);
+/// int unlockpt(int);
+///
+///
+///
+/// int ptsname_r(int, char *, size_t);
+///
+///
+///
+/// extern const char *malloc_conf;
+/// extern void (*malloc_message)(void *, const char *);
+///
+/// void abort2(const char *, int, void **) __attribute__((__noreturn__));
+/// __uint32_t
+/// arc4random(void);
+/// void arc4random_buf(void *, size_t);
+/// __uint32_t
+/// arc4random_uniform(__uint32_t);
+///
+///
+///
+///
+///
+///
+/// char *getbsize(int *, long *);
+///
+/// char *cgetcap(char *, const char *, int);
+/// int cgetclose(void);
+/// int cgetent(char **, char **, const char *);
+/// int cgetfirst(char **, char **);
+/// int cgetmatch(const char *, const char *);
+/// int cgetnext(char **, char **);
+/// int cgetnum(char *, const char *, long *);
+/// int cgetset(const char *);
+/// int cgetstr(char *, const char *, char **);
+/// int cgetustr(char *, const char *, char **);
+///
+/// int daemon(int, int);
+/// int daemonfd(int, int);
+/// char *devname(__dev_t, __mode_t);
+/// char *devname_r(__dev_t, __mode_t, char *, int);
+/// char *fdevname(int);
+/// char *fdevname_r(int, char *, int);
+/// int getloadavg(double [], int);
+/// const char *
+/// getprogname(void);
+///
+/// int heapsort(void *, size_t, size_t,
+/// int (* )(const void *, const void *));
+///
+///
+///
+///
+///
+///
+/// int l64a_r(long, char *, int);
+/// int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
+///
+///
+///
+/// int mkostemp(char *, int);
+/// int mkostemps(char *, int, int);
+/// int mkostempsat(int, char *, int, int);
+/// void qsort_r(void *, size_t, size_t, void *,
+/// int (*)(void *, const void *, const void *));
+/// int radixsort(const unsigned char **, int, const unsigned char *,
+/// unsigned);
+/// void *reallocarray(void *, size_t, size_t) __attribute__((__warn_unused_result__))
+/// __attribute__((__alloc_size__(2, 3)));
+/// void *reallocf(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
+/// int rpmatch(const char *);
+/// void setprogname(const char *);
+/// int sradixsort(const unsigned char **, int, const unsigned char *,
+/// unsigned);
+/// void srandomdev(void);
+/// long long
+/// strtonum(const char *, long long, long long, const char **);
+///
+///
+/// __int64_t
+/// strtoq(const char *, char **, int);
+/// __uint64_t
+/// strtouq(const char *, char **, int);
+///
+/// extern char *suboptarg;
+///
+///
+///
+///
+///
+///
+/// typedef size_t rsize_t;
+///
+///
+///
+///
+/// typedef int errno_t;
+///
+///
+///
+/// typedef void (*constraint_handler_t)(const char * restrict,
+/// void * restrict, errno_t);
+///
+/// constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);
+///
+/// _Noreturn void abort_handler_s(const char * restrict, void * restrict,
+/// errno_t);
+///
+/// void ignore_handler_s(const char * restrict, void * restrict, errno_t);
+///
+/// errno_t qsort_s(void *, rsize_t, rsize_t,
+/// int (*)(const void *, const void *, void *), void *);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __int8_t int8_t;
+///
+///
+///
+///
+/// typedef __int16_t int16_t;
+///
+///
+///
+///
+/// typedef __int32_t int32_t;
+///
+///
+///
+///
+/// typedef __int64_t int64_t;
+///
+///
+///
+///
+/// typedef __uint8_t uint8_t;
+///
+///
+///
+///
+/// typedef __uint16_t uint16_t;
+///
+///
+///
+///
+/// typedef __uint32_t uint32_t;
+///
+///
+///
+///
+/// typedef __uint64_t uint64_t;
+///
+///
+///
+///
+/// typedef __intptr_t intptr_t;
+///
+///
+///
+/// typedef __uintptr_t uintptr_t;
+///
+///
+///
+/// typedef __intmax_t intmax_t;
+///
+///
+///
+/// typedef __uintmax_t uintmax_t;
+///
+///
+/// typedef __int_least8_t int_least8_t;
+/// typedef __int_least16_t int_least16_t;
+/// typedef __int_least32_t int_least32_t;
+/// typedef __int_least64_t int_least64_t;
+///
+/// typedef __uint_least8_t uint_least8_t;
+/// typedef __uint_least16_t uint_least16_t;
+/// typedef __uint_least32_t uint_least32_t;
+/// typedef __uint_least64_t uint_least64_t;
+///
+/// typedef __int_fast8_t int_fast8_t;
+/// typedef __int_fast16_t int_fast16_t;
+/// typedef __int_fast32_t int_fast32_t;
+/// typedef __int_fast64_t int_fast64_t;
+///
+/// typedef __uint_fast8_t uint_fast8_t;
+/// typedef __uint_fast16_t uint_fast16_t;
+/// typedef __uint_fast32_t uint_fast32_t;
+/// typedef __uint_fast64_t uint_fast64_t;
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct pthread;
+/// struct pthread_attr;
+/// struct pthread_cond;
+/// struct pthread_cond_attr;
+/// struct pthread_mutex;
+/// struct pthread_mutex_attr;
+/// struct pthread_once;
+/// struct pthread_rwlock;
+/// struct pthread_rwlockattr;
+/// struct pthread_barrier;
+/// struct pthread_barrier_attr;
+/// struct pthread_spinlock;
+///
+/// typedef struct pthread *pthread_t;
+///
+///
+/// typedef struct pthread_attr *pthread_attr_t;
+/// typedef struct pthread_mutex *pthread_mutex_t;
+/// typedef struct pthread_mutex_attr *pthread_mutexattr_t;
+/// typedef struct pthread_cond *pthread_cond_t;
+/// typedef struct pthread_cond_attr *pthread_condattr_t;
+/// typedef int pthread_key_t;
+/// typedef struct pthread_once pthread_once_t;
+/// typedef struct pthread_rwlock *pthread_rwlock_t;
+/// typedef struct pthread_rwlockattr *pthread_rwlockattr_t;
+/// typedef struct pthread_barrier *pthread_barrier_t;
+/// typedef struct pthread_barrierattr *pthread_barrierattr_t;
+/// typedef struct pthread_spinlock *pthread_spinlock_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef void *pthread_addr_t;
+/// typedef void *(*pthread_startroutine_t)(void *);
+///
+///
+///
+///
+/// struct pthread_once {
+/// int state;
+/// pthread_mutex_t mutex;
+/// };
+///
+///
+///
+/// typedef unsigned char u_char;
+/// typedef unsigned short u_short;
+/// typedef unsigned int u_int;
+/// typedef unsigned long u_long;
+///
+/// typedef unsigned short ushort;
+/// typedef unsigned int uint;
+///
+/// typedef __uint8_t u_int8_t;
+/// typedef __uint16_t u_int16_t;
+/// typedef __uint32_t u_int32_t;
+/// typedef __uint64_t u_int64_t;
+///
+/// typedef __uint64_t u_quad_t;
+/// typedef __int64_t quad_t;
+/// typedef quad_t * qaddr_t;
+///
+/// typedef char * caddr_t;
+/// typedef const char * c_caddr_t;
+///
+///
+/// typedef __blksize_t blksize_t;
+///
+///
+///
+/// typedef __cpuwhich_t cpuwhich_t;
+/// typedef __cpulevel_t cpulevel_t;
+/// typedef __cpusetid_t cpusetid_t;
+///
+///
+/// typedef __blkcnt_t blkcnt_t;
+///
+///
+///
+///
+/// typedef __clock_t clock_t;
+///
+///
+///
+///
+/// typedef __clockid_t clockid_t;
+///
+///
+///
+/// typedef __critical_t critical_t;
+/// typedef __daddr_t daddr_t;
+///
+///
+/// typedef __dev_t dev_t;
+///
+///
+///
+///
+/// typedef __fflags_t fflags_t;
+///
+///
+///
+/// typedef __fixpt_t fixpt_t;
+///
+///
+/// typedef __fsblkcnt_t fsblkcnt_t;
+/// typedef __fsfilcnt_t fsfilcnt_t;
+///
+///
+///
+///
+/// typedef __gid_t gid_t;
+///
+///
+///
+///
+/// typedef __uint32_t in_addr_t;
+///
+///
+///
+///
+/// typedef __uint16_t in_port_t;
+///
+///
+///
+///
+/// typedef __id_t id_t;
+///
+///
+///
+///
+/// typedef __ino_t ino_t;
+///
+///
+///
+///
+/// typedef __key_t key_t;
+///
+///
+///
+///
+/// typedef __lwpid_t lwpid_t;
+///
+///
+///
+///
+/// typedef __mode_t mode_t;
+///
+///
+///
+///
+/// typedef __accmode_t accmode_t;
+///
+///
+///
+///
+/// typedef __nlink_t nlink_t;
+///
+///
+///
+///
+/// typedef __off_t off_t;
+///
+///
+///
+///
+/// typedef __off64_t off64_t;
+///
+///
+///
+///
+/// typedef __pid_t pid_t;
+///
+///
+///
+/// typedef __register_t register_t;
+///
+///
+/// typedef __rlim_t rlim_t;
+///
+///
+///
+/// typedef __int64_t sbintime_t;
+///
+/// typedef __segsz_t segsz_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef __ssize_t ssize_t;
+///
+///
+///
+///
+/// typedef __suseconds_t suseconds_t;
+///
+///
+///
+///
+/// typedef __time_t time_t;
+///
+///
+///
+///
+/// typedef __timer_t timer_t;
+///
+///
+///
+///
+/// typedef __mqd_t mqd_t;
+///
+///
+///
+/// typedef __u_register_t u_register_t;
+///
+///
+/// typedef __uid_t uid_t;
+///
+///
+///
+///
+/// typedef __useconds_t useconds_t;
+///
+///
+///
+///
+///
+/// typedef unsigned long cap_ioctl_t;
+///
+///
+///
+///
+/// struct cap_rights;
+///
+/// typedef struct cap_rights cap_rights_t;
+///
+/// typedef __uint64_t kpaddr_t;
+/// typedef __uint64_t kvaddr_t;
+/// typedef __uint64_t ksize_t;
+/// typedef __int64_t kssize_t;
+///
+/// typedef __vm_offset_t vm_offset_t;
+/// typedef __uint64_t vm_ooffset_t;
+/// typedef __vm_paddr_t vm_paddr_t;
+/// typedef __uint64_t vm_pindex_t;
+/// typedef __vm_size_t vm_size_t;
+///
+/// typedef __rman_res_t rman_res_t;
+///
+/// static __inline __uint16_t
+/// __bitcount16(__uint16_t _x)
+/// {
+///
+/// _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1);
+/// _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f;
+/// _x = (_x + (_x >> 8)) & 0x00ff;
+/// return (_x);
+/// }
+///
+/// static __inline __uint32_t
+/// __bitcount32(__uint32_t _x)
+/// {
+///
+/// _x = (_x & 0x55555555) + ((_x & 0xaaaaaaaa) >> 1);
+/// _x = (_x & 0x33333333) + ((_x & 0xcccccccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f;
+/// _x = (_x + (_x >> 8));
+/// _x = (_x + (_x >> 16)) & 0x000000ff;
+/// return (_x);
+/// }
+///
+///
+/// static __inline __uint64_t
+/// __bitcount64(__uint64_t _x)
+/// {
+///
+/// _x = (_x & 0x5555555555555555) + ((_x & 0xaaaaaaaaaaaaaaaa) >> 1);
+/// _x = (_x & 0x3333333333333333) + ((_x & 0xcccccccccccccccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f0f0f0f0f;
+/// _x = (_x + (_x >> 8));
+/// _x = (_x + (_x >> 16));
+/// _x = (_x + (_x >> 32)) & 0x000000ff;
+/// return (_x);
+/// }
+///
+///
+///
+///
+///
+/// typedef struct __sigset {
+/// __uint32_t __bits[4];
+/// } __sigset_t;
+///
+///
+///
+/// struct timeval {
+/// time_t tv_sec;
+/// suseconds_t tv_usec;
+/// };
+///
+///
+///
+///
+///
+/// struct timespec {
+/// time_t tv_sec;
+/// long tv_nsec;
+/// };
+///
+///
+/// struct itimerspec {
+/// struct timespec it_interval;
+/// struct timespec it_value;
+/// };
+///
+///
+/// typedef unsigned long __fd_mask;
+///
+/// typedef __fd_mask fd_mask;
+///
+///
+///
+///
+/// typedef __sigset_t sigset_t;
+///
+/// typedef struct fd_set {
+/// __fd_mask __fds_bits[(((1024) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))];
+/// } fd_set;
+///
+///
+/// int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+/// const struct timespec *restrict, const sigset_t *restrict);
+///
+///
+///
+/// int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
+///
+///
+///
+///
+/// static __inline int
+/// __major(dev_t _d)
+/// {
+/// return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff));
+/// }
+///
+/// static __inline int
+/// __minor(dev_t _d)
+/// {
+/// return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff));
+/// }
+///
+/// static __inline dev_t
+/// __makedev(int _Major, int _Minor)
+/// {
+/// return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
+/// ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff));
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// int ftruncate(int, off_t);
+///
+///
+///
+/// off_t lseek(int, off_t, int);
+///
+///
+///
+/// void * mmap(void *, size_t, int, int, int, off_t);
+///
+///
+///
+/// int truncate(const char *, off_t);
+///
+///
+///
+///
+///
+///
+///
+///
+/// static __inline int atomic_cmpset_char(volatile u_char *dst, u_char expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_char(volatile u_char *dst, u_char *expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_short(volatile u_short *dst, u_short expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_short(volatile u_short *dst, u_short *expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+///
+///
+///
+///
+///
+/// static __inline u_int
+/// atomic_fetchadd_int(volatile u_int *p, u_int v)
+/// {
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " xaddl %0,%1 ; "
+/// "# atomic_fetchadd_int"
+/// : "+r" (v),
+/// "+m" (*p)
+/// : : "cc");
+/// return (v);
+/// }
+///
+///
+///
+///
+///
+/// static __inline u_long
+/// atomic_fetchadd_long(volatile u_long *p, u_long v)
+/// {
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " xaddq %0,%1 ; "
+/// "# atomic_fetchadd_long"
+/// : "+r" (v),
+/// "+m" (*p)
+/// : : "cc");
+/// return (v);
+/// }
+///
+/// static __inline int
+/// atomic_testandset_int(volatile u_int *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btsl %2,%1 ; "
+/// "# atomic_testandset_int"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Ir" (v & 0x1f)
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandset_long(volatile u_long *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btsq %2,%1 ; "
+/// "# atomic_testandset_long"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Jr" ((u_long)(v & 0x3f))
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandclear_int(volatile u_int *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btrl %2,%1 ; "
+/// "# atomic_testandclear_int"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Ir" (v & 0x1f)
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandclear_long(volatile u_long *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btrq %2,%1 ; "
+/// "# atomic_testandclear_long"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Jr" ((u_long)(v & 0x3f))
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline void
+/// __storeload_barrier(void)
+/// {
+///
+/// __asm volatile("lock; addl $0,-8(%%rsp)" : : : "memory", "cc");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_acq(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_rel(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_acq_rel(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_seq_cst(void)
+/// {
+///
+/// __storeload_barrier();
+/// }
+///
+///
+///
+/// static __inline void atomic_set_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_set_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "cc"); } static __inline void atomic_clear_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_add_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_subtract_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_set_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "cc"); } static __inline void atomic_clear_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_add_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_subtract_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+///
+///
+///
+///
+///
+/// static __inline u_char atomic_load_acq_char(volatile u_char *p) { u_char res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_char(volatile u_char *p, u_char v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_short atomic_load_acq_short(volatile u_short *p) { u_short res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_short(volatile u_short *p, u_short v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_int atomic_load_acq_int(volatile u_int *p) { u_int res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_int(volatile u_int *p, u_int v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_long atomic_load_acq_long(volatile u_long *p) { u_long res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_long(volatile u_long *p, u_long v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+///
+/// static __inline u_int
+/// atomic_swap_int(volatile u_int *p, u_int v)
+/// {
+///
+/// __asm volatile(
+/// " xchgl %1,%0 ; "
+/// "# atomic_swap_int"
+/// : "+r" (v),
+/// "+m" (*p));
+/// return (v);
+/// }
+///
+/// static __inline u_long
+/// atomic_swap_long(volatile u_long *p, u_long v)
+/// {
+///
+/// __asm volatile(
+/// " xchgq %1,%0 ; "
+/// "# atomic_swap_long"
+/// : "+r" (v),
+/// "+m" (*p));
+/// return (v);
+/// }
+///
+///
+///
+///
+///
+/// extern char *_PathLocale;
+///
+/// int __detect_path_locale(void);
+/// int __wrap_setrunelocale(const char *);
+///
+///
+/// enum {
+/// XLC_COLLATE = 0,
+/// XLC_CTYPE,
+/// XLC_MONETARY,
+/// XLC_NUMERIC,
+/// XLC_TIME,
+/// XLC_MESSAGES,
+/// XLC_LAST
+/// };
+///
+/// _Static_assert(XLC_LAST - XLC_COLLATE == 6, "XLC values should be contiguous");
+/// _Static_assert(XLC_COLLATE ==
+///
+/// 1
+///
+/// - 1,
+/// "XLC_COLLATE doesn't match the LC_COLLATE value.");
+/// _Static_assert(XLC_CTYPE ==
+///
+/// 2
+///
+/// - 1,
+/// "XLC_CTYPE doesn't match the LC_CTYPE value.");
+/// _Static_assert(XLC_MONETARY ==
+///
+/// 3
+///
+/// - 1,
+/// "XLC_MONETARY doesn't match the LC_MONETARY value.");
+/// _Static_assert(XLC_NUMERIC ==
+///
+/// 4
+///
+/// - 1,
+/// "XLC_NUMERIC doesn't match the LC_NUMERIC value.");
+/// _Static_assert(XLC_TIME ==
+///
+/// 5
+///
+/// - 1,
+/// "XLC_TIME doesn't match the LC_TIME value.");
+/// _Static_assert(XLC_MESSAGES ==
+///
+/// 6
+///
+/// - 1,
+/// "XLC_MESSAGES doesn't match the LC_MESSAGES value.");
+///
+/// struct xlocale_refcounted {
+///
+/// long retain_count;
+///
+/// void(*destructor)(void*);
+/// };
+///
+///
+///
+///
+///
+///
+///
+/// struct xlocale_component {
+/// struct xlocale_refcounted header;
+///
+/// char locale[31 +1];
+///
+/// char version[12];
+/// };
+///
+///
+///
+///
+/// struct _xlocale {
+/// struct xlocale_refcounted header;
+///
+/// struct xlocale_component *components[XLC_LAST];
+///
+///
+/// int monetary_locale_changed;
+///
+///
+/// int using_monetary_locale;
+///
+///
+/// int numeric_locale_changed;
+///
+///
+/// int using_numeric_locale;
+///
+///
+/// int using_time_locale;
+///
+///
+/// int using_messages_locale;
+///
+/// struct lconv lconv;
+///
+/// char *csym;
+/// };
+///
+///
+///
+///
+/// __attribute__((unused)) static void*
+/// xlocale_retain(void *val)
+/// {
+/// struct xlocale_refcounted *obj = val;
+/// atomic_add_long(&(obj->retain_count), 1);
+/// return (val);
+/// }
+///
+///
+///
+///
+/// __attribute__((unused)) static void
+/// xlocale_release(void *val)
+/// {
+/// struct xlocale_refcounted *obj = val;
+/// long count;
+///
+/// count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
+/// if (count < 0 && obj->destructor !=
+///
+/// ((void *)0)
+///
+/// )
+/// obj->destructor(obj);
+/// }
+///
+///
+///
+///
+///
+/// extern void* __collate_load(const char*, locale_t);
+/// extern void* __ctype_load(const char*, locale_t);
+/// extern void* __messages_load(const char*, locale_t);
+/// extern void* __monetary_load(const char*, locale_t);
+/// extern void* __numeric_load(const char*, locale_t);
+/// extern void* __time_load(const char*, locale_t);
+///
+/// extern struct _xlocale __xlocale_global_locale;
+/// extern struct _xlocale __xlocale_C_locale;
+///
+///
+///
+///
+/// void __set_thread_rune_locale(locale_t loc);
+///
+///
+///
+///
+/// extern int __has_thread_locale;
+///
+///
+///
+///
+///
+/// extern _Thread_local locale_t __thread_locale;
+///
+///
+///
+///
+///
+///
+///
+/// static inline locale_t __get_locale(void)
+/// {
+///
+/// if (!__has_thread_locale) {
+/// return (&__xlocale_global_locale);
+/// }
+/// return (__thread_locale ? __thread_locale : &__xlocale_global_locale);
+/// }
+///
+///
+///
+///
+///
+/// static inline locale_t get_real_locale(locale_t locale)
+/// {
+/// switch ((intptr_t)locale) {
+/// case 0: return (&__xlocale_C_locale);
+/// case -1: return (&__xlocale_global_locale);
+/// default: return (locale);
+/// }
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct xlocale_ctype {
+/// struct xlocale_component header;
+/// _RuneLocale *runes;
+/// size_t (*__mbrtowc)(wchar_t *
+///
+/// restrict
+///
+/// , const char *
+///
+/// restrict
+///
+/// ,
+/// size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// int (*__mbsinit)(const mbstate_t *);
+/// size_t (*__mbsnrtowcs)(wchar_t *
+///
+/// restrict
+///
+/// , const char **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t (*__wcrtomb)(char *
+///
+/// restrict
+///
+/// , wchar_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t (*__wcsnrtombs)(char *
+///
+/// restrict
+///
+/// , const wchar_t **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// int __mb_cur_max;
+/// int __mb_sb_limit;
+///
+/// __mbstate_t mblen;
+///
+/// __mbstate_t mbrlen;
+///
+/// __mbstate_t mbrtoc16;
+///
+/// __mbstate_t mbrtoc32;
+///
+/// __mbstate_t mbrtowc;
+///
+/// __mbstate_t mbsnrtowcs;
+///
+/// __mbstate_t mbsrtowcs;
+///
+/// __mbstate_t mbtowc;
+///
+/// __mbstate_t c16rtomb;
+///
+/// __mbstate_t c32rtomb;
+///
+/// __mbstate_t wcrtomb;
+///
+/// __mbstate_t wcsnrtombs;
+///
+/// __mbstate_t wcsrtombs;
+///
+/// __mbstate_t wctomb;
+/// };
+///
+/// extern struct xlocale_ctype __xlocale_global_ctype;
+///
+///
+///
+///
+/// int _none_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _UTF8_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GB18030_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GB2312_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GBK_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _BIG5_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _ascii_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+///
+/// typedef size_t (*mbrtowc_pfn_t)(wchar_t *
+///
+/// restrict
+///
+/// ,
+/// const char *
+///
+/// restrict
+///
+/// , size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// typedef size_t (*wcrtomb_pfn_t)(char *
+///
+/// restrict
+///
+/// , wchar_t,
+/// mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t __mbsnrtowcs_std(wchar_t *
+///
+/// restrict
+///
+/// , const char **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// , mbrtowc_pfn_t);
+/// size_t __wcsnrtombs_std(char *
+///
+/// restrict
+///
+/// , const wchar_t **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// , wcrtomb_pfn_t);
+///
+
+var X_DefaultRuneLocale = _RuneLocale{
+
+ __magic: *(*[8]int8)(unsafe.Pointer(ts)),
+ __encoding: *(*[32]int8)(unsafe.Pointer(ts + 9)),
+ __invalid_rune: 0xFFFD,
+
+ __runetype: [256]uint64{
+
+ 0: uint64(0x00000200),
+
+ 1: uint64(0x00000200),
+
+ 2: uint64(0x00000200),
+
+ 3: uint64(0x00000200),
+
+ 4: uint64(0x00000200),
+
+ 5: uint64(0x00000200),
+
+ 6: uint64(0x00000200),
+
+ 7: uint64(0x00000200),
+
+ 8: uint64(0x00000200),
+
+ 9: uint64(0x00000200 |
+
+ 0x00004000 |
+
+ 0x00020000),
+
+ 10: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 11: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 12: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 13: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 14: uint64(0x00000200),
+
+ 15: uint64(0x00000200),
+
+ 16: uint64(0x00000200),
+
+ 17: uint64(0x00000200),
+
+ 18: uint64(0x00000200),
+
+ 19: uint64(0x00000200),
+
+ 20: uint64(0x00000200),
+
+ 21: uint64(0x00000200),
+
+ 22: uint64(0x00000200),
+
+ 23: uint64(0x00000200),
+
+ 24: uint64(0x00000200),
+
+ 25: uint64(0x00000200),
+
+ 26: uint64(0x00000200),
+
+ 27: uint64(0x00000200),
+
+ 28: uint64(0x00000200),
+
+ 29: uint64(0x00000200),
+
+ 30: uint64(0x00000200),
+
+ 31: uint64(0x00000200),
+
+ 32: uint64(0x00004000 |
+
+ 0x00020000 |
+
+ 0x00040000),
+
+ 33: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 34: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 35: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 36: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 37: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 38: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 39: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 40: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 41: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 42: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 43: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 44: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 45: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 46: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 47: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 48: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(0)),
+
+ 49: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(1)),
+
+ 50: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(2)),
+
+ 51: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(3)),
+
+ 52: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(4)),
+
+ 53: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(5)),
+
+ 54: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(6)),
+
+ 55: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(7)),
+
+ 56: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(8)),
+
+ 57: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(9)),
+
+ 58: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 59: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 60: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 61: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 62: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 63: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 64: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 65: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(10)),
+
+ 66: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(11)),
+
+ 67: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(12)),
+
+ 68: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(13)),
+
+ 69: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(14)),
+
+ 70: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(15)),
+
+ 71: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 72: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 73: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 74: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 75: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 76: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 77: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 78: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 79: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 80: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 81: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 82: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 83: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 84: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 85: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 86: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 87: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 88: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 89: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 90: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 91: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 92: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 93: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 94: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 95: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 96: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 97: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(10)),
+
+ 98: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(11)),
+
+ 99: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(12)),
+
+ 100: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(13)),
+
+ 101: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(14)),
+
+ 102: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(15)),
+
+ 103: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 104: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 105: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 106: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 107: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 108: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 109: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 110: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 111: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 112: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 113: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 114: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 115: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 116: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 117: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 118: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 119: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 120: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 121: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 122: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 123: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 124: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 125: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 126: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 127: uint64(0x00000200),
+ },
+ __maplower: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ },
+ __mapupper: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ },
+} /* table.cpp.c:2243:19 */
+
+var X_CurrentRuneLocale uintptr = 0 /* table.cpp.c:4092:19 */
+
+/// _RuneLocale *
+/// __runes_for_locale(locale_t locale, int *mb_sb_limit)
+/// {
+/// (locale = get_real_locale(locale));
+/// struct xlocale_ctype *c = ((struct xlocale_ctype*)(locale)->components[XLC_CTYPE]);
+/// *mb_sb_limit = c->__mb_sb_limit;
+/// return c->runes;
+/// }
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type locale_t = uintptr /* alltypes.h:343:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+type uintptr_t = uint64 /* alltypes.h:55:24 */
+
+type intptr_t = int64 /* alltypes.h:70:15 */
+
+type int8_t = int8 /* alltypes.h:96:25 */
+
+type int16_t = int16 /* alltypes.h:101:25 */
+
+type int32_t = int32 /* alltypes.h:106:25 */
+
+type int64_t = int64 /* alltypes.h:111:25 */
+
+type intmax_t = int64 /* alltypes.h:116:25 */
+
+type uint8_t = uint8 /* alltypes.h:121:25 */
+
+type uint16_t = uint16 /* alltypes.h:126:25 */
+
+type uint32_t = uint32 /* alltypes.h:131:25 */
+
+type uint64_t = uint64 /* alltypes.h:136:25 */
+
+type uintmax_t = uint64 /* alltypes.h:146:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type ssize_t = int64 /* alltypes.h:65:15 */
+
+type off_t = int64 /* alltypes.h:162:16 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:320:9 */
+
+type FILE = _IO_FILE /* alltypes.h:320:25 */
+
+type va_list = uintptr /* alltypes.h:326:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:29:15 */
+
+type double_t = float64 /* alltypes.h:34:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 41 /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 50 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 55 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:41:54 */
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type pid_t = int32 /* alltypes.h:235:13 */
+
+type uid_t = uint32 /* alltypes.h:245:18 */
+
+type gid_t = uint32 /* alltypes.h:250:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:355:1 */
+
+type socklen_t = uint32 /* alltypes.h:361:18 */
+
+type sa_family_t = uint16 /* alltypes.h:366:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:85:16 */
+
+type clockid_t = int32 /* alltypes.h:214:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:229:1 */
+
+type pthread_t = uintptr /* alltypes.h:273:26 */
+
+type pthread_once_t = int32 /* alltypes.h:279:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:284:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:289:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:349:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:349:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:372:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:377:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:387:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:397:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:402:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:209:14 */
+
+type clock_t = int64 /* alltypes.h:219:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* pthread.h:206:1 */
+
+type useconds_t = uint32 /* alltypes.h:260:18 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]int8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+64,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+89)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 98)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+115, ts+126)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+129, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+129, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+142, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+129, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+154,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+178,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+208))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:152:18 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+115, ts+126)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 211)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 228)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 244)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 260)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 276)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 292)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+129, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+129, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 54 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.cpp.c:4092:41:
+}
+
+var ts1 = "RuneMagi\x00NONE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_linux_386.go b/vendor/modernc.org/libc/musl_linux_386.go
new file mode 100644
index 00000000..164e168c
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_linux_386.go
@@ -0,0 +1,6865 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type size_t = uint32 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+type uint16_t = uint16 /* alltypes.h:149:25 */
+
+type uint32_t = uint32 /* alltypes.h:154:25 */
+
+type uint64_t = uint64 /* alltypes.h:159:25 */
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+var table = [384]uint16{
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x320/256 | 0x320*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x160/256 | 0x160*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+} /* __ctype_b_loc.c:9:29 */
+
+var ptable uintptr = 0 /* __ctype_b_loc.c:36:29 */
+
+func X__ctype_b_loc(tls *TLS) uintptr { /* __ctype_b_loc.c:38:22: */
+ return uintptr(unsafe.Pointer(&ptable))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:366:9 */
+
+type locale_t = uintptr /* alltypes.h:366:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */
+ return Bool32(uint32(c)-uint32('A') < uint32(26))
+}
+
+func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */
+ return Xisupper(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type off_t = int64 /* alltypes.h:185:16 */
+
+type ino_t = uint64 /* alltypes.h:190:25 */
+
+type dirent = struct {
+ d_ino ino_t
+ d_off off_t
+ d_reclen uint16
+ d_type uint8
+ d_name [256]int8
+ _ [1]byte
+} /* dirent.h:5:1 */
+
+type __dirstream = struct {
+ tell off_t
+ fd int32
+ buf_pos int32
+ buf_end int32
+ lock [1]int32
+ buf [2048]int8
+} /* dirent.h:20:9 */
+
+type DIR = __dirstream /* dirent.h:20:28 */
+
+type ssize_t = int32 /* alltypes.h:88:15 */
+
+type intptr_t = int32 /* alltypes.h:93:15 */
+
+type pid_t = int32 /* alltypes.h:258:13 */
+
+type uid_t = uint32 /* alltypes.h:268:18 */
+
+type gid_t = uint32 /* alltypes.h:273:18 */
+
+type useconds_t = uint32 /* alltypes.h:283:18 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+func Xclosedir(tls *TLS, dir uintptr) int32 { /* closedir.c:6:5: */
+ var ret int32 = Xclose(tls, (*DIR)(unsafe.Pointer(dir)).fd)
+ Xfree(tls, dir)
+ return ret
+}
+
+type mode_t = uint32 /* alltypes.h:175:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:378:1 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+} /* fcntl.h:24:1 */
+
+type file_handle = struct {
+ _ [0]uint32
+ handle_bytes uint32
+ handle_type int32
+} /* fcntl.h:167:1 */
+
+type f_owner_ex = struct {
+ __type int32
+ pid pid_t
+} /* fcntl.h:172:1 */
+
+type syscall_arg_t = int32 /* syscall.h:22:14 */
+
+func Xopendir(tls *TLS, name uintptr) uintptr { /* opendir.c:8:5: */
+ var fd int32
+ var dir uintptr
+
+ if AssignInt32(&fd, Xopen(tls, name, 00|0200000|02000000, 0)) < 0 {
+ return uintptr(0)
+ }
+ if !(int32(AssignUintptr(&dir, Xcalloc(tls, uint32(1), uint32(unsafe.Sizeof(DIR{}))))) != 0) {
+ X__syscall1(tls, 6, int32(fd))
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).fd = fd
+ return dir
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:51:66 */
+
+type dirstream_buf_alignment_check = [1]int8 /* readdir.c:7:14 */
+
+func Xreaddir(tls *TLS, dir uintptr) uintptr { /* readdir.c:10:15: */
+ var de uintptr
+
+ if (*DIR)(unsafe.Pointer(dir)).buf_pos >= (*DIR)(unsafe.Pointer(dir)).buf_end {
+ var len int32 = int32(X__syscall3(tls, 220, int32((*DIR)(unsafe.Pointer(dir)).fd), int32(dir+24), int32(unsafe.Sizeof([2048]int8{}))))
+ if len <= 0 {
+ if len < 0 && len != -2 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = -len
+ }
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).buf_end = len
+ (*DIR)(unsafe.Pointer(dir)).buf_pos = 0
+ }
+ de = dir + 24 + uintptr((*DIR)(unsafe.Pointer(dir)).buf_pos)
+ *(*int32)(unsafe.Pointer(dir + 12)) += int32((*dirent)(unsafe.Pointer(de)).d_reclen)
+ (*DIR)(unsafe.Pointer(dir)).tell = (*dirent)(unsafe.Pointer(de)).d_off
+ return de
+}
+
+type uintptr_t = uint32 /* alltypes.h:78:24 */
+
+type int8_t = int8 /* alltypes.h:119:25 */
+
+type int16_t = int16 /* alltypes.h:124:25 */
+
+type int32_t = int32 /* alltypes.h:129:25 */
+
+type int64_t = int64 /* alltypes.h:134:25 */
+
+type intmax_t = int64 /* alltypes.h:139:25 */
+
+type uint8_t = uint8 /* alltypes.h:144:25 */
+
+type uintmax_t = uint64 /* alltypes.h:169:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int32
+ mode int32
+ lock int32
+ lbf int32
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:343:9 */
+
+type FILE = _IO_FILE /* alltypes.h:343:25 */
+
+type va_list = uintptr /* alltypes.h:349:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint32
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float64 /* alltypes.h:38:21 */
+
+type double_t = float64 /* alltypes.h:43:21 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [1]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int32
+ pending uintptr
+ }
+ timer_id int32
+ locale locale_t
+ killlock [1]int32
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ dtv_copy uintptr
+} /* alltypes.h:296:9 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = size_t(0); i < size_t(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < size_t(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == size_t(3) || i == size_t(8) || i > size_t(3) && pok != 0 {
+ if i != size_t(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > size_t(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = size_t(0); i < size_t(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < size_t(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == size_t(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = size_t(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint32(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table1 = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table1)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf) - int32((*FILE)(unsafe.Pointer(f)).rpos)) / 1)
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1)
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits int8
+ frac_digits int8
+ p_cs_precedes int8
+ p_sep_by_space int8
+ n_cs_precedes int8
+ n_sep_by_space int8
+ p_sign_posn int8
+ n_sign_posn int8
+ int_p_cs_precedes int8
+ int_p_sep_by_space int8
+ int_n_cs_precedes int8
+ int_n_sep_by_space int8
+ int_p_sign_posn int8
+ int_n_sign_posn int8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: Int8FromInt32(255), frac_digits: Int8FromInt32(255), p_cs_precedes: Int8FromInt32(255), p_sep_by_space: Int8FromInt32(255), n_cs_precedes: Int8FromInt32(255), n_sep_by_space: Int8FromInt32(255), p_sign_posn: Int8FromInt32(255), n_sign_posn: Int8FromInt32(255), int_p_cs_precedes: Int8FromInt32(255), int_p_sep_by_space: Int8FromInt32(255), int_n_cs_precedes: Int8FromInt32(255), int_n_sep_by_space: Int8FromInt32(255), int_p_sign_posn: Int8FromInt32(255), int_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]int8
+ next uintptr
+} /* alltypes.h:366:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads int8
+ threaded int8
+ secure int8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int64 /* alltypes.h:108:16 */
+
+type clockid_t = int32 /* alltypes.h:237:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+} /* alltypes.h:252:1 */
+
+type pthread_t = uintptr /* alltypes.h:296:26 */
+
+type pthread_once_t = int32 /* alltypes.h:302:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:307:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:312:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:317:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:322:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:327:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:332:40 */
+
+type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:372:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:372:71 */
+
+type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:395:147 */
+
+type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:400:157 */
+
+type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:410:112 */
+
+type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:420:139 */
+
+type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:425:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [4]int32
+ __reserved3 int32
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:232:14 */
+
+type clock_t = int32 /* alltypes.h:242:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ tm_gmtoff int32
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct{ sival_int int32 }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [44]int8
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:296:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = int32 /* signal.h:51:13 */
+type gregset_t = [19]int32 /* signal.h:51:21 */
+type _fpstate = struct {
+ cw uint32
+ sw uint32
+ tag uint32
+ ipoff uint32
+ cssel uint32
+ dataoff uint32
+ datasel uint32
+ _st [8]struct {
+ significand [4]uint16
+ exponent uint16
+ }
+ status uint32
+} /* signal.h:52:9 */
+
+type fpregset_t = uintptr /* signal.h:58:3 */
+type sigcontext = struct {
+ gs uint16
+ __gsh uint16
+ fs uint16
+ __fsh uint16
+ es uint16
+ __esh uint16
+ ds uint16
+ __dsh uint16
+ edi uint32
+ esi uint32
+ ebp uint32
+ esp uint32
+ ebx uint32
+ edx uint32
+ ecx uint32
+ eax uint32
+ trapno uint32
+ err uint32
+ eip uint32
+ cs uint16
+ __csh uint16
+ eflags uint32
+ esp_at_signal uint32
+ ss uint16
+ __ssh uint16
+ fpstate uintptr
+ oldmask uint32
+ cr2 uint32
+} /* signal.h:59:1 */
+
+type mcontext_t = struct {
+ gregs gregset_t
+ fpregs fpregset_t
+ oldmask uint32
+ cr2 uint32
+} /* signal.h:73:3 */
+
+type __ucontext = struct {
+ uc_flags uint32
+ uc_link uintptr
+ uc_stack stack_t
+ uc_mcontext mcontext_t
+ uc_sigmask sigset_t
+ __fpregs_mem [28]uint32
+} /* signal.h:86:9 */
+
+type ucontext_t = __ucontext /* signal.h:93:3 */
+
+type sigval = struct{ sival_int int32 } /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ __si_fields struct {
+ _ [0]uint32
+ __pad [116]int8
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:2:19: */
+ panic(`arch/i386/atomic_arch.h:4:2: assembler statements not supported`)
+ return t
+}
+
+func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic_arch.h:11:19: */
+ panic(`arch/i386/atomic_arch.h:13:2: assembler statements not supported`)
+ return v
+}
+
+func a_and(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:29:20: */
+ panic(`arch/i386/atomic_arch.h:31:2: assembler statements not supported`)
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:37:20: */
+ panic(`arch/i386/atomic_arch.h:39:2: assembler statements not supported`)
+}
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:87:19: */
+ var r int32
+ panic(`arch/i386/atomic_arch.h:90:2: assembler statements not supported`)
+ return r
+}
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:96:19: */
+ var r int32
+ panic(`arch/i386/atomic_arch.h:99:2: assembler statements not supported`)
+ return r
+}
+
+func a_clz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:104:19: */
+ panic(`arch/i386/atomic_arch.h:106:2: assembler statements not supported`)
+ return int32(x)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ v uint64_t })(unsafe.Pointer(bp)) = func() (r struct{ v uint64_t }) {
+ *(*uint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = v
+ return r
+ }()
+ if *(*uint32_t)(unsafe.Pointer(bp)) != 0 {
+ a_or(tls, p, int32(*(*uint32_t)(unsafe.Pointer(bp))))
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + 1*4)) != 0 {
+ a_or(tls, p+uintptr(1)*4, int32(*(*uint32_t)(unsafe.Pointer(bp + 1*4))))
+ }
+}
+
+type a_cas_p_undefined_but_pointer_not_32bit = [1]int8 /* atomic.h:229:14 */
+
+type __timer = struct {
+ timerid int32
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */
+ var self uintptr
+ panic(`arch/i386/pthread_arch.h:4:2: assembler statements not supported`)
+ return self
+}
+
+func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ if cnt < 0 {
+ cnt = 0x7fffffff
+ }
+ _ = Bool32(X__syscall3(tls, 240, int32(addr), int32(1|priv), int32(cnt)) != -38 || X__syscall3(tls, 240, int32(addr), 1, int32(cnt)) != 0)
+}
+
+func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ _ = Bool32(X__syscall4(tls, 240, int32(addr), int32(0|priv), int32(val), 0) != -38 || X__syscall4(tls, 240, int32(addr), 0, int32(val), 0) != 0)
+}
+
+var X__fsmu8 = [51]uint32_t{
+ func() uint32 {
+ if 0x2 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2)
+ }(), func() uint32 {
+ if 0x3 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3)
+ }(), func() uint32 {
+ if 0x4 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4)
+ }(), func() uint32 {
+ if 0x5 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5)
+ }(), func() uint32 {
+ if 0x6 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6)
+ }(), func() uint32 {
+ if 0x7 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7)
+ }(),
+ func() uint32 {
+ if 0x8 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8)
+ }(), func() uint32 {
+ if 0x9 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9)
+ }(), func() uint32 {
+ if 0xa < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa)
+ }(), func() uint32 {
+ if 0xb < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb)
+ }(), func() uint32 {
+ if 0xc < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc)
+ }(), func() uint32 {
+ if 0xd < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd)
+ }(), func() uint32 {
+ if 0xe < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe)
+ }(), func() uint32 {
+ if 0xf < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf)
+ }(),
+ func() uint32 {
+ if 0x0+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x0+16)
+ }(), func() uint32 {
+ if 0x1+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x1+16)
+ }(), func() uint32 {
+ if 0x2+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2+16)
+ }(), func() uint32 {
+ if 0x3+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3+16)
+ }(), func() uint32 {
+ if 0x4+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4+16)
+ }(), func() uint32 {
+ if 0x5+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5+16)
+ }(), func() uint32 {
+ if 0x6+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6+16)
+ }(), func() uint32 {
+ if 0x7+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7+16)
+ }(),
+ func() uint32 {
+ if 0x8+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8+16)
+ }(), func() uint32 {
+ if 0x9+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9+16)
+ }(), func() uint32 {
+ if 0xa+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa+16)
+ }(), func() uint32 {
+ if 0xb+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb+16)
+ }(), func() uint32 {
+ if 0xc+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc+16)
+ }(), func() uint32 {
+ if 0xd+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd+16)
+ }(), func() uint32 {
+ if 0xe+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe+16)
+ }(), func() uint32 {
+ if 0xf+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf+16)
+ }(),
+ func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x0), func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x1), func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x2), func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x3), func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x4), func() uint32 {
+ if 0x5 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x5 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x5), func() uint32 {
+ if 0x6 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x6 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x6), func() uint32 {
+ if 0x7 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x7 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x7),
+ func() uint32 {
+ if 0x8 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x8 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x8), func() uint32 {
+ if 0x9 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x9 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x9), func() uint32 {
+ if 0xa == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xa == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xa), func() uint32 {
+ if 0xb == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xb == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xb), func() uint32 {
+ if 0xc == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xc == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xc), func() uint32 {
+ if 0xd == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xd == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xd), func() uint32 {
+ if 0xe == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xe == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xe), func() uint32 {
+ if 0xf == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xf == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xf),
+ func() uint32 {
+ if 0x0 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x0), func() uint32 {
+ if 0x1 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x1), func() uint32 {
+ if 0x2 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x2), func() uint32 {
+ if 0x3 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x3), func() uint32 {
+ if 0x4 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x4),
+} /* internal.c:18:16 */
+
+type wint_t = uint32 /* alltypes.h:221:18 */
+
+type wctype_t = uint32 /* alltypes.h:226:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:360:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:360:63 */
+
+func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var c uint32
+ var s uintptr
+ var N uint32
+ // var dummy wchar_t at bp, 4
+ s = src
+ N = n
+
+ if !!(st != 0) {
+ goto __1
+ }
+ st = uintptr(unsafe.Pointer(&_sinternal_state))
+__1:
+ ;
+ c = *(*uint32)(unsafe.Pointer(st))
+
+ if !!(s != 0) {
+ goto __2
+ }
+ if !(c != 0) {
+ goto __4
+ }
+ goto ilseq
+__4:
+ ;
+ return size_t(0)
+ goto __3
+__2:
+ if !!(wc != 0) {
+ goto __5
+ }
+ wc = bp /* &dummy */
+__5:
+ ;
+__3:
+ ;
+
+ if !!(n != 0) {
+ goto __6
+ }
+ return Uint32FromInt32(-2)
+__6:
+ ;
+ if !!(c != 0) {
+ goto __7
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) {
+ goto __8
+ }
+ return BoolUint32(!!(int32(AssignPtrInt32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s))))) != 0))
+__8:
+ ;
+ if !(func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1) {
+ goto __9
+ }
+ *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(0xdfff & int32(int8(*(*uint8)(unsafe.Pointer(s)))))
+ return 1
+__9:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0xc2 > 0xf4-0xc2) {
+ goto __10
+ }
+ goto ilseq
+__10:
+ ;
+ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0xc2]
+ n--
+__7:
+ ;
+
+ if !(n != 0) {
+ goto __11
+ }
+ if !((int32(*(*uint8)(unsafe.Pointer(s)))>>3-0x10|(int32(*(*uint8)(unsafe.Pointer(s)))>>3+int32_t(c)>>26))&CplInt32(7) != 0) {
+ goto __12
+ }
+ goto ilseq
+__12:
+ ;
+loop:
+ c = c<<6 | uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0x80)
+ n--
+ if !!(c&(uint32(1)<<31) != 0) {
+ goto __13
+ }
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(c)
+ return N - n
+__13:
+ ;
+ if !(n != 0) {
+ goto __14
+ }
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0x80 >= uint32(0x40)) {
+ goto __15
+ }
+ goto ilseq
+__15:
+ ;
+ goto loop
+__14:
+ ;
+__11:
+ ;
+
+ *(*uint32)(unsafe.Pointer(st)) = c
+ return Uint32FromInt32(-2)
+ilseq:
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint32FromInt32(-1)
+}
+
+var _sinternal_state uint32 /* mbrtowc.c:8:18: */
+
+func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */
+ return Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0))
+}
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type socklen_t = uint32 /* alltypes.h:384:18 */
+
+type sa_family_t = uint16 /* alltypes.h:389:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ msg_iov uintptr
+ msg_iovlen int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ msg_flags int32
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [122]int8
+ __ss_align uint32
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = size_t(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint32(uintptr(0)))
+ b -= 68 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+66, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint32(1), uint32(nais)*uint32(unsafe.Sizeof(aibuf{}))+uint32(canon_len)+uint32(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*68
+ Xmemcpy(tls, outcanon, bp+1352, uint32(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addr = out + uintptr(k)*68 + 32
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*68)).ai.ai_next = out + uintptr(k)*68
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*68+32+4, bp+8+uintptr(i)*28+8, uint32(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*68+32+8, bp+8+uintptr(i)*28+8, uint32(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ msg_iov uintptr
+ msg_iovlen int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ msg_flags int32
+ }
+ msg_len uint32
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var size size_t = size_t(63)
+ // var res uintptr at bp, 4
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint32(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint32(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint32(unsafe.Sizeof(uintptr(0))) - uint32(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint32(5)*uint32(unsafe.Sizeof(uintptr(0)))-uint32(i)+l {
+ return 34
+ }
+ buf += uintptr(uint32(unsafe.Sizeof(uintptr(0))) - uint32(i))
+ buflen = buflen - (uint32(5)*uint32(unsafe.Sizeof(uintptr(0))) - uint32(i) + l)
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint32(2) * uint32(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint32(2) * uint32(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, l)
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*4)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, buflen, uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var size size_t = size_t(63)
+ // var res uintptr at bp, 4
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint32(unsafe.Sizeof(uintptr(0))) - uint32(1))
+
+ need = uint32(4) * uint32(unsafe.Sizeof(uintptr(0)))
+ need = need + uint32(cnt+1)*(uint32(unsafe.Sizeof(uintptr(0)))+uint32((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + size_t(1))
+ need = need + (Xstrlen(tls, bp+1344) + size_t(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint32(3) * uint32(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint32(cnt+1) * uint32(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)), bp+uintptr(i)*28+8, uint32((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + size_t(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4))) + size_t(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*4)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */
+ return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err)
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint32
+ mem_end uint32
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint32
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [2]byte
+ data uintptr
+ len int32
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint32
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint32
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _u struct {
+ _ [0]uint32
+ pad [52]int8
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint32(3) * uint32(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint32(4))
+ Xmemcpy(tls, bp, ts+90, uint32(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint32(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint32(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint32(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int32(z)-int32(p))/1 < 256 {
+ Xmemcpy(tls, buf, p, uint32((int32(z)-int32(p))/1+1))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]int8 at bp, 78
+
+ // var buf [256]int8 at bp+78, 256
+
+ // var num [13]int8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if sl < socklen_t(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if sl < socklen_t(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint32(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]int8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= nodelen {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= servlen {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint32)(unsafe.Pointer(bp /* a */)) = [4]uint32{0: uint32(0)}
+ // var z uintptr at bp+16, 4
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) = Xstrtoul(tls, s, bp+16, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 16)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint32)(unsafe.Pointer(bp + 1*4)) = *(*uint32)(unsafe.Pointer(bp)) & uint32(0xffffff)
+ AssignShrPtrUint32(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint32)(unsafe.Pointer(bp + 2*4)) = *(*uint32)(unsafe.Pointer(bp + 1*4)) & uint32(0xffff)
+ AssignShrPtrUint32(bp+1*4, int(16))
+ fallthrough
+ case 2:
+ *(*uint32)(unsafe.Pointer(bp + 3*4)) = *(*uint32)(unsafe.Pointer(bp + 2*4)) & uint32(0xff)
+ AssignShrPtrUint32(bp+2*4, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) > uint32(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, l, ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint32(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]int8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]int8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint32(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < l {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint32(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint32(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+84, 4
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int32(p)-int32(name))/1 < 64 {
+ Xmemcpy(tls, bp+4, name, uint32((int32(p)-int32(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int32(p)-int32(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint32(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+84, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 84 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint32(255))-size_t(1) >= size_t(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint32((int32(z)-int32(p))/1+1))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint32(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint32(255))
+ if l-size_t(1) >= size_t(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+size_t(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint32(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint32(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint32(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint32(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint32(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint32(cnt), uint32(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint32 = uint32(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint32(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */
+ var owner int32 = (*FILE)(unsafe.Pointer(f)).lock
+ var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid
+ if owner&CplInt32(0x40000000) == tid {
+ return 0
+ }
+ owner = a_cas(tls, f+76, 0, tid)
+ if !(owner != 0) {
+ return 1
+ }
+ for AssignInt32(&owner, a_cas(tls, f+76, 0, tid|0x40000000)) != 0 {
+ if owner&0x40000000 != 0 || a_cas(tls, f+76, owner, owner|0x40000000) == owner {
+ __futexwait(tls, f+76, owner|0x40000000, 1)
+ }
+ }
+ return 1
+}
+
+func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */
+ if a_swap(tls, f+76, 0)&0x40000000 != 0 {
+ __wake(tls, f+76, 1, 1)
+ }
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 72)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint32(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+28, AssignPtrUintptr(f+16, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+8, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint32(1)) == size_t(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */
+ var ret int32
+ var ap va_list
+ _ = ap
+ ap = va
+ ret = Xvsscanf(tls, s, fmt, ap)
+ _ = ap
+ return ret
+}
+
+type wctrans_t = uintptr /* wctype.h:20:19 */
+
+func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */
+ if !(dest != 0) {
+ return
+ }
+ switch size {
+ case -2:
+ *(*int8)(unsafe.Pointer(dest)) = int8(i)
+ break
+ case -1:
+ *(*int16)(unsafe.Pointer(dest)) = int16(i)
+ break
+ case 0:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 1:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 3:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ }
+}
+
+func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */
+ var p uintptr
+ var i uint32
+ var ap2 va_list
+ _ = ap2
+ ap2 = ap
+ for i = n; i > uint32(1); i-- {
+ VaUintptr(&ap2)
+ }
+ p = VaUintptr(&ap2)
+ _ = ap2
+ return p
+}
+
+func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var width int32
+ var size int32
+ var alloc int32
+ var base int32
+ var p uintptr
+ var c int32
+ var t int32
+ var s uintptr
+ var wcs uintptr
+ // var st mbstate_t at bp+268, 8
+
+ var dest uintptr
+ var invert int32
+ var matches int32
+ var x uint64
+ var y float64
+ var pos off_t
+ // var scanset [257]uint8 at bp, 257
+
+ var i size_t
+ var k size_t
+ // var wc wchar_t at bp+260, 4
+
+ var __need_unlock int32
+ var tmp uintptr
+ var tmp1 uintptr
+ alloc = 0
+ dest = uintptr(0)
+ matches = 0
+ pos = int64(0)
+ __need_unlock = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).lock >= 0 {
+ return X__lockfile(tls, f)
+ }
+ return 0
+ }()
+
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __1
+ }
+ X__toread(tls, f)
+__1:
+ ;
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __2
+ }
+ goto input_fail
+__2:
+ ;
+
+ p = fmt
+__3:
+ if !(*(*uint8)(unsafe.Pointer(p)) != 0) {
+ goto __5
+ }
+
+ alloc = 0
+
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) {
+ goto __6
+ }
+__7:
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) {
+ goto __8
+ }
+ p++
+ goto __7
+__8:
+ ;
+ X__shlim(tls, f, int64(0))
+__9:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __10
+ }
+ goto __9
+__10:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+ goto __4
+__6:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != '%' || int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%') {
+ goto __11
+ }
+ X__shlim(tls, f, int64(0))
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') {
+ goto __12
+ }
+ p++
+__14:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __15
+ }
+ goto __14
+__15:
+ ;
+ goto __13
+__12:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__13:
+ ;
+ if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __16
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(c < 0) {
+ goto __17
+ }
+ goto input_fail
+__17:
+ ;
+ goto match_fail
+__16:
+ ;
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+ goto __4
+__11:
+ ;
+
+ p++
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') {
+ goto __18
+ }
+ dest = uintptr(0)
+ p++
+ goto __19
+__18:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$') {
+ goto __20
+ }
+ dest = arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-'0'))
+ p += uintptr(2)
+ goto __21
+__20:
+ dest = VaUintptr(&ap)
+__21:
+ ;
+__19:
+ ;
+
+ width = 0
+__22:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0) {
+ goto __24
+ }
+ width = 10*width + int32(*(*uint8)(unsafe.Pointer(p))) - '0'
+ goto __23
+__23:
+ p++
+ goto __22
+ goto __24
+__24:
+ ;
+
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') {
+ goto __25
+ }
+ wcs = uintptr(0)
+ s = uintptr(0)
+ alloc = BoolInt32(!!(dest != 0))
+ p++
+ goto __26
+__25:
+ alloc = 0
+__26:
+ ;
+
+ size = 0
+ switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) {
+ case 'h':
+ goto __28
+ case 'l':
+ goto __29
+ case 'j':
+ goto __30
+ case 'z':
+ goto __31
+ case 't':
+ goto __32
+ case 'L':
+ goto __33
+ case 'd':
+ goto __34
+ case 'i':
+ goto __35
+ case 'o':
+ goto __36
+ case 'u':
+ goto __37
+ case 'x':
+ goto __38
+ case 'a':
+ goto __39
+ case 'e':
+ goto __40
+ case 'f':
+ goto __41
+ case 'g':
+ goto __42
+ case 'A':
+ goto __43
+ case 'E':
+ goto __44
+ case 'F':
+ goto __45
+ case 'G':
+ goto __46
+ case 'X':
+ goto __47
+ case 's':
+ goto __48
+ case 'c':
+ goto __49
+ case '[':
+ goto __50
+ case 'S':
+ goto __51
+ case 'C':
+ goto __52
+ case 'p':
+ goto __53
+ case 'n':
+ goto __54
+ default:
+ goto __55
+ }
+ goto __27
+__28:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') {
+ goto __56
+ }
+ p++
+ size = -2
+ goto __57
+__56:
+ size = -1
+__57:
+ ;
+ goto __27
+__29:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') {
+ goto __58
+ }
+ p++
+ size = 3
+ goto __59
+__58:
+ size = 1
+__59:
+ ;
+ goto __27
+__30:
+ size = 3
+ goto __27
+__31:
+__32:
+ size = 1
+ goto __27
+__33:
+ size = 2
+ goto __27
+__34:
+__35:
+__36:
+__37:
+__38:
+__39:
+__40:
+__41:
+__42:
+__43:
+__44:
+__45:
+__46:
+__47:
+__48:
+__49:
+__50:
+__51:
+__52:
+__53:
+__54:
+ p--
+ goto __27
+__55:
+ goto fmt_fail
+__27:
+ ;
+
+ t = int32(*(*uint8)(unsafe.Pointer(p)))
+
+ // C or S
+ if !(t&0x2f == 3) {
+ goto __60
+ }
+ t = t | 32
+ size = 1
+__60:
+ ;
+
+ switch t {
+ case 'c':
+ goto __62
+ case '[':
+ goto __63
+ case 'n':
+ goto __64
+ default:
+ goto __65
+ }
+ goto __61
+__62:
+ if !(width < 1) {
+ goto __66
+ }
+ width = 1
+__66:
+ ;
+__63:
+ goto __61
+__64:
+ store_int(tls, dest, size, uint64(pos))
+ // do not increment match count, etc!
+ goto __4
+__65:
+ X__shlim(tls, f, int64(0))
+__67:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __68
+ }
+ goto __67
+__68:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+__61:
+ ;
+
+ X__shlim(tls, f, int64(width))
+ if !(func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() < 0) {
+ goto __69
+ }
+ goto input_fail
+__69:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+
+ switch t {
+ case 's':
+ goto __71
+ case 'c':
+ goto __72
+ case '[':
+ goto __73
+ case 'p':
+ goto __74
+ case 'X':
+ goto __75
+ case 'x':
+ goto __76
+ case 'o':
+ goto __77
+ case 'd':
+ goto __78
+ case 'u':
+ goto __79
+ case 'i':
+ goto __80
+ case 'a':
+ goto __81
+ case 'A':
+ goto __82
+ case 'e':
+ goto __83
+ case 'E':
+ goto __84
+ case 'f':
+ goto __85
+ case 'F':
+ goto __86
+ case 'g':
+ goto __87
+ case 'G':
+ goto __88
+ }
+ goto __70
+__71:
+__72:
+__73:
+ if !(t == 'c' || t == 's') {
+ goto __89
+ }
+ Xmemset(tls, bp, -1, uint32(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(t == 's') {
+ goto __91
+ }
+ *(*uint8)(unsafe.Pointer(bp + 10)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 11)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 12)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 13)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 14)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 33)) = uint8(0)
+__91:
+ ;
+ goto __90
+__89:
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') {
+ goto __92
+ }
+ p++
+ invert = 1
+ goto __93
+__92:
+ invert = 0
+__93:
+ ;
+ Xmemset(tls, bp, invert, uint32(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') {
+ goto __94
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 46)) = uint8(1 - invert)
+ goto __95
+__94:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') {
+ goto __96
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 94)) = uint8(1 - invert)
+__96:
+ ;
+__95:
+ ;
+__97:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') {
+ goto __99
+ }
+ if !!(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ goto __100
+ }
+ goto fmt_fail
+__100:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-' && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']') {
+ goto __101
+ }
+ c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1))))
+__102:
+ if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __104
+ }
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+c))) = uint8(1 - invert)
+ goto __103
+__103:
+ c++
+ goto __102
+ goto __104
+__104:
+ ;
+__101:
+ ;
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+int32(*(*uint8)(unsafe.Pointer(p)))))) = uint8(1 - invert)
+ goto __98
+__98:
+ p++
+ goto __97
+ goto __99
+__99:
+ ;
+__90:
+ ;
+ wcs = uintptr(0)
+ s = uintptr(0)
+ i = size_t(0)
+ if t == 'c' {
+ k = uint32(width) + 1
+ } else {
+ k = uint32(31)
+ }
+ if !(size == 1) {
+ goto __105
+ }
+ if !(alloc != 0) {
+ goto __107
+ }
+ wcs = Xmalloc(tls, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(wcs != 0) {
+ goto __109
+ }
+ goto alloc_fail
+__109:
+ ;
+ goto __108
+__107:
+ wcs = dest
+__108:
+ ;
+ *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{}
+__110:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __111
+ }
+ switch Xmbrtowc(tls, bp+260, func() uintptr { *(*int8)(unsafe.Pointer(bp + 264)) = int8(c); return bp + 264 }(), uint32(1), bp+268 /* &st */) {
+ case Uint32FromInt32(-1):
+ goto __113
+ case Uint32FromInt32(-2):
+ goto __114
+ }
+ goto __112
+__113:
+ goto input_fail
+__114:
+ goto __110
+__112:
+ ;
+ if !(wcs != 0) {
+ goto __115
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint32(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */))
+__115:
+ ;
+ if !(alloc != 0 && i == k) {
+ goto __116
+ }
+ k = k + (k + size_t(1))
+ tmp = Xrealloc(tls, wcs, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(tmp != 0) {
+ goto __117
+ }
+ goto alloc_fail
+__117:
+ ;
+ wcs = tmp
+__116:
+ ;
+ goto __110
+__111:
+ ;
+ if !!(Xmbsinit(tls, bp+268) != 0) {
+ goto __118
+ }
+ goto input_fail
+__118:
+ ;
+ goto __106
+__105:
+ if !(alloc != 0) {
+ goto __119
+ }
+ s = Xmalloc(tls, k)
+ if !!(s != 0) {
+ goto __121
+ }
+ goto alloc_fail
+__121:
+ ;
+__122:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __123
+ }
+ *(*int8)(unsafe.Pointer(s + uintptr(PostIncUint32(&i, 1)))) = int8(c)
+ if !(i == k) {
+ goto __124
+ }
+ k = k + (k + size_t(1))
+ tmp1 = Xrealloc(tls, s, k)
+ if !!(tmp1 != 0) {
+ goto __125
+ }
+ goto alloc_fail
+__125:
+ ;
+ s = tmp1
+__124:
+ ;
+ goto __122
+__123:
+ ;
+ goto __120
+__119:
+ if !(AssignUintptr(&s, dest) != 0) {
+ goto __126
+ }
+__128:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __129
+ }
+ *(*int8)(unsafe.Pointer(s + uintptr(PostIncUint32(&i, 1)))) = int8(c)
+ goto __128
+__129:
+ ;
+ goto __127
+__126:
+__130:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __131
+ }
+ goto __130
+__131:
+ ;
+__127:
+ ;
+__120:
+ ;
+__106:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != 0) {
+ goto __132
+ }
+ goto match_fail
+__132:
+ ;
+ if !(t == 'c' && (*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != off_t(width)) {
+ goto __133
+ }
+ goto match_fail
+__133:
+ ;
+ if !(alloc != 0) {
+ goto __134
+ }
+ if !(size == 1) {
+ goto __135
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = wcs
+ goto __136
+__135:
+ *(*uintptr)(unsafe.Pointer(dest)) = s
+__136:
+ ;
+__134:
+ ;
+ if !(t != 'c') {
+ goto __137
+ }
+ if !(wcs != 0) {
+ goto __138
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = 0
+__138:
+ ;
+ if !(s != 0) {
+ goto __139
+ }
+ *(*int8)(unsafe.Pointer(s + uintptr(i))) = int8(0)
+__139:
+ ;
+__137:
+ ;
+ goto __70
+__74:
+__75:
+__76:
+ base = 16
+ goto int_common
+__77:
+ base = 8
+ goto int_common
+__78:
+__79:
+ base = 10
+ goto int_common
+__80:
+ base = 0
+int_common:
+ x = X__intscan(tls, f, uint32(base), 0, 2*uint64(0x7fffffffffffffff)+uint64(1))
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != 0) {
+ goto __140
+ }
+ goto match_fail
+__140:
+ ;
+ if !(t == 'p' && dest != 0) {
+ goto __141
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x))
+ goto __142
+__141:
+ store_int(tls, dest, size, x)
+__142:
+ ;
+ goto __70
+__81:
+__82:
+__83:
+__84:
+__85:
+__86:
+__87:
+__88:
+ y = X__floatscan(tls, f, size, 0)
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != 0) {
+ goto __143
+ }
+ goto match_fail
+__143:
+ ;
+ if !(dest != 0) {
+ goto __144
+ }
+ switch size {
+ case 0:
+ goto __146
+ case 1:
+ goto __147
+ case 2:
+ goto __148
+ }
+ goto __145
+__146:
+ *(*float32)(unsafe.Pointer(dest)) = float32(y)
+ goto __145
+__147:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__148:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__145:
+ ;
+__144:
+ ;
+ goto __70
+__70:
+ ;
+
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+ if !(dest != 0) {
+ goto __149
+ }
+ matches++
+__149:
+ ;
+ goto __4
+__4:
+ p++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(0 != 0) {
+ goto __150
+ }
+fmt_fail:
+alloc_fail:
+input_fail:
+ if !!(matches != 0) {
+ goto __151
+ }
+ matches--
+__151:
+ ;
+match_fail:
+ if !(alloc != 0) {
+ goto __152
+ }
+ Xfree(tls, s)
+ Xfree(tls, wcs)
+__152:
+ ;
+__150:
+ ;
+__153:
+ if !(__need_unlock != 0) {
+ goto __156
+ }
+ X__unlockfile(tls, f)
+__156:
+ ;
+ goto __154
+__154:
+ if 0 != 0 {
+ goto __153
+ }
+ goto __155
+__155:
+ ;
+ return matches
+}
+
+func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */
+ var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie
+ var k size_t = len + size_t(256)
+ var end uintptr = Xmemchr(tls, src, 0, k)
+ if end != 0 {
+ k = size_t((int32(end) - int32(src)) / 1)
+ }
+ if k < len {
+ len = k
+ }
+ Xmemcpy(tls, buf, src, len)
+ (*FILE)(unsafe.Pointer(f)).rpos = src + uintptr(len)
+ (*FILE)(unsafe.Pointer(f)).rend = src + uintptr(k)
+ (*FILE)(unsafe.Pointer(f)).cookie = src + uintptr(k)
+ return len
+}
+
+func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ }{string_read})), buf: s, lock: -1, cookie: s}
+ return Xvfscanf(tls, bp, fmt, ap)
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ // var f FILE at bp, 136
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(136)
+ defer tls.Free(136)
+
+ // var f FILE at bp, 136
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1))
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint32 { /* strtol.c:31:15: */
+ return uint32(strtox1(tls, s, p, base, uint64(2*uint32(0x7fffffff)+uint32(1))))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int32 { /* strtol.c:36:6: */
+ return int32(strtox1(tls, s, p, base, uint64(0+Uint32FromInt32(Int32(-Int32(0x7fffffff))-Int32FromInt32(1)))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return Xstrtoll(tls, s, p, base)
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return Xstrtoull(tls, s, p, base)
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+size_t(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+size_t(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint32(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint32(unsafe.Sizeof(size_t(0)))-uint32(1)) == uintptr_t(d)&(uint32(unsafe.Sizeof(size_t(0)))-uint32(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint32(unsafe.Sizeof(size_t(0)))-uint32(1)) != 0 && n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*int8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint32)(unsafe.Pointer(ws))-Uint32(Uint32FromInt32(-1))/size_t(255)) & ^*(*uint32)(unsafe.Pointer(ws)) & (Uint32(Uint32FromInt32(-1))/size_t(255)*size_t(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint32)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 4
+ wd += 4
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*int8)(unsafe.Pointer(d)) = int8(0)
+finish:
+ return size_t((int32(d)-int32(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint32(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*int8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = int8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint32((int32(p) - int32(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[8]size_t)(unsafe.Pointer(bp /* byteset */)) = [8]size_t{0: size_t(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return size_t(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int32(s) - int32(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint32(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4, size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4))&(size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int32(s) - int32(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*int8)(unsafe.Pointer(_sp)) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = int8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer(a + 3*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer(a + 3*4))
+ return 0
+}
+
+//
+// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_guardsize;
+// return 0;
+// }
+//
+// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit)
+// {
+// *inherit = a->_a_sched;
+// return 0;
+// }
+//
+// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param)
+// {
+// param->sched_priority = a->_a_prio;
+// return 0;
+// }
+//
+// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy)
+// {
+// *policy = a->_a_policy;
+// return 0;
+// }
+//
+// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope)
+// {
+// *scope = PTHREAD_SCOPE_SYSTEM;
+// return 0;
+// }
+//
+// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size)
+// {
+// if (!a->_a_stackaddr)
+// return EINVAL;
+// *size = a->_a_stacksize;
+// *addr = (void *)(a->_a_stackaddr - *size);
+// return 0;
+// }
+//
+// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_stacksize;
+// return 0;
+// }
+//
+// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = !!a->__attr;
+// return 0;
+// }
+//
+// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
+// {
+// *clk = a->__attr & 0x7fffffff;
+// return 0;
+// }
+//
+// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr>>31;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol)
+// {
+// *protocol = PTHREAD_PRIO_NONE;
+// return 0;
+// }
+// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr / 128U % 2;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
+// {
+// *robust = a->__attr / 4U % 2;
+// return 0;
+// }
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))
+}
+
+// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
+// {
+// *type = a->__attr & 3;
+// return 0;
+// }
+//
+// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr[0];
+// return 0;
+// }
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer(a + 3*4)) = state
+ return 0
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return *(*int32)(unsafe.Pointer(m)) & 15
+}
+
+// int __pthread_mutex_lock(pthread_mutex_t *m)
+// {
+// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
+// && !a_cas(&m->_m_lock, 0, EBUSY))
+// return 0;
+//
+// return __pthread_mutex_timedlock(m, 0);
+// }
+//
+// weak_alias(__pthread_mutex_lock, pthread_mutex_lock);
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr&Uint32FromInt32(CplInt32(3)) | uint32(type1)
+ return 0
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptable)) + 0)) = uintptr(unsafe.Pointer(&table)) + uintptr(128)*2 // __ctype_b_loc.c:36:45:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_linux_amd64.go b/vendor/modernc.org/libc/musl_linux_amd64.go
new file mode 100644
index 00000000..874dfbdf
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_linux_amd64.go
@@ -0,0 +1,6920 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+type uint16_t = uint16 /* alltypes.h:126:25 */
+
+type uint32_t = uint32 /* alltypes.h:131:25 */
+
+type uint64_t = uint64 /* alltypes.h:136:25 */
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+var table = [384]uint16{
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x320/256 | 0x320*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x160/256 | 0x160*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+} /* __ctype_b_loc.c:9:29 */
+
+var ptable uintptr = 0 /* __ctype_b_loc.c:36:29 */
+
+func X__ctype_b_loc(tls *TLS) uintptr { /* __ctype_b_loc.c:38:22: */
+ return uintptr(unsafe.Pointer(&ptable))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:343:9 */
+
+type locale_t = uintptr /* alltypes.h:343:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */
+ return Bool32(uint32(c)-uint32('A') < uint32(26))
+}
+
+func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */
+ return Xisupper(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type off_t = int64 /* alltypes.h:162:16 */
+
+type ino_t = uint64 /* alltypes.h:167:25 */
+
+type dirent = struct {
+ d_ino ino_t
+ d_off off_t
+ d_reclen uint16
+ d_type uint8
+ d_name [256]int8
+ _ [5]byte
+} /* dirent.h:5:1 */
+
+type __dirstream = struct {
+ tell off_t
+ fd int32
+ buf_pos int32
+ buf_end int32
+ lock [1]int32
+ buf [2048]int8
+} /* dirent.h:20:9 */
+
+type DIR = __dirstream /* dirent.h:20:28 */
+
+type ssize_t = int64 /* alltypes.h:65:15 */
+
+type intptr_t = int64 /* alltypes.h:70:15 */
+
+type pid_t = int32 /* alltypes.h:235:13 */
+
+type uid_t = uint32 /* alltypes.h:245:18 */
+
+type gid_t = uint32 /* alltypes.h:250:18 */
+
+type useconds_t = uint32 /* alltypes.h:260:18 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+func Xclosedir(tls *TLS, dir uintptr) int32 { /* closedir.c:6:5: */
+ var ret int32 = Xclose(tls, (*DIR)(unsafe.Pointer(dir)).fd)
+ Xfree(tls, dir)
+ return ret
+}
+
+type mode_t = uint32 /* alltypes.h:152:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:355:1 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+type file_handle = struct {
+ _ [0]uint32
+ handle_bytes uint32
+ handle_type int32
+} /* fcntl.h:167:1 */
+
+type f_owner_ex = struct {
+ __type int32
+ pid pid_t
+} /* fcntl.h:172:1 */
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func Xopendir(tls *TLS, name uintptr) uintptr { /* opendir.c:8:5: */
+ var fd int32
+ var dir uintptr
+
+ if AssignInt32(&fd, Xopen(tls, name, 00|0200000|02000000, 0)) < 0 {
+ return uintptr(0)
+ }
+ if !(int32(AssignUintptr(&dir, Xcalloc(tls, uint64(1), uint64(unsafe.Sizeof(DIR{}))))) != 0) {
+ X__syscall1(tls, int64(3), int64(fd))
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).fd = fd
+ return dir
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:41:54 */
+
+type dirstream_buf_alignment_check = [1]int8 /* readdir.c:7:14 */
+
+func Xreaddir(tls *TLS, dir uintptr) uintptr { /* readdir.c:10:15: */
+ var de uintptr
+
+ if (*DIR)(unsafe.Pointer(dir)).buf_pos >= (*DIR)(unsafe.Pointer(dir)).buf_end {
+ var len int32 = int32(X__syscall3(tls, int64(217), int64((*DIR)(unsafe.Pointer(dir)).fd), int64(dir+24), int64(unsafe.Sizeof([2048]int8{}))))
+ if len <= 0 {
+ if len < 0 && len != -2 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = -len
+ }
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).buf_end = len
+ (*DIR)(unsafe.Pointer(dir)).buf_pos = 0
+ }
+ de = dir + 24 + uintptr((*DIR)(unsafe.Pointer(dir)).buf_pos)
+ *(*int32)(unsafe.Pointer(dir + 12)) += int32((*dirent)(unsafe.Pointer(de)).d_reclen)
+ (*DIR)(unsafe.Pointer(dir)).tell = (*dirent)(unsafe.Pointer(de)).d_off
+ return de
+}
+
+type uintptr_t = uint64 /* alltypes.h:55:24 */
+
+type int8_t = int8 /* alltypes.h:96:25 */
+
+type int16_t = int16 /* alltypes.h:101:25 */
+
+type int32_t = int32 /* alltypes.h:106:25 */
+
+type int64_t = int64 /* alltypes.h:111:25 */
+
+type intmax_t = int64 /* alltypes.h:116:25 */
+
+type uint8_t = uint8 /* alltypes.h:121:25 */
+
+type uintmax_t = uint64 /* alltypes.h:146:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:320:9 */
+
+type FILE = _IO_FILE /* alltypes.h:320:25 */
+
+type va_list = uintptr /* alltypes.h:326:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:29:15 */
+
+type double_t = float64 /* alltypes.h:34:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [5]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int64
+ pending uintptr
+ }
+ timer_id int32
+ _ [4]byte
+ locale locale_t
+ killlock [1]int32
+ _ [4]byte
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ dtv_copy uintptr
+} /* alltypes.h:273:9 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table1 = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table1)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits int8
+ frac_digits int8
+ p_cs_precedes int8
+ p_sep_by_space int8
+ n_cs_precedes int8
+ n_sep_by_space int8
+ p_sign_posn int8
+ n_sign_posn int8
+ int_p_cs_precedes int8
+ int_p_sep_by_space int8
+ int_n_cs_precedes int8
+ int_n_sep_by_space int8
+ int_p_sign_posn int8
+ int_n_sign_posn int8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: Int8FromInt32(255), frac_digits: Int8FromInt32(255), p_cs_precedes: Int8FromInt32(255), p_sep_by_space: Int8FromInt32(255), n_cs_precedes: Int8FromInt32(255), n_sep_by_space: Int8FromInt32(255), p_sign_posn: Int8FromInt32(255), n_sign_posn: Int8FromInt32(255), int_p_cs_precedes: Int8FromInt32(255), int_p_sep_by_space: Int8FromInt32(255), int_n_cs_precedes: Int8FromInt32(255), int_n_sep_by_space: Int8FromInt32(255), int_p_sign_posn: Int8FromInt32(255), int_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]int8
+ next uintptr
+} /* alltypes.h:343:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads int8
+ threaded int8
+ secure int8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int64 /* alltypes.h:85:16 */
+
+type clockid_t = int32 /* alltypes.h:214:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:229:1 */
+
+type pthread_t = uintptr /* alltypes.h:273:26 */
+
+type pthread_once_t = int32 /* alltypes.h:279:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:284:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:289:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:349:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:349:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:372:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:377:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:387:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:397:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:402:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:209:14 */
+
+type clock_t = int64 /* alltypes.h:219:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+ }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [32]int8
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:273:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ _ [4]byte
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = int64 /* signal.h:59:19 */
+type gregset_t = [23]int64 /* signal.h:59:27 */
+type _fpstate = struct {
+ cwd uint16
+ swd uint16
+ ftw uint16
+ fop uint16
+ rip uint64
+ rdp uint64
+ mxcsr uint32
+ mxcr_mask uint32
+ _st [8]struct {
+ significand [4]uint16
+ exponent uint16
+ padding [3]uint16
+ }
+ _xmm [16]struct{ element [4]uint32 }
+ padding [24]uint32
+} /* signal.h:60:9 */
+
+type fpregset_t = uintptr /* signal.h:71:3 */
+type sigcontext = struct {
+ r8 uint64
+ r9 uint64
+ r10 uint64
+ r11 uint64
+ r12 uint64
+ r13 uint64
+ r14 uint64
+ r15 uint64
+ rdi uint64
+ rsi uint64
+ rbp uint64
+ rbx uint64
+ rdx uint64
+ rax uint64
+ rcx uint64
+ rsp uint64
+ rip uint64
+ eflags uint64
+ cs uint16
+ gs uint16
+ fs uint16
+ __pad0 uint16
+ err uint64
+ trapno uint64
+ oldmask uint64
+ cr2 uint64
+ fpstate uintptr
+ __reserved1 [8]uint64
+} /* signal.h:72:1 */
+
+type mcontext_t = struct {
+ gregs gregset_t
+ fpregs fpregset_t
+ __reserved1 [8]uint64
+} /* signal.h:84:3 */
+
+type __ucontext = struct {
+ uc_flags uint64
+ uc_link uintptr
+ uc_stack stack_t
+ uc_mcontext mcontext_t
+ uc_sigmask sigset_t
+ __fpregs_mem [64]uint64
+} /* signal.h:97:9 */
+
+type ucontext_t = __ucontext /* signal.h:104:3 */
+
+type sigval = struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+} /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ _ [4]byte
+ __si_fields struct {
+ _ [0]uint64
+ __pad [112]int8
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ _ [4]byte
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:2:19: */
+ panic(`arch/x86_64/atomic_arch.h:4:2: assembler statements not supported`)
+ return t
+}
+
+func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic_arch.h:20:19: */
+ panic(`arch/x86_64/atomic_arch.h:22:2: assembler statements not supported`)
+ return v
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:46:20: */
+ panic(`arch/x86_64/atomic_arch.h:48:2: assembler statements not supported`)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic_arch.h:62:20: */
+ panic(`arch/x86_64/atomic_arch.h:64:2: assembler statements not supported`)
+}
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:112:19: */
+ panic(`arch/x86_64/atomic_arch.h:114:2: assembler statements not supported`)
+ return int32(x)
+}
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */
+ return int32(_sdebruijn328[x&-x*uint32_t(0x076be629)>>27])
+}
+
+var _sdebruijn328 = [32]int8{
+ int8(0), int8(1), int8(23), int8(2), int8(29), int8(24), int8(19), int8(3), int8(30), int8(27), int8(25), int8(11), int8(20), int8(8), int8(4), int8(13),
+ int8(31), int8(22), int8(28), int8(18), int8(26), int8(10), int8(7), int8(12), int8(21), int8(17), int8(9), int8(6), int8(16), int8(5), int8(15), int8(14),
+} /* atomic.h:261:20 */
+
+type __timer = struct {
+ timerid int32
+ _ [4]byte
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */
+ var self uintptr
+ panic(`arch/x86_64/pthread_arch.h:4:2: assembler statements not supported`)
+ return self
+}
+
+func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ if cnt < 0 {
+ cnt = 0x7fffffff
+ }
+ _ = Bool32(X__syscall3(tls, int64(202), int64(addr), int64(1|priv), int64(cnt)) != int64(-38) || X__syscall3(tls, int64(202), int64(addr), int64(1), int64(cnt)) != 0)
+}
+
+func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ _ = Bool32(X__syscall4(tls, int64(202), int64(addr), int64(0|priv), int64(val), int64(0)) != int64(-38) || X__syscall4(tls, int64(202), int64(addr), int64(0), int64(val), int64(0)) != 0)
+}
+
+var X__fsmu8 = [51]uint32_t{
+ func() uint32 {
+ if 0x2 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2)
+ }(), func() uint32 {
+ if 0x3 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3)
+ }(), func() uint32 {
+ if 0x4 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4)
+ }(), func() uint32 {
+ if 0x5 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5)
+ }(), func() uint32 {
+ if 0x6 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6)
+ }(), func() uint32 {
+ if 0x7 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7)
+ }(),
+ func() uint32 {
+ if 0x8 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8)
+ }(), func() uint32 {
+ if 0x9 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9)
+ }(), func() uint32 {
+ if 0xa < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa)
+ }(), func() uint32 {
+ if 0xb < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb)
+ }(), func() uint32 {
+ if 0xc < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc)
+ }(), func() uint32 {
+ if 0xd < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd)
+ }(), func() uint32 {
+ if 0xe < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe)
+ }(), func() uint32 {
+ if 0xf < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf)
+ }(),
+ func() uint32 {
+ if 0x0+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x0+16)
+ }(), func() uint32 {
+ if 0x1+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x1+16)
+ }(), func() uint32 {
+ if 0x2+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2+16)
+ }(), func() uint32 {
+ if 0x3+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3+16)
+ }(), func() uint32 {
+ if 0x4+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4+16)
+ }(), func() uint32 {
+ if 0x5+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5+16)
+ }(), func() uint32 {
+ if 0x6+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6+16)
+ }(), func() uint32 {
+ if 0x7+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7+16)
+ }(),
+ func() uint32 {
+ if 0x8+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8+16)
+ }(), func() uint32 {
+ if 0x9+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9+16)
+ }(), func() uint32 {
+ if 0xa+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa+16)
+ }(), func() uint32 {
+ if 0xb+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb+16)
+ }(), func() uint32 {
+ if 0xc+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc+16)
+ }(), func() uint32 {
+ if 0xd+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd+16)
+ }(), func() uint32 {
+ if 0xe+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe+16)
+ }(), func() uint32 {
+ if 0xf+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf+16)
+ }(),
+ func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x0), func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x1), func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x2), func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x3), func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x4), func() uint32 {
+ if 0x5 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x5 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x5), func() uint32 {
+ if 0x6 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x6 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x6), func() uint32 {
+ if 0x7 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x7 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x7),
+ func() uint32 {
+ if 0x8 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x8 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x8), func() uint32 {
+ if 0x9 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x9 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x9), func() uint32 {
+ if 0xa == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xa == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xa), func() uint32 {
+ if 0xb == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xb == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xb), func() uint32 {
+ if 0xc == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xc == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xc), func() uint32 {
+ if 0xd == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xd == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xd), func() uint32 {
+ if 0xe == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xe == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xe), func() uint32 {
+ if 0xf == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xf == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xf),
+ func() uint32 {
+ if 0x0 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x0), func() uint32 {
+ if 0x1 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x1), func() uint32 {
+ if 0x2 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x2), func() uint32 {
+ if 0x3 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x3), func() uint32 {
+ if 0x4 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x4),
+} /* internal.c:18:16 */
+
+type wint_t = uint32 /* alltypes.h:198:18 */
+
+type wctype_t = uint64 /* alltypes.h:203:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:337:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:337:63 */
+
+func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var c uint32
+ var s uintptr
+ var N uint32
+ // var dummy wchar_t at bp, 4
+ s = src
+ N = uint32(n)
+
+ if !!(st != 0) {
+ goto __1
+ }
+ st = uintptr(unsafe.Pointer(&_sinternal_state))
+__1:
+ ;
+ c = *(*uint32)(unsafe.Pointer(st))
+
+ if !!(s != 0) {
+ goto __2
+ }
+ if !(c != 0) {
+ goto __4
+ }
+ goto ilseq
+__4:
+ ;
+ return uint64(0)
+ goto __3
+__2:
+ if !!(wc != 0) {
+ goto __5
+ }
+ wc = bp /* &dummy */
+__5:
+ ;
+__3:
+ ;
+
+ if !!(n != 0) {
+ goto __6
+ }
+ return Uint64FromInt32(-2)
+__6:
+ ;
+ if !!(c != 0) {
+ goto __7
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) {
+ goto __8
+ }
+ return BoolUint64(!!(AssignPtrInt32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s)))) != 0))
+__8:
+ ;
+ if !(func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1) {
+ goto __9
+ }
+ *(*wchar_t)(unsafe.Pointer(wc)) = 0xdfff & int32(int8(*(*uint8)(unsafe.Pointer(s))))
+ return 1
+__9:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0xc2 > 0xf4-0xc2) {
+ goto __10
+ }
+ goto ilseq
+__10:
+ ;
+ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0xc2]
+ n--
+__7:
+ ;
+
+ if !(n != 0) {
+ goto __11
+ }
+ if !((int32(*(*uint8)(unsafe.Pointer(s)))>>3-0x10|(int32(*(*uint8)(unsafe.Pointer(s)))>>3+int32_t(c)>>26))&CplInt32(7) != 0) {
+ goto __12
+ }
+ goto ilseq
+__12:
+ ;
+loop:
+ c = c<<6 | uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0x80)
+ n--
+ if !!(c&(uint32(1)<<31) != 0) {
+ goto __13
+ }
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(c)
+ return size_t(N) - n
+__13:
+ ;
+ if !(n != 0) {
+ goto __14
+ }
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0x80 >= uint32(0x40)) {
+ goto __15
+ }
+ goto ilseq
+__15:
+ ;
+ goto loop
+__14:
+ ;
+__11:
+ ;
+
+ *(*uint32)(unsafe.Pointer(st)) = c
+ return Uint64FromInt32(-2)
+ilseq:
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint64FromInt32(-1)
+}
+
+var _sinternal_state uint32 /* mbrtowc.c:8:18: */
+
+func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */
+ return Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0))
+}
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type socklen_t = uint32 /* alltypes.h:361:18 */
+
+type sa_family_t = uint16 /* alltypes.h:366:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint64(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint64(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) {
+ return 34
+ }
+ buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))
+ buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l))
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */
+ return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err)
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]int8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+90, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]int8 at bp, 78
+
+ // var buf [256]int8 at bp+78, 256
+
+ // var num [13]int8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]int8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= size_t(nodelen) {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*int8)(unsafe.Pointer(bp + 78)) = int8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= size_t(servlen) {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */
+ var owner int32 = (*FILE)(unsafe.Pointer(f)).lock
+ var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid
+ if owner&CplInt32(0x40000000) == tid {
+ return 0
+ }
+ owner = a_cas(tls, f+140, 0, tid)
+ if !(owner != 0) {
+ return 1
+ }
+ for AssignInt32(&owner, a_cas(tls, f+140, 0, tid|0x40000000)) != 0 {
+ if owner&0x40000000 != 0 || a_cas(tls, f+140, owner, owner|0x40000000) == owner {
+ __futexwait(tls, f+140, owner|0x40000000, 1)
+ }
+ }
+ return 1
+}
+
+func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */
+ if a_swap(tls, f+140, 0)&0x40000000 != 0 {
+ __wake(tls, f+140, 1, 1)
+ }
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */
+ var ret int32
+ var ap va_list
+ _ = ap
+ ap = va
+ ret = Xvsscanf(tls, s, fmt, ap)
+ _ = ap
+ return ret
+}
+
+type wctrans_t = uintptr /* wctype.h:20:19 */
+
+func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */
+ if !(dest != 0) {
+ return
+ }
+ switch size {
+ case -2:
+ *(*int8)(unsafe.Pointer(dest)) = int8(i)
+ break
+ case -1:
+ *(*int16)(unsafe.Pointer(dest)) = int16(i)
+ break
+ case 0:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 1:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ case 3:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ }
+}
+
+func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */
+ var p uintptr
+ var i uint32
+ var ap2 va_list
+ _ = ap2
+ ap2 = ap
+ for i = n; i > uint32(1); i-- {
+ VaUintptr(&ap2)
+ }
+ p = VaUintptr(&ap2)
+ _ = ap2
+ return p
+}
+
+func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var width int32
+ var size int32
+ var alloc int32
+ var base int32
+ var p uintptr
+ var c int32
+ var t int32
+ var s uintptr
+ var wcs uintptr
+ // var st mbstate_t at bp+268, 8
+
+ var dest uintptr
+ var invert int32
+ var matches int32
+ var x uint64
+ var y float64
+ var pos off_t
+ // var scanset [257]uint8 at bp, 257
+
+ var i size_t
+ var k size_t
+ // var wc wchar_t at bp+260, 4
+
+ var __need_unlock int32
+ var tmp uintptr
+ var tmp1 uintptr
+ alloc = 0
+ dest = uintptr(0)
+ matches = 0
+ pos = int64(0)
+ __need_unlock = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).lock >= 0 {
+ return X__lockfile(tls, f)
+ }
+ return 0
+ }()
+
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __1
+ }
+ X__toread(tls, f)
+__1:
+ ;
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __2
+ }
+ goto input_fail
+__2:
+ ;
+
+ p = fmt
+__3:
+ if !(*(*uint8)(unsafe.Pointer(p)) != 0) {
+ goto __5
+ }
+
+ alloc = 0
+
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) {
+ goto __6
+ }
+__7:
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) {
+ goto __8
+ }
+ p++
+ goto __7
+__8:
+ ;
+ X__shlim(tls, f, int64(0))
+__9:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __10
+ }
+ goto __9
+__10:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ goto __4
+__6:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != '%' || int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%') {
+ goto __11
+ }
+ X__shlim(tls, f, int64(0))
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') {
+ goto __12
+ }
+ p++
+__14:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __15
+ }
+ goto __14
+__15:
+ ;
+ goto __13
+__12:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__13:
+ ;
+ if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __16
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(c < 0) {
+ goto __17
+ }
+ goto input_fail
+__17:
+ ;
+ goto match_fail
+__16:
+ ;
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ goto __4
+__11:
+ ;
+
+ p++
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') {
+ goto __18
+ }
+ dest = uintptr(0)
+ p++
+ goto __19
+__18:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$') {
+ goto __20
+ }
+ dest = arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-'0'))
+ p += uintptr(2)
+ goto __21
+__20:
+ dest = VaUintptr(&ap)
+__21:
+ ;
+__19:
+ ;
+
+ width = 0
+__22:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0) {
+ goto __24
+ }
+ width = 10*width + int32(*(*uint8)(unsafe.Pointer(p))) - '0'
+ goto __23
+__23:
+ p++
+ goto __22
+ goto __24
+__24:
+ ;
+
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') {
+ goto __25
+ }
+ wcs = uintptr(0)
+ s = uintptr(0)
+ alloc = BoolInt32(!!(dest != 0))
+ p++
+ goto __26
+__25:
+ alloc = 0
+__26:
+ ;
+
+ size = 0
+ switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) {
+ case 'h':
+ goto __28
+ case 'l':
+ goto __29
+ case 'j':
+ goto __30
+ case 'z':
+ goto __31
+ case 't':
+ goto __32
+ case 'L':
+ goto __33
+ case 'd':
+ goto __34
+ case 'i':
+ goto __35
+ case 'o':
+ goto __36
+ case 'u':
+ goto __37
+ case 'x':
+ goto __38
+ case 'a':
+ goto __39
+ case 'e':
+ goto __40
+ case 'f':
+ goto __41
+ case 'g':
+ goto __42
+ case 'A':
+ goto __43
+ case 'E':
+ goto __44
+ case 'F':
+ goto __45
+ case 'G':
+ goto __46
+ case 'X':
+ goto __47
+ case 's':
+ goto __48
+ case 'c':
+ goto __49
+ case '[':
+ goto __50
+ case 'S':
+ goto __51
+ case 'C':
+ goto __52
+ case 'p':
+ goto __53
+ case 'n':
+ goto __54
+ default:
+ goto __55
+ }
+ goto __27
+__28:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') {
+ goto __56
+ }
+ p++
+ size = -2
+ goto __57
+__56:
+ size = -1
+__57:
+ ;
+ goto __27
+__29:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') {
+ goto __58
+ }
+ p++
+ size = 3
+ goto __59
+__58:
+ size = 1
+__59:
+ ;
+ goto __27
+__30:
+ size = 3
+ goto __27
+__31:
+__32:
+ size = 1
+ goto __27
+__33:
+ size = 2
+ goto __27
+__34:
+__35:
+__36:
+__37:
+__38:
+__39:
+__40:
+__41:
+__42:
+__43:
+__44:
+__45:
+__46:
+__47:
+__48:
+__49:
+__50:
+__51:
+__52:
+__53:
+__54:
+ p--
+ goto __27
+__55:
+ goto fmt_fail
+__27:
+ ;
+
+ t = int32(*(*uint8)(unsafe.Pointer(p)))
+
+ // C or S
+ if !(t&0x2f == 3) {
+ goto __60
+ }
+ t = t | 32
+ size = 1
+__60:
+ ;
+
+ switch t {
+ case 'c':
+ goto __62
+ case '[':
+ goto __63
+ case 'n':
+ goto __64
+ default:
+ goto __65
+ }
+ goto __61
+__62:
+ if !(width < 1) {
+ goto __66
+ }
+ width = 1
+__66:
+ ;
+__63:
+ goto __61
+__64:
+ store_int(tls, dest, size, uint64(pos))
+ // do not increment match count, etc!
+ goto __4
+__65:
+ X__shlim(tls, f, int64(0))
+__67:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __68
+ }
+ goto __67
+__68:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+__61:
+ ;
+
+ X__shlim(tls, f, int64(width))
+ if !(func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() < 0) {
+ goto __69
+ }
+ goto input_fail
+__69:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+
+ switch t {
+ case 's':
+ goto __71
+ case 'c':
+ goto __72
+ case '[':
+ goto __73
+ case 'p':
+ goto __74
+ case 'X':
+ goto __75
+ case 'x':
+ goto __76
+ case 'o':
+ goto __77
+ case 'd':
+ goto __78
+ case 'u':
+ goto __79
+ case 'i':
+ goto __80
+ case 'a':
+ goto __81
+ case 'A':
+ goto __82
+ case 'e':
+ goto __83
+ case 'E':
+ goto __84
+ case 'f':
+ goto __85
+ case 'F':
+ goto __86
+ case 'g':
+ goto __87
+ case 'G':
+ goto __88
+ }
+ goto __70
+__71:
+__72:
+__73:
+ if !(t == 'c' || t == 's') {
+ goto __89
+ }
+ Xmemset(tls, bp, -1, uint64(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(t == 's') {
+ goto __91
+ }
+ *(*uint8)(unsafe.Pointer(bp + 10)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 11)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 12)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 13)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 14)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 33)) = uint8(0)
+__91:
+ ;
+ goto __90
+__89:
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') {
+ goto __92
+ }
+ p++
+ invert = 1
+ goto __93
+__92:
+ invert = 0
+__93:
+ ;
+ Xmemset(tls, bp, invert, uint64(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') {
+ goto __94
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 46)) = uint8(1 - invert)
+ goto __95
+__94:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') {
+ goto __96
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 94)) = uint8(1 - invert)
+__96:
+ ;
+__95:
+ ;
+__97:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') {
+ goto __99
+ }
+ if !!(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ goto __100
+ }
+ goto fmt_fail
+__100:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-' && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']') {
+ goto __101
+ }
+ c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1))))
+__102:
+ if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __104
+ }
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+c))) = uint8(1 - invert)
+ goto __103
+__103:
+ c++
+ goto __102
+ goto __104
+__104:
+ ;
+__101:
+ ;
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+int32(*(*uint8)(unsafe.Pointer(p)))))) = uint8(1 - invert)
+ goto __98
+__98:
+ p++
+ goto __97
+ goto __99
+__99:
+ ;
+__90:
+ ;
+ wcs = uintptr(0)
+ s = uintptr(0)
+ i = uint64(0)
+ if t == 'c' {
+ k = uint64(uint32(width) + 1)
+ } else {
+ k = uint64(31)
+ }
+ if !(size == 1) {
+ goto __105
+ }
+ if !(alloc != 0) {
+ goto __107
+ }
+ wcs = Xmalloc(tls, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(wcs != 0) {
+ goto __109
+ }
+ goto alloc_fail
+__109:
+ ;
+ goto __108
+__107:
+ wcs = dest
+__108:
+ ;
+ *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{}
+__110:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __111
+ }
+ switch Xmbrtowc(tls, bp+260, func() uintptr { *(*int8)(unsafe.Pointer(bp + 264)) = int8(c); return bp + 264 }(), uint64(1), bp+268 /* &st */) {
+ case Uint64FromInt32(-1):
+ goto __113
+ case Uint64FromInt32(-2):
+ goto __114
+ }
+ goto __112
+__113:
+ goto input_fail
+__114:
+ goto __110
+__112:
+ ;
+ if !(wcs != 0) {
+ goto __115
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint64(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */))
+__115:
+ ;
+ if !(alloc != 0 && i == k) {
+ goto __116
+ }
+ k = k + (k + uint64(1))
+ tmp = Xrealloc(tls, wcs, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(tmp != 0) {
+ goto __117
+ }
+ goto alloc_fail
+__117:
+ ;
+ wcs = tmp
+__116:
+ ;
+ goto __110
+__111:
+ ;
+ if !!(Xmbsinit(tls, bp+268) != 0) {
+ goto __118
+ }
+ goto input_fail
+__118:
+ ;
+ goto __106
+__105:
+ if !(alloc != 0) {
+ goto __119
+ }
+ s = Xmalloc(tls, k)
+ if !!(s != 0) {
+ goto __121
+ }
+ goto alloc_fail
+__121:
+ ;
+__122:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __123
+ }
+ *(*int8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = int8(c)
+ if !(i == k) {
+ goto __124
+ }
+ k = k + (k + uint64(1))
+ tmp1 = Xrealloc(tls, s, k)
+ if !!(tmp1 != 0) {
+ goto __125
+ }
+ goto alloc_fail
+__125:
+ ;
+ s = tmp1
+__124:
+ ;
+ goto __122
+__123:
+ ;
+ goto __120
+__119:
+ if !(AssignUintptr(&s, dest) != 0) {
+ goto __126
+ }
+__128:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __129
+ }
+ *(*int8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = int8(c)
+ goto __128
+__129:
+ ;
+ goto __127
+__126:
+__130:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __131
+ }
+ goto __130
+__131:
+ ;
+__127:
+ ;
+__120:
+ ;
+__106:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __132
+ }
+ goto match_fail
+__132:
+ ;
+ if !(t == 'c' && (*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != off_t(width)) {
+ goto __133
+ }
+ goto match_fail
+__133:
+ ;
+ if !(alloc != 0) {
+ goto __134
+ }
+ if !(size == 1) {
+ goto __135
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = wcs
+ goto __136
+__135:
+ *(*uintptr)(unsafe.Pointer(dest)) = s
+__136:
+ ;
+__134:
+ ;
+ if !(t != 'c') {
+ goto __137
+ }
+ if !(wcs != 0) {
+ goto __138
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = 0
+__138:
+ ;
+ if !(s != 0) {
+ goto __139
+ }
+ *(*int8)(unsafe.Pointer(s + uintptr(i))) = int8(0)
+__139:
+ ;
+__137:
+ ;
+ goto __70
+__74:
+__75:
+__76:
+ base = 16
+ goto int_common
+__77:
+ base = 8
+ goto int_common
+__78:
+__79:
+ base = 10
+ goto int_common
+__80:
+ base = 0
+int_common:
+ x = X__intscan(tls, f, uint32(base), 0, 2*uint64(0x7fffffffffffffff)+uint64(1))
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __140
+ }
+ goto match_fail
+__140:
+ ;
+ if !(t == 'p' && dest != 0) {
+ goto __141
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x))
+ goto __142
+__141:
+ store_int(tls, dest, size, x)
+__142:
+ ;
+ goto __70
+__81:
+__82:
+__83:
+__84:
+__85:
+__86:
+__87:
+__88:
+ y = X__floatscan(tls, f, size, 0)
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __143
+ }
+ goto match_fail
+__143:
+ ;
+ if !(dest != 0) {
+ goto __144
+ }
+ switch size {
+ case 0:
+ goto __146
+ case 1:
+ goto __147
+ case 2:
+ goto __148
+ }
+ goto __145
+__146:
+ *(*float32)(unsafe.Pointer(dest)) = float32(y)
+ goto __145
+__147:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__148:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__145:
+ ;
+__144:
+ ;
+ goto __70
+__70:
+ ;
+
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ if !(dest != 0) {
+ goto __149
+ }
+ matches++
+__149:
+ ;
+ goto __4
+__4:
+ p++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(0 != 0) {
+ goto __150
+ }
+fmt_fail:
+alloc_fail:
+input_fail:
+ if !!(matches != 0) {
+ goto __151
+ }
+ matches--
+__151:
+ ;
+match_fail:
+ if !(alloc != 0) {
+ goto __152
+ }
+ Xfree(tls, s)
+ Xfree(tls, wcs)
+__152:
+ ;
+__150:
+ ;
+__153:
+ if !(__need_unlock != 0) {
+ goto __156
+ }
+ X__unlockfile(tls, f)
+__156:
+ ;
+ goto __154
+__154:
+ if 0 != 0 {
+ goto __153
+ }
+ goto __155
+__155:
+ ;
+ return matches
+}
+
+func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */
+ var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie
+ var k size_t = len + uint64(256)
+ var end uintptr = Xmemchr(tls, src, 0, k)
+ if end != 0 {
+ k = size_t((int64(end) - int64(src)) / 1)
+ }
+ if k < len {
+ len = k
+ }
+ Xmemcpy(tls, buf, src, len)
+ (*FILE)(unsafe.Pointer(f)).rpos = src + uintptr(len)
+ (*FILE)(unsafe.Pointer(f)).rend = src + uintptr(k)
+ (*FILE)(unsafe.Pointer(f)).cookie = src + uintptr(k)
+ return len
+}
+
+func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ }{string_read})), buf: s, lock: -1, cookie: s}
+ return Xvfscanf(tls, bp, fmt, ap)
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint64(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*int8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 8
+ wd += 8
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrInt8(d, *(*int8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*int8)(unsafe.Pointer(d)) = int8(0)
+finish:
+ return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint64(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*int8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = int8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*int8)(unsafe.Pointer(_sp)) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = int8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer(a + 6*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer(a + 6*4))
+ return 0
+}
+
+//
+// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_guardsize;
+// return 0;
+// }
+//
+// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit)
+// {
+// *inherit = a->_a_sched;
+// return 0;
+// }
+//
+// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param)
+// {
+// param->sched_priority = a->_a_prio;
+// return 0;
+// }
+//
+// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy)
+// {
+// *policy = a->_a_policy;
+// return 0;
+// }
+//
+// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope)
+// {
+// *scope = PTHREAD_SCOPE_SYSTEM;
+// return 0;
+// }
+//
+// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size)
+// {
+// if (!a->_a_stackaddr)
+// return EINVAL;
+// *size = a->_a_stacksize;
+// *addr = (void *)(a->_a_stackaddr - *size);
+// return 0;
+// }
+//
+// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_stacksize;
+// return 0;
+// }
+//
+// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = !!a->__attr;
+// return 0;
+// }
+//
+// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
+// {
+// *clk = a->__attr & 0x7fffffff;
+// return 0;
+// }
+//
+// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr>>31;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol)
+// {
+// *protocol = PTHREAD_PRIO_NONE;
+// return 0;
+// }
+// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr / 128U % 2;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
+// {
+// *robust = a->__attr / 4U % 2;
+// return 0;
+// }
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))
+}
+
+// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
+// {
+// *type = a->__attr & 3;
+// return 0;
+// }
+//
+// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr[0];
+// return 0;
+// }
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer(a + 6*4)) = state
+ return 0
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return *(*int32)(unsafe.Pointer(m)) & 15
+}
+
+// int __pthread_mutex_lock(pthread_mutex_t *m)
+// {
+// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
+// && !a_cas(&m->_m_lock, 0, EBUSY))
+// return 0;
+//
+// return __pthread_mutex_timedlock(m, 0);
+// }
+//
+// weak_alias(__pthread_mutex_lock, pthread_mutex_lock);
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr&Uint32FromInt32(CplInt32(3)) | uint32(type1)
+ return 0
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptable)) + 0)) = uintptr(unsafe.Pointer(&table)) + uintptr(128)*2 // __ctype_b_loc.c:36:45:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_linux_arm.go b/vendor/modernc.org/libc/musl_linux_arm.go
new file mode 100644
index 00000000..301c4b31
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_linux_arm.go
@@ -0,0 +1,6898 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm.go -pkgname libc -static-locals-prefix _s -Iarch/arm -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type size_t = uint32 /* <builtin>:9:23 */
+
+type wchar_t = uint32 /* <builtin>:15:24 */
+
+type uint16_t = uint16 /* alltypes.h:119:25 */
+
+type uint32_t = uint32 /* alltypes.h:124:25 */
+
+type uint64_t = uint64 /* alltypes.h:129:25 */
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+var table = [384]uint16{
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x320/256 | 0x320*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x160/256 | 0x160*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+} /* __ctype_b_loc.c:9:29 */
+
+var ptable uintptr = 0 /* __ctype_b_loc.c:36:29 */
+
+func X__ctype_b_loc(tls *TLS) uintptr { /* __ctype_b_loc.c:38:22: */
+ return uintptr(unsafe.Pointer(&ptable))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:336:9 */
+
+type locale_t = uintptr /* alltypes.h:336:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */
+ return Bool32(uint32(c)-uint32('A') < uint32(26))
+}
+
+func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */
+ return Xisupper(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type off_t = int64 /* alltypes.h:155:16 */
+
+type ino_t = uint64 /* alltypes.h:160:25 */
+
+type dirent = struct {
+ d_ino ino_t
+ d_off off_t
+ d_reclen uint16
+ d_type uint8
+ d_name [256]uint8
+ _ [5]byte
+} /* dirent.h:5:1 */
+
+type __dirstream = struct {
+ tell off_t
+ fd int32
+ buf_pos int32
+ buf_end int32
+ lock [1]int32
+ buf [2048]uint8
+} /* dirent.h:20:9 */
+
+type DIR = __dirstream /* dirent.h:20:28 */
+
+type ssize_t = int32 /* alltypes.h:58:15 */
+
+type intptr_t = int32 /* alltypes.h:63:15 */
+
+type pid_t = int32 /* alltypes.h:228:13 */
+
+type uid_t = uint32 /* alltypes.h:238:18 */
+
+type gid_t = uint32 /* alltypes.h:243:18 */
+
+type useconds_t = uint32 /* alltypes.h:253:18 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+func Xclosedir(tls *TLS, dir uintptr) int32 { /* closedir.c:6:5: */
+ var ret int32 = Xclose(tls, (*DIR)(unsafe.Pointer(dir)).fd)
+ Xfree(tls, dir)
+ return ret
+}
+
+type mode_t = uint32 /* alltypes.h:145:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:348:1 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+type file_handle = struct {
+ _ [0]uint32
+ handle_bytes uint32
+ handle_type int32
+} /* fcntl.h:167:1 */
+
+type f_owner_ex = struct {
+ __type int32
+ pid pid_t
+} /* fcntl.h:172:1 */
+
+type syscall_arg_t = int32 /* syscall.h:22:14 */
+
+func Xopendir(tls *TLS, name uintptr) uintptr { /* opendir.c:8:5: */
+ var fd int32
+ var dir uintptr
+
+ if AssignInt32(&fd, Xopen(tls, name, 00|040000|02000000, 0)) < 0 {
+ return uintptr(0)
+ }
+ if !(int32(AssignUintptr(&dir, Xcalloc(tls, uint32(1), uint32(unsafe.Sizeof(DIR{}))))) != 0) {
+ X__syscall1(tls, 6, int32(fd))
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).fd = fd
+ return dir
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:34:54 */
+
+type dirstream_buf_alignment_check = [1]uint8 /* readdir.c:7:14 */
+
+func Xreaddir(tls *TLS, dir uintptr) uintptr { /* readdir.c:10:15: */
+ var de uintptr
+
+ if (*DIR)(unsafe.Pointer(dir)).buf_pos >= (*DIR)(unsafe.Pointer(dir)).buf_end {
+ var len int32 = int32(X__syscall3(tls, 217, int32((*DIR)(unsafe.Pointer(dir)).fd), int32(dir+24), int32(unsafe.Sizeof([2048]uint8{}))))
+ if len <= 0 {
+ if len < 0 && len != -2 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = -len
+ }
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).buf_end = len
+ (*DIR)(unsafe.Pointer(dir)).buf_pos = 0
+ }
+ de = dir + 24 + uintptr((*DIR)(unsafe.Pointer(dir)).buf_pos)
+ *(*int32)(unsafe.Pointer(dir + 12)) += int32((*dirent)(unsafe.Pointer(de)).d_reclen)
+ (*DIR)(unsafe.Pointer(dir)).tell = (*dirent)(unsafe.Pointer(de)).d_off
+ return de
+}
+
+type uintptr_t = uint32 /* alltypes.h:48:24 */
+
+type int8_t = int8 /* alltypes.h:89:25 */
+
+type int16_t = int16 /* alltypes.h:94:25 */
+
+type int32_t = int32 /* alltypes.h:99:25 */
+
+type int64_t = int64 /* alltypes.h:104:25 */
+
+type intmax_t = int64 /* alltypes.h:109:25 */
+
+type uint8_t = uint8 /* alltypes.h:114:25 */
+
+type uintmax_t = uint64 /* alltypes.h:139:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int32
+ mode int32
+ lock int32
+ lbf int32
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ _ [4]byte
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+ _ [4]byte
+} /* alltypes.h:313:9 */
+
+type FILE = _IO_FILE /* alltypes.h:313:25 */
+
+type va_list = uintptr /* alltypes.h:319:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]uint8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:23:15 */
+
+type double_t = float64 /* alltypes.h:28:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [1]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int32
+ pending uintptr
+ }
+ timer_id int32
+ locale locale_t
+ killlock [1]int32
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ dtv_copy uintptr
+} /* alltypes.h:266:9 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = size_t(0); i < size_t(8) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < size_t(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == size_t(3) || i == size_t(8) || i > size_t(3) && pok != 0 {
+ if i != size_t(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > size_t(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = size_t(0); i < size_t(3) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < size_t(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == size_t(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = size_t(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint32(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table1 = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table1)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*uint8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf) - int32((*FILE)(unsafe.Pointer(f)).rpos)) / 1)
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1)
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits uint8
+ frac_digits uint8
+ p_cs_precedes uint8
+ p_sep_by_space uint8
+ n_cs_precedes uint8
+ n_sep_by_space uint8
+ p_sign_posn uint8
+ n_sign_posn uint8
+ int_p_cs_precedes uint8
+ int_p_sep_by_space uint8
+ int_n_cs_precedes uint8
+ int_n_sep_by_space uint8
+ int_p_sign_posn uint8
+ int_n_sign_posn uint8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: uint8(255), frac_digits: uint8(255), p_cs_precedes: uint8(255), p_sep_by_space: uint8(255), n_cs_precedes: uint8(255), n_sep_by_space: uint8(255), p_sign_posn: uint8(255), n_sign_posn: uint8(255), int_p_cs_precedes: uint8(255), int_p_sep_by_space: uint8(255), int_n_cs_precedes: uint8(255), int_n_sep_by_space: uint8(255), int_p_sign_posn: uint8(255), int_n_sign_posn: uint8(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]uint8
+ next uintptr
+} /* alltypes.h:336:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads uint8
+ threaded uint8
+ secure uint8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int64 /* alltypes.h:78:16 */
+
+type clockid_t = int32 /* alltypes.h:207:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+} /* alltypes.h:222:1 */
+
+type pthread_t = uintptr /* alltypes.h:266:26 */
+
+type pthread_once_t = int32 /* alltypes.h:272:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:277:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:282:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:287:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:292:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:297:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:302:40 */
+
+type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:342:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:342:71 */
+
+type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:365:147 */
+
+type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:370:157 */
+
+type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:380:112 */
+
+type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:390:139 */
+
+type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:395:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [4]int32
+ __reserved3 int32
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:202:14 */
+
+type clock_t = int32 /* alltypes.h:212:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ tm_gmtoff int32
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct{ sival_int int32 }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [44]uint8
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:266:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = int32 /* signal.h:10:13 */
+type gregset_t = [18]int32 /* signal.h:10:21 */
+type sigcontext = struct {
+ trap_no uint32
+ error_code uint32
+ oldmask uint32
+ arm_r0 uint32
+ arm_r1 uint32
+ arm_r2 uint32
+ arm_r3 uint32
+ arm_r4 uint32
+ arm_r5 uint32
+ arm_r6 uint32
+ arm_r7 uint32
+ arm_r8 uint32
+ arm_r9 uint32
+ arm_r10 uint32
+ arm_fp uint32
+ arm_ip uint32
+ arm_sp uint32
+ arm_lr uint32
+ arm_pc uint32
+ arm_cpsr uint32
+ fault_address uint32
+} /* signal.h:11:9 */
+
+type mcontext_t = sigcontext /* signal.h:18:3 */
+
+type __ucontext = struct {
+ uc_flags uint32
+ uc_link uintptr
+ uc_stack stack_t
+ uc_mcontext mcontext_t
+ uc_sigmask sigset_t
+ uc_regspace [64]uint64
+} /* signal.h:31:9 */
+
+type ucontext_t = __ucontext /* signal.h:38:3 */
+
+type sigval = struct{ sival_int int32 } /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ __si_fields struct {
+ _ [0]uint32
+ __pad [116]uint8
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:46:19: */
+ panic(`arch/arm/atomic_arch.h:48:2: assembler statements not supported`)
+ return int32(0)
+ //TODO for (;;) {
+ //TODO register int r0 __asm__("r0") = t;
+ //TODO register int r1 __asm__("r1") = s;
+ //TODO register volatile int *r2 __asm__("r2") = p;
+ //TODO register uintptr_t r3 __asm__("r3") = __a_cas_ptr;
+ //TODO int old;
+ //TODO __asm__ __volatile__ (
+ //TODO BLX " r3"
+ //TODO : "+r"(r0), "+r"(r3) : "r"(r1), "r"(r2)
+ //TODO : "memory", "lr", "ip", "cc" );
+ //TODO if (!r0) return t;
+ //TODO if ((old=*p)!=t) return old;
+ //TODO }
+}
+
+func a_barrier(tls *TLS) { /* atomic_arch.h:68:20: */
+ panic(`arch/arm/atomic_arch.h:70:2: assembler statements not supported`)
+ //TODO register uintptr_t ip __asm__("ip") = __a_barrier_ptr;
+ //TODO __asm__ __volatile__( BLX " ip" : "+r"(ip) : : "memory", "cc", "lr" );
+}
+
+func a_clz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:91:19: */
+ panic(`arch/arm/atomic_arch.h:93:2: assembler statements not supported`)
+ return int32(x)
+}
+
+func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:108:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, v) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_fetch_add(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:119:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, int32(uint32(old)+uint32(v))) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_fetch_and(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:130:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, old&v) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_fetch_or(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:140:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, old|v) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_and(tls *TLS, p uintptr, v int32) { /* atomic.h:151:20: */
+ a_fetch_and(tls, p, v)
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic.h:159:20: */
+ a_fetch_or(tls, p, v)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ v uint64_t })(unsafe.Pointer(bp)) = func() (r struct{ v uint64_t }) {
+ *(*uint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = v
+ return r
+ }()
+ if *(*uint32_t)(unsafe.Pointer(bp)) != 0 {
+ a_or(tls, p, int32(*(*uint32_t)(unsafe.Pointer(bp))))
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + 1*4)) != 0 {
+ a_or(tls, p+uintptr(1)*4, int32(*(*uint32_t)(unsafe.Pointer(bp + 1*4))))
+ }
+}
+
+type a_cas_p_undefined_but_pointer_not_32bit = [1]uint8 /* atomic.h:229:14 */
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */
+ return 31 - a_clz_32(tls, x&-x)
+}
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic.h:272:19: */
+ if uint32(unsafe.Sizeof(int32(0))) < uint32(8) {
+ var y uint32_t = uint32_t(x)
+ if !(y != 0) {
+ y = uint32_t(x >> 32)
+ return 32 + a_ctz_32(tls, y)
+ }
+ return a_ctz_32(tls, y)
+ }
+ return int32(_sdebruijn648[x&-x*0x022fdd63cc95386d>>58])
+}
+
+var _sdebruijn648 = [64]uint8{
+ uint8(0), uint8(1), uint8(2), uint8(53), uint8(3), uint8(7), uint8(54), uint8(27), uint8(4), uint8(38), uint8(41), uint8(8), uint8(34), uint8(55), uint8(48), uint8(28),
+ uint8(62), uint8(5), uint8(39), uint8(46), uint8(44), uint8(42), uint8(22), uint8(9), uint8(24), uint8(35), uint8(59), uint8(56), uint8(49), uint8(18), uint8(29), uint8(11),
+ uint8(63), uint8(52), uint8(6), uint8(26), uint8(37), uint8(40), uint8(33), uint8(47), uint8(61), uint8(45), uint8(43), uint8(21), uint8(23), uint8(58), uint8(17), uint8(10),
+ uint8(51), uint8(25), uint8(36), uint8(32), uint8(60), uint8(20), uint8(57), uint8(16), uint8(50), uint8(31), uint8(19), uint8(15), uint8(30), uint8(14), uint8(13), uint8(12),
+} /* atomic.h:274:20 */
+
+type __timer = struct {
+ timerid int32
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) pthread_t { /* pthread_arch.h:19:25: */
+ var p uintptr_t
+ panic(`arch/arm/pthread_arch.h:23:2: assembler statements not supported`)
+ return uintptr(p - uintptr_t(unsafe.Sizeof(__pthread{})))
+}
+
+func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ if cnt < 0 {
+ cnt = 0x7fffffff
+ }
+ _ = Bool32(X__syscall3(tls, 240, int32(addr), int32(1|priv), int32(cnt)) != -38 || X__syscall3(tls, 240, int32(addr), 1, int32(cnt)) != 0)
+}
+
+func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ _ = Bool32(X__syscall4(tls, 240, int32(addr), int32(0|priv), int32(val), 0) != -38 || X__syscall4(tls, 240, int32(addr), 0, int32(val), 0) != 0)
+}
+
+var X__fsmu8 = [51]uint32_t{
+ func() uint32 {
+ if 0x2 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2)
+ }(), func() uint32 {
+ if 0x3 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3)
+ }(), func() uint32 {
+ if 0x4 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4)
+ }(), func() uint32 {
+ if 0x5 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5)
+ }(), func() uint32 {
+ if 0x6 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6)
+ }(), func() uint32 {
+ if 0x7 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7)
+ }(),
+ func() uint32 {
+ if 0x8 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8)
+ }(), func() uint32 {
+ if 0x9 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9)
+ }(), func() uint32 {
+ if 0xa < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa)
+ }(), func() uint32 {
+ if 0xb < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb)
+ }(), func() uint32 {
+ if 0xc < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc)
+ }(), func() uint32 {
+ if 0xd < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd)
+ }(), func() uint32 {
+ if 0xe < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe)
+ }(), func() uint32 {
+ if 0xf < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf)
+ }(),
+ func() uint32 {
+ if 0x0+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x0+16)
+ }(), func() uint32 {
+ if 0x1+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x1+16)
+ }(), func() uint32 {
+ if 0x2+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2+16)
+ }(), func() uint32 {
+ if 0x3+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3+16)
+ }(), func() uint32 {
+ if 0x4+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4+16)
+ }(), func() uint32 {
+ if 0x5+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5+16)
+ }(), func() uint32 {
+ if 0x6+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6+16)
+ }(), func() uint32 {
+ if 0x7+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7+16)
+ }(),
+ func() uint32 {
+ if 0x8+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8+16)
+ }(), func() uint32 {
+ if 0x9+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9+16)
+ }(), func() uint32 {
+ if 0xa+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa+16)
+ }(), func() uint32 {
+ if 0xb+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb+16)
+ }(), func() uint32 {
+ if 0xc+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc+16)
+ }(), func() uint32 {
+ if 0xd+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd+16)
+ }(), func() uint32 {
+ if 0xe+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe+16)
+ }(), func() uint32 {
+ if 0xf+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf+16)
+ }(),
+ func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x0), func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x1), func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x2), func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x3), func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x4), func() uint32 {
+ if 0x5 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x5 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x5), func() uint32 {
+ if 0x6 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x6 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x6), func() uint32 {
+ if 0x7 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x7 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x7),
+ func() uint32 {
+ if 0x8 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x8 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x8), func() uint32 {
+ if 0x9 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x9 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x9), func() uint32 {
+ if 0xa == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xa == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xa), func() uint32 {
+ if 0xb == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xb == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xb), func() uint32 {
+ if 0xc == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xc == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xc), func() uint32 {
+ if 0xd == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xd == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xd), func() uint32 {
+ if 0xe == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xe == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xe), func() uint32 {
+ if 0xf == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xf == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xf),
+ func() uint32 {
+ if 0x0 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x0), func() uint32 {
+ if 0x1 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x1), func() uint32 {
+ if 0x2 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x2), func() uint32 {
+ if 0x3 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x3), func() uint32 {
+ if 0x4 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x4),
+} /* internal.c:18:16 */
+
+type wint_t = uint32 /* alltypes.h:191:18 */
+
+type wctype_t = uint32 /* alltypes.h:196:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:330:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:330:63 */
+
+func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var c uint32
+ var s uintptr
+ var N uint32
+ // var dummy wchar_t at bp, 4
+ s = src
+ N = n
+
+ if !!(st != 0) {
+ goto __1
+ }
+ st = uintptr(unsafe.Pointer(&_sinternal_state))
+__1:
+ ;
+ c = *(*uint32)(unsafe.Pointer(st))
+
+ if !!(s != 0) {
+ goto __2
+ }
+ if !(c != 0) {
+ goto __4
+ }
+ goto ilseq
+__4:
+ ;
+ return size_t(0)
+ goto __3
+__2:
+ if !!(wc != 0) {
+ goto __5
+ }
+ wc = bp /* &dummy */
+__5:
+ ;
+__3:
+ ;
+
+ if !!(n != 0) {
+ goto __6
+ }
+ return Uint32FromInt32(-2)
+__6:
+ ;
+ if !!(c != 0) {
+ goto __7
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) {
+ goto __8
+ }
+ return BoolUint32(!!(int32(AssignPtrUint32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s))))) != 0))
+__8:
+ ;
+ if !(func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1) {
+ goto __9
+ }
+ *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(0xdfff & int32(int8(*(*uint8)(unsafe.Pointer(s)))))
+ return 1
+__9:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0xc2 > 0xf4-0xc2) {
+ goto __10
+ }
+ goto ilseq
+__10:
+ ;
+ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0xc2]
+ n--
+__7:
+ ;
+
+ if !(n != 0) {
+ goto __11
+ }
+ if !((int32(*(*uint8)(unsafe.Pointer(s)))>>3-0x10|(int32(*(*uint8)(unsafe.Pointer(s)))>>3+int32_t(c)>>26))&CplInt32(7) != 0) {
+ goto __12
+ }
+ goto ilseq
+__12:
+ ;
+loop:
+ c = c<<6 | uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0x80)
+ n--
+ if !!(c&(uint32(1)<<31) != 0) {
+ goto __13
+ }
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*wchar_t)(unsafe.Pointer(wc)) = c
+ return N - n
+__13:
+ ;
+ if !(n != 0) {
+ goto __14
+ }
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0x80 >= uint32(0x40)) {
+ goto __15
+ }
+ goto ilseq
+__15:
+ ;
+ goto loop
+__14:
+ ;
+__11:
+ ;
+
+ *(*uint32)(unsafe.Pointer(st)) = c
+ return Uint32FromInt32(-2)
+ilseq:
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint32FromInt32(-1)
+}
+
+var _sinternal_state uint32 /* mbrtowc.c:8:18: */
+
+func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */
+ return Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0))
+}
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type socklen_t = uint32 /* alltypes.h:354:18 */
+
+type sa_family_t = uint16 /* alltypes.h:359:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ msg_iov uintptr
+ msg_iovlen int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ msg_flags int32
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [122]uint8
+ __ss_align uint32
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]uint8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]uint8
+ __ss_align uint32
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]uint8
+ __ss_align uint32
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [122]uint8
+ __ss_align uint32
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [122]uint8
+ __ss_align uint32
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [122]uint8
+ __ss_align uint32
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = size_t(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint32(uintptr(0)))
+ b -= 68 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+66, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]uint8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint32(1), uint32(nais)*uint32(unsafe.Sizeof(aibuf{}))+uint32(canon_len)+uint32(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*68
+ Xmemcpy(tls, outcanon, bp+1352, uint32(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addr = out + uintptr(k)*68 + 32
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*68)).ai.ai_next = out + uintptr(k)*68
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*68+32+4, bp+8+uintptr(i)*28+8, uint32(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*68+32+8, bp+8+uintptr(i)*28+8, uint32(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ msg_iov uintptr
+ msg_iovlen int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ msg_flags int32
+ }
+ msg_len uint32
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var size size_t = size_t(63)
+ // var res uintptr at bp, 4
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint32(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint32(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint32(unsafe.Sizeof(uintptr(0))) - uint32(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint32(5)*uint32(unsafe.Sizeof(uintptr(0)))-uint32(i)+l {
+ return 34
+ }
+ buf += uintptr(uint32(unsafe.Sizeof(uintptr(0))) - uint32(i))
+ buflen = buflen - (uint32(5)*uint32(unsafe.Sizeof(uintptr(0))) - uint32(i) + l)
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint32(2) * uint32(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint32(2) * uint32(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, l)
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*4)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, buflen, uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var size size_t = size_t(63)
+ // var res uintptr at bp, 4
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]uint8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint32(unsafe.Sizeof(uintptr(0))) - uint32(1))
+
+ need = uint32(4) * uint32(unsafe.Sizeof(uintptr(0)))
+ need = need + uint32(cnt+1)*(uint32(unsafe.Sizeof(uintptr(0)))+uint32((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + size_t(1))
+ need = need + (Xstrlen(tls, bp+1344) + size_t(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint32(3) * uint32(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint32(cnt+1) * uint32(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)), bp+uintptr(i)*28+8, uint32((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + size_t(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4))) + size_t(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*4)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */
+ return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err)
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint32
+ mem_end uint32
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]uint8 }
+ ifr_ifru struct {
+ _ [0]uint32
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]uint8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]uint8
+ alg [1025]uint8
+ _ [2]byte
+ data uintptr
+ len int32
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint32
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]uint8
+ pfcode uint32
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _u struct {
+ _ [0]uint32
+ pad [52]uint8
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint32(3) * uint32(unsafe.Sizeof(int32(0))))
+ *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.')
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]uint8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]uint8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint32(4))
+ Xmemcpy(tls, bp, ts+90, uint32(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]uint8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n')
+ *(*uint8)(unsafe.Pointer(p)) = uint8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint32(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint32(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint32(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+ if (int32(z)-int32(p))/1 < 256 {
+ Xmemcpy(tls, buf, p, uint32((int32(z)-int32(p))/1+1))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]uint8 at bp, 78
+
+ // var buf [256]uint8 at bp+78, 256
+
+ // var num [13]uint8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if sl < socklen_t(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if sl < socklen_t(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint32(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]uint8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= nodelen {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= servlen {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(20)
+ defer tls.Free(20)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint32)(unsafe.Pointer(bp /* a */)) = [4]uint32{0: uint32(0)}
+ // var z uintptr at bp+16, 4
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) = Xstrtoul(tls, s, bp+16, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 16)) == s || *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 16)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint32)(unsafe.Pointer(bp + 1*4)) = *(*uint32)(unsafe.Pointer(bp)) & uint32(0xffffff)
+ AssignShrPtrUint32(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint32)(unsafe.Pointer(bp + 2*4)) = *(*uint32)(unsafe.Pointer(bp + 1*4)) & uint32(0xffff)
+ AssignShrPtrUint32(bp+1*4, int(16))
+ fallthrough
+ case 2:
+ *(*uint32)(unsafe.Pointer(bp + 3*4)) = *(*uint32)(unsafe.Pointer(bp + 2*4)) & uint32(0xff)
+ AssignShrPtrUint32(bp+2*4, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) > uint32(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]uint8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, l, ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint32(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]uint8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]uint8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrUint8(bp+176+uintptr(best+1), uint8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint32(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < l {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*uint8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint32(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(88)
+ defer tls.Free(88)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint32(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]uint8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+84, 4
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int32(p)-int32(name))/1 < 64 {
+ Xmemcpy(tls, bp+4, name, uint32((int32(p)-int32(name))/1))
+ *(*uint8)(unsafe.Pointer(bp + 4 + uintptr((int32(p)-int32(name))/1))) = uint8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint32(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+84, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 84 /* z */)) = p - uintptr(1)
+ }
+ if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint32(255))-size_t(1) >= size_t(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]uint8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]uint8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n')
+ *(*uint8)(unsafe.Pointer(p)) = uint8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint32((int32(z)-int32(p))/1+1))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint32(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*uint8)(unsafe.Pointer(canon)) = uint8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint32(255))
+ if l-size_t(1) >= size_t(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+size_t(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint32(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint32(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint32(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint32(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint32(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint32(cnt), uint32(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var line [128]uint8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint32 = uint32(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*uint8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint32(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */
+ var owner int32 = (*FILE)(unsafe.Pointer(f)).lock
+ var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid
+ if owner&CplInt32(0x40000000) == tid {
+ return 0
+ }
+ owner = a_cas(tls, f+76, 0, tid)
+ if !(owner != 0) {
+ return 1
+ }
+ for AssignInt32(&owner, a_cas(tls, f+76, 0, tid|0x40000000)) != 0 {
+ if owner&0x40000000 != 0 || a_cas(tls, f+76, owner, owner|0x40000000) == owner {
+ __futexwait(tls, f+76, owner|0x40000000, 1)
+ }
+ }
+ return 1
+}
+
+func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */
+ if a_swap(tls, f+76, 0)&0x40000000 != 0 {
+ __wake(tls, f+76, 1, 1)
+ }
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 72)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint32(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+28, AssignPtrUintptr(f+16, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+8, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint32(1)) == size_t(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */
+ var ret int32
+ var ap va_list
+ _ = ap
+ ap = va
+ ret = Xvsscanf(tls, s, fmt, ap)
+ _ = ap
+ return ret
+}
+
+type wctrans_t = uintptr /* wctype.h:20:19 */
+
+func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */
+ if !(dest != 0) {
+ return
+ }
+ switch size {
+ case -2:
+ *(*uint8)(unsafe.Pointer(dest)) = uint8(i)
+ break
+ case -1:
+ *(*int16)(unsafe.Pointer(dest)) = int16(i)
+ break
+ case 0:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 1:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 3:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ }
+}
+
+func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */
+ var p uintptr
+ var i uint32
+ var ap2 va_list
+ _ = ap2
+ ap2 = ap
+ for i = n; i > uint32(1); i-- {
+ VaUintptr(&ap2)
+ }
+ p = VaUintptr(&ap2)
+ _ = ap2
+ return p
+}
+
+func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var width int32
+ var size int32
+ var alloc int32
+ var base int32
+ var p uintptr
+ var c int32
+ var t int32
+ var s uintptr
+ var wcs uintptr
+ // var st mbstate_t at bp+268, 8
+
+ var dest uintptr
+ var invert int32
+ var matches int32
+ var x uint64
+ var y float64
+ var pos off_t
+ // var scanset [257]uint8 at bp, 257
+
+ var i size_t
+ var k size_t
+ // var wc wchar_t at bp+260, 4
+
+ var __need_unlock int32
+ var tmp uintptr
+ var tmp1 uintptr
+ alloc = 0
+ dest = uintptr(0)
+ matches = 0
+ pos = int64(0)
+ __need_unlock = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).lock >= 0 {
+ return X__lockfile(tls, f)
+ }
+ return 0
+ }()
+
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __1
+ }
+ X__toread(tls, f)
+__1:
+ ;
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __2
+ }
+ goto input_fail
+__2:
+ ;
+
+ p = fmt
+__3:
+ if !(*(*uint8)(unsafe.Pointer(p)) != 0) {
+ goto __5
+ }
+
+ alloc = 0
+
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) {
+ goto __6
+ }
+__7:
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) {
+ goto __8
+ }
+ p++
+ goto __7
+__8:
+ ;
+ X__shlim(tls, f, int64(0))
+__9:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __10
+ }
+ goto __9
+__10:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+ goto __4
+__6:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != '%' || int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%') {
+ goto __11
+ }
+ X__shlim(tls, f, int64(0))
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') {
+ goto __12
+ }
+ p++
+__14:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __15
+ }
+ goto __14
+__15:
+ ;
+ goto __13
+__12:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__13:
+ ;
+ if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __16
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(c < 0) {
+ goto __17
+ }
+ goto input_fail
+__17:
+ ;
+ goto match_fail
+__16:
+ ;
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+ goto __4
+__11:
+ ;
+
+ p++
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') {
+ goto __18
+ }
+ dest = uintptr(0)
+ p++
+ goto __19
+__18:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$') {
+ goto __20
+ }
+ dest = arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-'0'))
+ p += uintptr(2)
+ goto __21
+__20:
+ dest = VaUintptr(&ap)
+__21:
+ ;
+__19:
+ ;
+
+ width = 0
+__22:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0) {
+ goto __24
+ }
+ width = 10*width + int32(*(*uint8)(unsafe.Pointer(p))) - '0'
+ goto __23
+__23:
+ p++
+ goto __22
+ goto __24
+__24:
+ ;
+
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') {
+ goto __25
+ }
+ wcs = uintptr(0)
+ s = uintptr(0)
+ alloc = BoolInt32(!!(dest != 0))
+ p++
+ goto __26
+__25:
+ alloc = 0
+__26:
+ ;
+
+ size = 0
+ switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) {
+ case 'h':
+ goto __28
+ case 'l':
+ goto __29
+ case 'j':
+ goto __30
+ case 'z':
+ goto __31
+ case 't':
+ goto __32
+ case 'L':
+ goto __33
+ case 'd':
+ goto __34
+ case 'i':
+ goto __35
+ case 'o':
+ goto __36
+ case 'u':
+ goto __37
+ case 'x':
+ goto __38
+ case 'a':
+ goto __39
+ case 'e':
+ goto __40
+ case 'f':
+ goto __41
+ case 'g':
+ goto __42
+ case 'A':
+ goto __43
+ case 'E':
+ goto __44
+ case 'F':
+ goto __45
+ case 'G':
+ goto __46
+ case 'X':
+ goto __47
+ case 's':
+ goto __48
+ case 'c':
+ goto __49
+ case '[':
+ goto __50
+ case 'S':
+ goto __51
+ case 'C':
+ goto __52
+ case 'p':
+ goto __53
+ case 'n':
+ goto __54
+ default:
+ goto __55
+ }
+ goto __27
+__28:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') {
+ goto __56
+ }
+ p++
+ size = -2
+ goto __57
+__56:
+ size = -1
+__57:
+ ;
+ goto __27
+__29:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') {
+ goto __58
+ }
+ p++
+ size = 3
+ goto __59
+__58:
+ size = 1
+__59:
+ ;
+ goto __27
+__30:
+ size = 3
+ goto __27
+__31:
+__32:
+ size = 1
+ goto __27
+__33:
+ size = 2
+ goto __27
+__34:
+__35:
+__36:
+__37:
+__38:
+__39:
+__40:
+__41:
+__42:
+__43:
+__44:
+__45:
+__46:
+__47:
+__48:
+__49:
+__50:
+__51:
+__52:
+__53:
+__54:
+ p--
+ goto __27
+__55:
+ goto fmt_fail
+__27:
+ ;
+
+ t = int32(*(*uint8)(unsafe.Pointer(p)))
+
+ // C or S
+ if !(t&0x2f == 3) {
+ goto __60
+ }
+ t = t | 32
+ size = 1
+__60:
+ ;
+
+ switch t {
+ case 'c':
+ goto __62
+ case '[':
+ goto __63
+ case 'n':
+ goto __64
+ default:
+ goto __65
+ }
+ goto __61
+__62:
+ if !(width < 1) {
+ goto __66
+ }
+ width = 1
+__66:
+ ;
+__63:
+ goto __61
+__64:
+ store_int(tls, dest, size, uint64(pos))
+ // do not increment match count, etc!
+ goto __4
+__65:
+ X__shlim(tls, f, int64(0))
+__67:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __68
+ }
+ goto __67
+__68:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+__61:
+ ;
+
+ X__shlim(tls, f, int64(width))
+ if !(func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() < 0) {
+ goto __69
+ }
+ goto input_fail
+__69:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+
+ switch t {
+ case 's':
+ goto __71
+ case 'c':
+ goto __72
+ case '[':
+ goto __73
+ case 'p':
+ goto __74
+ case 'X':
+ goto __75
+ case 'x':
+ goto __76
+ case 'o':
+ goto __77
+ case 'd':
+ goto __78
+ case 'u':
+ goto __79
+ case 'i':
+ goto __80
+ case 'a':
+ goto __81
+ case 'A':
+ goto __82
+ case 'e':
+ goto __83
+ case 'E':
+ goto __84
+ case 'f':
+ goto __85
+ case 'F':
+ goto __86
+ case 'g':
+ goto __87
+ case 'G':
+ goto __88
+ }
+ goto __70
+__71:
+__72:
+__73:
+ if !(t == 'c' || t == 's') {
+ goto __89
+ }
+ Xmemset(tls, bp, -1, uint32(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(t == 's') {
+ goto __91
+ }
+ *(*uint8)(unsafe.Pointer(bp + 10)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 11)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 12)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 13)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 14)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 33)) = uint8(0)
+__91:
+ ;
+ goto __90
+__89:
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') {
+ goto __92
+ }
+ p++
+ invert = 1
+ goto __93
+__92:
+ invert = 0
+__93:
+ ;
+ Xmemset(tls, bp, invert, uint32(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') {
+ goto __94
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 46)) = uint8(1 - invert)
+ goto __95
+__94:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') {
+ goto __96
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 94)) = uint8(1 - invert)
+__96:
+ ;
+__95:
+ ;
+__97:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') {
+ goto __99
+ }
+ if !!(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ goto __100
+ }
+ goto fmt_fail
+__100:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-' && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']') {
+ goto __101
+ }
+ c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1))))
+__102:
+ if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __104
+ }
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+c))) = uint8(1 - invert)
+ goto __103
+__103:
+ c++
+ goto __102
+ goto __104
+__104:
+ ;
+__101:
+ ;
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+int32(*(*uint8)(unsafe.Pointer(p)))))) = uint8(1 - invert)
+ goto __98
+__98:
+ p++
+ goto __97
+ goto __99
+__99:
+ ;
+__90:
+ ;
+ wcs = uintptr(0)
+ s = uintptr(0)
+ i = size_t(0)
+ if t == 'c' {
+ k = uint32(width) + 1
+ } else {
+ k = uint32(31)
+ }
+ if !(size == 1) {
+ goto __105
+ }
+ if !(alloc != 0) {
+ goto __107
+ }
+ wcs = Xmalloc(tls, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(wcs != 0) {
+ goto __109
+ }
+ goto alloc_fail
+__109:
+ ;
+ goto __108
+__107:
+ wcs = dest
+__108:
+ ;
+ *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{}
+__110:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __111
+ }
+ switch Xmbrtowc(tls, bp+260, func() uintptr { *(*uint8)(unsafe.Pointer(bp + 264)) = uint8(c); return bp + 264 }(), uint32(1), bp+268 /* &st */) {
+ case Uint32FromInt32(-1):
+ goto __113
+ case Uint32FromInt32(-2):
+ goto __114
+ }
+ goto __112
+__113:
+ goto input_fail
+__114:
+ goto __110
+__112:
+ ;
+ if !(wcs != 0) {
+ goto __115
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint32(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */))
+__115:
+ ;
+ if !(alloc != 0 && i == k) {
+ goto __116
+ }
+ k = k + (k + size_t(1))
+ tmp = Xrealloc(tls, wcs, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(tmp != 0) {
+ goto __117
+ }
+ goto alloc_fail
+__117:
+ ;
+ wcs = tmp
+__116:
+ ;
+ goto __110
+__111:
+ ;
+ if !!(Xmbsinit(tls, bp+268) != 0) {
+ goto __118
+ }
+ goto input_fail
+__118:
+ ;
+ goto __106
+__105:
+ if !(alloc != 0) {
+ goto __119
+ }
+ s = Xmalloc(tls, k)
+ if !!(s != 0) {
+ goto __121
+ }
+ goto alloc_fail
+__121:
+ ;
+__122:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __123
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint32(&i, 1)))) = uint8(c)
+ if !(i == k) {
+ goto __124
+ }
+ k = k + (k + size_t(1))
+ tmp1 = Xrealloc(tls, s, k)
+ if !!(tmp1 != 0) {
+ goto __125
+ }
+ goto alloc_fail
+__125:
+ ;
+ s = tmp1
+__124:
+ ;
+ goto __122
+__123:
+ ;
+ goto __120
+__119:
+ if !(AssignUintptr(&s, dest) != 0) {
+ goto __126
+ }
+__128:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __129
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint32(&i, 1)))) = uint8(c)
+ goto __128
+__129:
+ ;
+ goto __127
+__126:
+__130:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __131
+ }
+ goto __130
+__131:
+ ;
+__127:
+ ;
+__120:
+ ;
+__106:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != 0) {
+ goto __132
+ }
+ goto match_fail
+__132:
+ ;
+ if !(t == 'c' && (*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != off_t(width)) {
+ goto __133
+ }
+ goto match_fail
+__133:
+ ;
+ if !(alloc != 0) {
+ goto __134
+ }
+ if !(size == 1) {
+ goto __135
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = wcs
+ goto __136
+__135:
+ *(*uintptr)(unsafe.Pointer(dest)) = s
+__136:
+ ;
+__134:
+ ;
+ if !(t != 'c') {
+ goto __137
+ }
+ if !(wcs != 0) {
+ goto __138
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = wchar_t(0)
+__138:
+ ;
+ if !(s != 0) {
+ goto __139
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0)
+__139:
+ ;
+__137:
+ ;
+ goto __70
+__74:
+__75:
+__76:
+ base = 16
+ goto int_common
+__77:
+ base = 8
+ goto int_common
+__78:
+__79:
+ base = 10
+ goto int_common
+__80:
+ base = 0
+int_common:
+ x = X__intscan(tls, f, uint32(base), 0, 2*uint64(0x7fffffffffffffff)+uint64(1))
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != 0) {
+ goto __140
+ }
+ goto match_fail
+__140:
+ ;
+ if !(t == 'p' && dest != 0) {
+ goto __141
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x))
+ goto __142
+__141:
+ store_int(tls, dest, size, x)
+__142:
+ ;
+ goto __70
+__81:
+__82:
+__83:
+__84:
+__85:
+__86:
+__87:
+__88:
+ y = X__floatscan(tls, f, size, 0)
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) != 0) {
+ goto __143
+ }
+ goto match_fail
+__143:
+ ;
+ if !(dest != 0) {
+ goto __144
+ }
+ switch size {
+ case 0:
+ goto __146
+ case 1:
+ goto __147
+ case 2:
+ goto __148
+ }
+ goto __145
+__146:
+ *(*float32)(unsafe.Pointer(dest)) = float32(y)
+ goto __145
+__147:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__148:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__145:
+ ;
+__144:
+ ;
+ goto __70
+__70:
+ ;
+
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1))
+ if !(dest != 0) {
+ goto __149
+ }
+ matches++
+__149:
+ ;
+ goto __4
+__4:
+ p++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(0 != 0) {
+ goto __150
+ }
+fmt_fail:
+alloc_fail:
+input_fail:
+ if !!(matches != 0) {
+ goto __151
+ }
+ matches--
+__151:
+ ;
+match_fail:
+ if !(alloc != 0) {
+ goto __152
+ }
+ Xfree(tls, s)
+ Xfree(tls, wcs)
+__152:
+ ;
+__150:
+ ;
+__153:
+ if !(__need_unlock != 0) {
+ goto __156
+ }
+ X__unlockfile(tls, f)
+__156:
+ ;
+ goto __154
+__154:
+ if 0 != 0 {
+ goto __153
+ }
+ goto __155
+__155:
+ ;
+ return matches
+}
+
+func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */
+ var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie
+ var k size_t = len + size_t(256)
+ var end uintptr = Xmemchr(tls, src, 0, k)
+ if end != 0 {
+ k = size_t((int32(end) - int32(src)) / 1)
+ }
+ if k < len {
+ len = k
+ }
+ Xmemcpy(tls, buf, src, len)
+ (*FILE)(unsafe.Pointer(f)).rpos = src + uintptr(len)
+ (*FILE)(unsafe.Pointer(f)).rend = src + uintptr(k)
+ (*FILE)(unsafe.Pointer(f)).cookie = src + uintptr(k)
+ return len
+}
+
+func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ }{string_read})), buf: s, lock: -1, cookie: s}
+ return Xvfscanf(tls, bp, fmt, ap)
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ // var f FILE at bp, 144
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(144)
+ defer tls.Free(144)
+
+ // var f FILE at bp, 144
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1))
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint32 { /* strtol.c:31:15: */
+ return uint32(strtox1(tls, s, p, base, uint64(2*uint32(0x7fffffff)+uint32(1))))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int32 { /* strtol.c:36:6: */
+ return int32(strtox1(tls, s, p, base, uint64(0+Uint32FromInt32(Int32(-Int32(0x7fffffff))-Int32FromInt32(1)))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return Xstrtoll(tls, s, p, base)
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return Xstrtoull(tls, s, p, base)
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+size_t(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+size_t(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint32(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint32(unsafe.Sizeof(size_t(0)))-uint32(1)) == uintptr_t(d)&(uint32(unsafe.Sizeof(size_t(0)))-uint32(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint32(unsafe.Sizeof(size_t(0)))-uint32(1)) != 0 && n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint32)(unsafe.Pointer(ws))-Uint32(Uint32FromInt32(-1))/size_t(255)) & ^*(*uint32)(unsafe.Pointer(ws)) & (Uint32(Uint32FromInt32(-1))/size_t(255)*size_t(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint32)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 4
+ wd += 4
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*uint8)(unsafe.Pointer(d)) = uint8(0)
+finish:
+ return size_t((int32(d)-int32(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint32(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = uint8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint32((int32(p) - int32(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[8]size_t)(unsafe.Pointer(bp /* byteset */)) = [8]size_t{0: size_t(0)}
+
+ if !(int32(*(*uint8)(unsafe.Pointer(c))) != 0) {
+ return size_t(0)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*uint8)(unsafe.Pointer(s))) == int32(*(*uint8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int32(s) - int32(a)) / 1)
+ }
+
+ for ; *(*uint8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint32(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4, size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*uint8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4))&(size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int32(s) - int32(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*uint8)(unsafe.Pointer(_sp)) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = uint8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer(a + 3*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer(a + 3*4))
+ return 0
+}
+
+//
+// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_guardsize;
+// return 0;
+// }
+//
+// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit)
+// {
+// *inherit = a->_a_sched;
+// return 0;
+// }
+//
+// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param)
+// {
+// param->sched_priority = a->_a_prio;
+// return 0;
+// }
+//
+// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy)
+// {
+// *policy = a->_a_policy;
+// return 0;
+// }
+//
+// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope)
+// {
+// *scope = PTHREAD_SCOPE_SYSTEM;
+// return 0;
+// }
+//
+// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size)
+// {
+// if (!a->_a_stackaddr)
+// return EINVAL;
+// *size = a->_a_stacksize;
+// *addr = (void *)(a->_a_stackaddr - *size);
+// return 0;
+// }
+//
+// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_stacksize;
+// return 0;
+// }
+//
+// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = !!a->__attr;
+// return 0;
+// }
+//
+// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
+// {
+// *clk = a->__attr & 0x7fffffff;
+// return 0;
+// }
+//
+// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr>>31;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol)
+// {
+// *protocol = PTHREAD_PRIO_NONE;
+// return 0;
+// }
+// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr / 128U % 2;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
+// {
+// *robust = a->__attr / 4U % 2;
+// return 0;
+// }
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))
+}
+
+// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
+// {
+// *type = a->__attr & 3;
+// return 0;
+// }
+//
+// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr[0];
+// return 0;
+// }
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer(a + 3*4)) = state
+ return 0
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return *(*int32)(unsafe.Pointer(m)) & 15
+}
+
+// int __pthread_mutex_lock(pthread_mutex_t *m)
+// {
+// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
+// && !a_cas(&m->_m_lock, 0, EBUSY))
+// return 0;
+//
+// return __pthread_mutex_timedlock(m, 0);
+// }
+//
+// weak_alias(__pthread_mutex_lock, pthread_mutex_lock);
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr&Uint32FromInt32(CplInt32(3)) | uint32(type1)
+ return 0
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptable)) + 0)) = uintptr(unsafe.Pointer(&table)) + uintptr(128)*2 // __ctype_b_loc.c:36:45:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_linux_arm64.go b/vendor/modernc.org/libc/musl_linux_arm64.go
new file mode 100644
index 00000000..3e1bf4ad
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_linux_arm64.go
@@ -0,0 +1,7008 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = uint32 /* <builtin>:15:24 */
+
+type uint16_t = uint16 /* alltypes.h:134:25 */
+
+type uint32_t = uint32 /* alltypes.h:139:25 */
+
+type uint64_t = uint64 /* alltypes.h:144:25 */
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+var table = [384]uint16{
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x320/256 | 0x320*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16((0x160/256 | 0x160*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536),
+ uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536),
+ uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536),
+ uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536),
+ uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+} /* __ctype_b_loc.c:9:29 */
+
+var ptable uintptr = 0 /* __ctype_b_loc.c:36:29 */
+
+func X__ctype_b_loc(tls *TLS) uintptr { /* __ctype_b_loc.c:38:22: */
+ return uintptr(unsafe.Pointer(&ptable))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:351:9 */
+
+type locale_t = uintptr /* alltypes.h:351:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */
+ return Bool32(uint32(c)-uint32('A') < uint32(26))
+}
+
+func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */
+ return Xisupper(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type off_t = int64 /* alltypes.h:170:16 */
+
+type ino_t = uint64 /* alltypes.h:175:25 */
+
+type dirent = struct {
+ d_ino ino_t
+ d_off off_t
+ d_reclen uint16
+ d_type uint8
+ d_name [256]uint8
+ _ [5]byte
+} /* dirent.h:5:1 */
+
+type __dirstream = struct {
+ tell off_t
+ fd int32
+ buf_pos int32
+ buf_end int32
+ lock [1]int32
+ buf [2048]uint8
+} /* dirent.h:20:9 */
+
+type DIR = __dirstream /* dirent.h:20:28 */
+
+type ssize_t = int64 /* alltypes.h:73:15 */
+
+type intptr_t = int64 /* alltypes.h:78:15 */
+
+type pid_t = int32 /* alltypes.h:243:13 */
+
+type uid_t = uint32 /* alltypes.h:253:18 */
+
+type gid_t = uint32 /* alltypes.h:258:18 */
+
+type useconds_t = uint32 /* alltypes.h:268:18 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+func Xclosedir(tls *TLS, dir uintptr) int32 { /* closedir.c:6:5: */
+ var ret int32 = Xclose(tls, (*DIR)(unsafe.Pointer(dir)).fd)
+ Xfree(tls, dir)
+ return ret
+}
+
+type mode_t = uint32 /* alltypes.h:160:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:363:1 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+type file_handle = struct {
+ _ [0]uint32
+ handle_bytes uint32
+ handle_type int32
+} /* fcntl.h:167:1 */
+
+type f_owner_ex = struct {
+ __type int32
+ pid pid_t
+} /* fcntl.h:172:1 */
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func Xopendir(tls *TLS, name uintptr) uintptr { /* opendir.c:8:5: */
+ var fd int32
+ var dir uintptr
+
+ if AssignInt32(&fd, Xopen(tls, name, 00|040000|02000000, 0)) < 0 {
+ return uintptr(0)
+ }
+ if !(int32(AssignUintptr(&dir, Xcalloc(tls, uint64(1), uint64(unsafe.Sizeof(DIR{}))))) != 0) {
+ X__syscall1(tls, int64(57), int64(fd))
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).fd = fd
+ return dir
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:49:54 */
+
+type dirstream_buf_alignment_check = [1]uint8 /* readdir.c:7:14 */
+
+func Xreaddir(tls *TLS, dir uintptr) uintptr { /* readdir.c:10:15: */
+ var de uintptr
+
+ if (*DIR)(unsafe.Pointer(dir)).buf_pos >= (*DIR)(unsafe.Pointer(dir)).buf_end {
+ var len int32 = int32(X__syscall3(tls, int64(61), int64((*DIR)(unsafe.Pointer(dir)).fd), int64(dir+24), int64(unsafe.Sizeof([2048]uint8{}))))
+ if len <= 0 {
+ if len < 0 && len != -2 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = -len
+ }
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).buf_end = len
+ (*DIR)(unsafe.Pointer(dir)).buf_pos = 0
+ }
+ de = dir + 24 + uintptr((*DIR)(unsafe.Pointer(dir)).buf_pos)
+ *(*int32)(unsafe.Pointer(dir + 12)) += int32((*dirent)(unsafe.Pointer(de)).d_reclen)
+ (*DIR)(unsafe.Pointer(dir)).tell = (*dirent)(unsafe.Pointer(de)).d_off
+ return de
+}
+
+type uintptr_t = uint64 /* alltypes.h:63:24 */
+
+type int8_t = int8 /* alltypes.h:104:25 */
+
+type int16_t = int16 /* alltypes.h:109:25 */
+
+type int32_t = int32 /* alltypes.h:114:25 */
+
+type int64_t = int64 /* alltypes.h:119:25 */
+
+type intmax_t = int64 /* alltypes.h:124:25 */
+
+type uint8_t = uint8 /* alltypes.h:129:25 */
+
+type uintmax_t = uint64 /* alltypes.h:154:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:328:9 */
+
+type FILE = _IO_FILE /* alltypes.h:328:25 */
+
+type va_list = uintptr /* alltypes.h:334:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]uint8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:38:15 */
+
+type double_t = float64 /* alltypes.h:43:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [5]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int64
+ pending uintptr
+ }
+ timer_id int32
+ _ [4]byte
+ locale locale_t
+ killlock [1]int32
+ _ [4]byte
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ dtv_copy uintptr
+} /* alltypes.h:281:9 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table1 = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table1)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*uint8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits uint8
+ frac_digits uint8
+ p_cs_precedes uint8
+ p_sep_by_space uint8
+ n_cs_precedes uint8
+ n_sep_by_space uint8
+ p_sign_posn uint8
+ n_sign_posn uint8
+ int_p_cs_precedes uint8
+ int_p_sep_by_space uint8
+ int_n_cs_precedes uint8
+ int_n_sep_by_space uint8
+ int_p_sign_posn uint8
+ int_n_sign_posn uint8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: uint8(255), frac_digits: uint8(255), p_cs_precedes: uint8(255), p_sep_by_space: uint8(255), n_cs_precedes: uint8(255), n_sep_by_space: uint8(255), p_sign_posn: uint8(255), n_sign_posn: uint8(255), int_p_cs_precedes: uint8(255), int_p_sep_by_space: uint8(255), int_n_cs_precedes: uint8(255), int_n_sep_by_space: uint8(255), int_p_sign_posn: uint8(255), int_n_sign_posn: uint8(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]uint8
+ next uintptr
+} /* alltypes.h:351:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads uint8
+ threaded uint8
+ secure uint8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int64 /* alltypes.h:93:16 */
+
+type clockid_t = int32 /* alltypes.h:222:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:237:1 */
+
+type pthread_t = uintptr /* alltypes.h:281:26 */
+
+type pthread_once_t = int32 /* alltypes.h:287:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:292:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:297:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:302:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:307:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:312:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:317:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:357:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:357:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:380:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:385:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:395:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:405:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:410:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:217:14 */
+
+type clock_t = int64 /* alltypes.h:227:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+ }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [32]uint8
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:281:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ _ [4]byte
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = uint64 /* signal.h:10:23 */
+type gregset_t = [34]uint64 /* signal.h:11:23 */
+
+type fpregset_t = struct {
+ vregs [32]float64
+ fpsr uint32
+ fpcr uint32
+} /* signal.h:17:3 */
+type sigcontext = struct {
+ fault_address uint64
+ regs [31]uint64
+ sp uint64
+ pc uint64
+ pstate uint64
+ __reserved [256]float64
+} /* signal.h:18:9 */
+
+type mcontext_t = sigcontext /* signal.h:23:3 */
+
+type _aarch64_ctx = struct {
+ magic uint32
+ size uint32
+} /* signal.h:29:1 */
+
+type fpsimd_context = struct {
+ head struct {
+ magic uint32
+ size uint32
+ }
+ fpsr uint32
+ fpcr uint32
+ vregs [32]float64
+} /* signal.h:33:1 */
+
+type esr_context = struct {
+ head struct {
+ magic uint32
+ size uint32
+ }
+ esr uint64
+} /* signal.h:39:1 */
+
+type extra_context = struct {
+ head struct {
+ magic uint32
+ size uint32
+ }
+ datap uint64
+ size uint32
+ __reserved [3]uint32
+} /* signal.h:43:1 */
+
+type sve_context = struct {
+ head struct {
+ magic uint32
+ size uint32
+ }
+ vl uint16
+ __reserved [3]uint16
+} /* signal.h:49:1 */
+
+type __ucontext = struct {
+ uc_flags uint64
+ uc_link uintptr
+ uc_stack stack_t
+ uc_sigmask sigset_t
+ uc_mcontext mcontext_t
+} /* signal.h:99:9 */
+
+type ucontext_t = __ucontext /* signal.h:105:3 */
+
+type sigval = struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+} /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ _ [4]byte
+ __si_fields struct {
+ _ [0]uint64
+ __pad [112]uint8
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ _ [4]byte
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+func a_ll(tls *TLS, p uintptr) int32 { /* atomic_arch.h:2:19: */
+ var v int32
+ panic(`arch/aarch64/atomic_arch.h:5:2: assembler statements not supported`)
+ return v
+}
+
+func a_sc(tls *TLS, p uintptr, v int32) int32 { /* atomic_arch.h:10:19: */
+ var r int32
+ panic(`arch/aarch64/atomic_arch.h:13:2: assembler statements not supported`)
+ return BoolInt32(!(r != 0))
+}
+
+func a_barrier(tls *TLS) { /* atomic_arch.h:18:20: */
+ panic(`arch/aarch64/atomic_arch.h:20:2: assembler statements not supported`)
+}
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:24:19: */
+ var old int32
+ for ok := true; ok; ok = !(a_sc(tls, p, s) != 0) {
+ old = a_ll(tls, p)
+ if old != t {
+ a_barrier(tls)
+ break
+ }
+ }
+ return old
+}
+
+func a_ll_p(tls *TLS, p uintptr) uintptr { /* atomic_arch.h:38:20: */
+ var v uintptr
+ panic(`arch/aarch64/atomic_arch.h:41:2: assembler statements not supported`)
+ return v
+}
+
+func a_sc_p(tls *TLS, p uintptr, v uintptr) int32 { /* atomic_arch.h:46:19: */
+ var r int32
+ panic(`arch/aarch64/atomic_arch.h:49:2: assembler statements not supported`)
+ return BoolInt32(!(r != 0))
+}
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:68:19: */
+ panic(`arch/aarch64/atomic_arch.h:70:2: assembler statements not supported`)
+ return int32(x)
+}
+
+func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:33:19: */
+ var old int32
+
+ for ok := true; ok; ok = !(a_sc(tls, p, v) != 0) {
+ old = a_ll(tls, p)
+ }
+
+ return old
+}
+
+func a_fetch_add(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:46:19: */
+ var old int32
+
+ for ok := true; ok; ok = !(a_sc(tls, p, int32(uint32(old)+uint32(v))) != 0) {
+ old = a_ll(tls, p)
+ }
+
+ return old
+}
+
+func a_fetch_and(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:59:19: */
+ var old int32
+
+ for ok := true; ok; ok = !(a_sc(tls, p, old&v) != 0) {
+ old = a_ll(tls, p)
+ }
+
+ return old
+}
+
+func a_fetch_or(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:72:19: */
+ var old int32
+
+ for ok := true; ok; ok = !(a_sc(tls, p, old|v) != 0) {
+ old = a_ll(tls, p)
+ }
+
+ return old
+}
+
+func a_and(tls *TLS, p uintptr, v int32) { /* atomic.h:151:20: */
+ a_fetch_and(tls, p, v)
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic.h:159:20: */
+ a_fetch_or(tls, p, v)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ v uint64_t })(unsafe.Pointer(bp)) = func() (r struct{ v uint64_t }) {
+ *(*uint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = v
+ return r
+ }()
+ if *(*uint32_t)(unsafe.Pointer(bp)) != 0 {
+ a_or(tls, p, int32(*(*uint32_t)(unsafe.Pointer(bp))))
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + 1*4)) != 0 {
+ a_or(tls, p+uintptr(1)*4, int32(*(*uint32_t)(unsafe.Pointer(bp + 1*4))))
+ }
+}
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */
+ return int32(_sdebruijn328[x&-x*uint32_t(0x076be629)>>27])
+}
+
+var _sdebruijn328 = [32]uint8{
+ uint8(0), uint8(1), uint8(23), uint8(2), uint8(29), uint8(24), uint8(19), uint8(3), uint8(30), uint8(27), uint8(25), uint8(11), uint8(20), uint8(8), uint8(4), uint8(13),
+ uint8(31), uint8(22), uint8(28), uint8(18), uint8(26), uint8(10), uint8(7), uint8(12), uint8(21), uint8(17), uint8(9), uint8(6), uint8(16), uint8(5), uint8(15), uint8(14),
+} /* atomic.h:261:20 */
+
+type __timer = struct {
+ timerid int32
+ _ [4]byte
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */
+ var self uintptr
+ panic(`arch/aarch64/pthread_arch.h:4:2: assembler statements not supported`)
+ return self - uintptr(uint64(unsafe.Sizeof(__pthread{})))
+}
+
+func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ if cnt < 0 {
+ cnt = 0x7fffffff
+ }
+ _ = Bool32(X__syscall3(tls, int64(98), int64(addr), int64(1|priv), int64(cnt)) != int64(-38) || X__syscall3(tls, int64(98), int64(addr), int64(1), int64(cnt)) != 0)
+}
+
+func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ _ = Bool32(X__syscall4(tls, int64(98), int64(addr), int64(0|priv), int64(val), int64(0)) != int64(-38) || X__syscall4(tls, int64(98), int64(addr), int64(0), int64(val), int64(0)) != 0)
+}
+
+var X__fsmu8 = [51]uint32_t{
+ func() uint32 {
+ if 0x2 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2)
+ }(), func() uint32 {
+ if 0x3 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3)
+ }(), func() uint32 {
+ if 0x4 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4)
+ }(), func() uint32 {
+ if 0x5 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5)
+ }(), func() uint32 {
+ if 0x6 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6)
+ }(), func() uint32 {
+ if 0x7 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7)
+ }(),
+ func() uint32 {
+ if 0x8 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8)
+ }(), func() uint32 {
+ if 0x9 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9)
+ }(), func() uint32 {
+ if 0xa < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa)
+ }(), func() uint32 {
+ if 0xb < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb)
+ }(), func() uint32 {
+ if 0xc < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc)
+ }(), func() uint32 {
+ if 0xd < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd)
+ }(), func() uint32 {
+ if 0xe < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe)
+ }(), func() uint32 {
+ if 0xf < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf)
+ }(),
+ func() uint32 {
+ if 0x0+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x0+16)
+ }(), func() uint32 {
+ if 0x1+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x1+16)
+ }(), func() uint32 {
+ if 0x2+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2+16)
+ }(), func() uint32 {
+ if 0x3+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3+16)
+ }(), func() uint32 {
+ if 0x4+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4+16)
+ }(), func() uint32 {
+ if 0x5+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5+16)
+ }(), func() uint32 {
+ if 0x6+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6+16)
+ }(), func() uint32 {
+ if 0x7+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7+16)
+ }(),
+ func() uint32 {
+ if 0x8+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8+16)
+ }(), func() uint32 {
+ if 0x9+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9+16)
+ }(), func() uint32 {
+ if 0xa+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa+16)
+ }(), func() uint32 {
+ if 0xb+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb+16)
+ }(), func() uint32 {
+ if 0xc+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc+16)
+ }(), func() uint32 {
+ if 0xd+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd+16)
+ }(), func() uint32 {
+ if 0xe+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe+16)
+ }(), func() uint32 {
+ if 0xf+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf+16)
+ }(),
+ func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x0), func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x1), func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x2), func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x3), func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x4), func() uint32 {
+ if 0x5 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x5 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x5), func() uint32 {
+ if 0x6 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x6 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x6), func() uint32 {
+ if 0x7 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x7 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x7),
+ func() uint32 {
+ if 0x8 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x8 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x8), func() uint32 {
+ if 0x9 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x9 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x9), func() uint32 {
+ if 0xa == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xa == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xa), func() uint32 {
+ if 0xb == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xb == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xb), func() uint32 {
+ if 0xc == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xc == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xc), func() uint32 {
+ if 0xd == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xd == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xd), func() uint32 {
+ if 0xe == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xe == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xe), func() uint32 {
+ if 0xf == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xf == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xf),
+ func() uint32 {
+ if 0x0 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x0), func() uint32 {
+ if 0x1 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x1), func() uint32 {
+ if 0x2 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x2), func() uint32 {
+ if 0x3 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x3), func() uint32 {
+ if 0x4 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x4),
+} /* internal.c:18:16 */
+
+type wint_t = uint32 /* alltypes.h:21:18 */
+
+type wctype_t = uint64 /* alltypes.h:211:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:345:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:345:63 */
+
+func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var c uint32
+ var s uintptr
+ var N uint32
+ // var dummy wchar_t at bp, 4
+ s = src
+ N = uint32(n)
+
+ if !!(st != 0) {
+ goto __1
+ }
+ st = uintptr(unsafe.Pointer(&_sinternal_state))
+__1:
+ ;
+ c = *(*uint32)(unsafe.Pointer(st))
+
+ if !!(s != 0) {
+ goto __2
+ }
+ if !(c != 0) {
+ goto __4
+ }
+ goto ilseq
+__4:
+ ;
+ return uint64(0)
+ goto __3
+__2:
+ if !!(wc != 0) {
+ goto __5
+ }
+ wc = bp /* &dummy */
+__5:
+ ;
+__3:
+ ;
+
+ if !!(n != 0) {
+ goto __6
+ }
+ return Uint64FromInt32(-2)
+__6:
+ ;
+ if !!(c != 0) {
+ goto __7
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) {
+ goto __8
+ }
+ return BoolUint64(!!(int32(AssignPtrUint32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s))))) != 0))
+__8:
+ ;
+ if !(func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1) {
+ goto __9
+ }
+ *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(0xdfff & int32(int8(*(*uint8)(unsafe.Pointer(s)))))
+ return 1
+__9:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0xc2 > 0xf4-0xc2) {
+ goto __10
+ }
+ goto ilseq
+__10:
+ ;
+ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0xc2]
+ n--
+__7:
+ ;
+
+ if !(n != 0) {
+ goto __11
+ }
+ if !((int32(*(*uint8)(unsafe.Pointer(s)))>>3-0x10|(int32(*(*uint8)(unsafe.Pointer(s)))>>3+int32_t(c)>>26))&CplInt32(7) != 0) {
+ goto __12
+ }
+ goto ilseq
+__12:
+ ;
+loop:
+ c = c<<6 | uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0x80)
+ n--
+ if !!(c&(uint32(1)<<31) != 0) {
+ goto __13
+ }
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*wchar_t)(unsafe.Pointer(wc)) = c
+ return size_t(N) - n
+__13:
+ ;
+ if !(n != 0) {
+ goto __14
+ }
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0x80 >= uint32(0x40)) {
+ goto __15
+ }
+ goto ilseq
+__15:
+ ;
+ goto loop
+__14:
+ ;
+__11:
+ ;
+
+ *(*uint32)(unsafe.Pointer(st)) = c
+ return Uint64FromInt32(-2)
+ilseq:
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint64FromInt32(-1)
+}
+
+var _sinternal_state uint32 /* mbrtowc.c:8:18: */
+
+func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */
+ return Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0))
+}
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type socklen_t = uint32 /* alltypes.h:369:18 */
+
+type sa_family_t = uint16 /* alltypes.h:374:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]uint8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]uint8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint64(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint64(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) {
+ return 34
+ }
+ buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))
+ buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l))
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]uint8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */
+ return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err)
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]uint8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]uint8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]uint8
+ alg [1025]uint8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]uint8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]uint8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.')
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]uint8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]uint8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+90, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]uint8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n')
+ *(*uint8)(unsafe.Pointer(p)) = uint8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]uint8 at bp, 78
+
+ // var buf [256]uint8 at bp+78, 256
+
+ // var num [13]uint8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]uint8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= size_t(nodelen) {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= size_t(servlen) {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]uint8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]uint8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]uint8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrUint8(bp+176+uintptr(best+1), uint8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*uint8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]uint8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*uint8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = uint8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]uint8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]uint8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n')
+ *(*uint8)(unsafe.Pointer(p)) = uint8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*uint8)(unsafe.Pointer(canon)) = uint8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]uint8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*uint8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */
+ var owner int32 = (*FILE)(unsafe.Pointer(f)).lock
+ var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid
+ if owner&CplInt32(0x40000000) == tid {
+ return 0
+ }
+ owner = a_cas(tls, f+140, 0, tid)
+ if !(owner != 0) {
+ return 1
+ }
+ for AssignInt32(&owner, a_cas(tls, f+140, 0, tid|0x40000000)) != 0 {
+ if owner&0x40000000 != 0 || a_cas(tls, f+140, owner, owner|0x40000000) == owner {
+ __futexwait(tls, f+140, owner|0x40000000, 1)
+ }
+ }
+ return 1
+}
+
+func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */
+ if a_swap(tls, f+140, 0)&0x40000000 != 0 {
+ __wake(tls, f+140, 1, 1)
+ }
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */
+ var ret int32
+ var ap va_list
+ _ = ap
+ ap = va
+ ret = Xvsscanf(tls, s, fmt, ap)
+ _ = ap
+ return ret
+}
+
+type wctrans_t = uintptr /* wctype.h:20:19 */
+
+func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */
+ if !(dest != 0) {
+ return
+ }
+ switch size {
+ case -2:
+ *(*uint8)(unsafe.Pointer(dest)) = uint8(i)
+ break
+ case -1:
+ *(*int16)(unsafe.Pointer(dest)) = int16(i)
+ break
+ case 0:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 1:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ case 3:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ }
+}
+
+func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */
+ var p uintptr
+ var i uint32
+ var ap2 va_list
+ _ = ap2
+ ap2 = ap
+ for i = n; i > uint32(1); i-- {
+ VaUintptr(&ap2)
+ }
+ p = VaUintptr(&ap2)
+ _ = ap2
+ return p
+}
+
+func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var width int32
+ var size int32
+ var alloc int32
+ var base int32
+ var p uintptr
+ var c int32
+ var t int32
+ var s uintptr
+ var wcs uintptr
+ // var st mbstate_t at bp+268, 8
+
+ var dest uintptr
+ var invert int32
+ var matches int32
+ var x uint64
+ var y float64
+ var pos off_t
+ // var scanset [257]uint8 at bp, 257
+
+ var i size_t
+ var k size_t
+ // var wc wchar_t at bp+260, 4
+
+ var __need_unlock int32
+ var tmp uintptr
+ var tmp1 uintptr
+ alloc = 0
+ dest = uintptr(0)
+ matches = 0
+ pos = int64(0)
+ __need_unlock = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).lock >= 0 {
+ return X__lockfile(tls, f)
+ }
+ return 0
+ }()
+
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __1
+ }
+ X__toread(tls, f)
+__1:
+ ;
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __2
+ }
+ goto input_fail
+__2:
+ ;
+
+ p = fmt
+__3:
+ if !(*(*uint8)(unsafe.Pointer(p)) != 0) {
+ goto __5
+ }
+
+ alloc = 0
+
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) {
+ goto __6
+ }
+__7:
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) {
+ goto __8
+ }
+ p++
+ goto __7
+__8:
+ ;
+ X__shlim(tls, f, int64(0))
+__9:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __10
+ }
+ goto __9
+__10:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ goto __4
+__6:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != '%' || int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%') {
+ goto __11
+ }
+ X__shlim(tls, f, int64(0))
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') {
+ goto __12
+ }
+ p++
+__14:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __15
+ }
+ goto __14
+__15:
+ ;
+ goto __13
+__12:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__13:
+ ;
+ if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __16
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(c < 0) {
+ goto __17
+ }
+ goto input_fail
+__17:
+ ;
+ goto match_fail
+__16:
+ ;
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ goto __4
+__11:
+ ;
+
+ p++
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') {
+ goto __18
+ }
+ dest = uintptr(0)
+ p++
+ goto __19
+__18:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$') {
+ goto __20
+ }
+ dest = arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-'0'))
+ p += uintptr(2)
+ goto __21
+__20:
+ dest = VaUintptr(&ap)
+__21:
+ ;
+__19:
+ ;
+
+ width = 0
+__22:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0) {
+ goto __24
+ }
+ width = 10*width + int32(*(*uint8)(unsafe.Pointer(p))) - '0'
+ goto __23
+__23:
+ p++
+ goto __22
+ goto __24
+__24:
+ ;
+
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') {
+ goto __25
+ }
+ wcs = uintptr(0)
+ s = uintptr(0)
+ alloc = BoolInt32(!!(dest != 0))
+ p++
+ goto __26
+__25:
+ alloc = 0
+__26:
+ ;
+
+ size = 0
+ switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) {
+ case 'h':
+ goto __28
+ case 'l':
+ goto __29
+ case 'j':
+ goto __30
+ case 'z':
+ goto __31
+ case 't':
+ goto __32
+ case 'L':
+ goto __33
+ case 'd':
+ goto __34
+ case 'i':
+ goto __35
+ case 'o':
+ goto __36
+ case 'u':
+ goto __37
+ case 'x':
+ goto __38
+ case 'a':
+ goto __39
+ case 'e':
+ goto __40
+ case 'f':
+ goto __41
+ case 'g':
+ goto __42
+ case 'A':
+ goto __43
+ case 'E':
+ goto __44
+ case 'F':
+ goto __45
+ case 'G':
+ goto __46
+ case 'X':
+ goto __47
+ case 's':
+ goto __48
+ case 'c':
+ goto __49
+ case '[':
+ goto __50
+ case 'S':
+ goto __51
+ case 'C':
+ goto __52
+ case 'p':
+ goto __53
+ case 'n':
+ goto __54
+ default:
+ goto __55
+ }
+ goto __27
+__28:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') {
+ goto __56
+ }
+ p++
+ size = -2
+ goto __57
+__56:
+ size = -1
+__57:
+ ;
+ goto __27
+__29:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') {
+ goto __58
+ }
+ p++
+ size = 3
+ goto __59
+__58:
+ size = 1
+__59:
+ ;
+ goto __27
+__30:
+ size = 3
+ goto __27
+__31:
+__32:
+ size = 1
+ goto __27
+__33:
+ size = 2
+ goto __27
+__34:
+__35:
+__36:
+__37:
+__38:
+__39:
+__40:
+__41:
+__42:
+__43:
+__44:
+__45:
+__46:
+__47:
+__48:
+__49:
+__50:
+__51:
+__52:
+__53:
+__54:
+ p--
+ goto __27
+__55:
+ goto fmt_fail
+__27:
+ ;
+
+ t = int32(*(*uint8)(unsafe.Pointer(p)))
+
+ // C or S
+ if !(t&0x2f == 3) {
+ goto __60
+ }
+ t = t | 32
+ size = 1
+__60:
+ ;
+
+ switch t {
+ case 'c':
+ goto __62
+ case '[':
+ goto __63
+ case 'n':
+ goto __64
+ default:
+ goto __65
+ }
+ goto __61
+__62:
+ if !(width < 1) {
+ goto __66
+ }
+ width = 1
+__66:
+ ;
+__63:
+ goto __61
+__64:
+ store_int(tls, dest, size, uint64(pos))
+ // do not increment match count, etc!
+ goto __4
+__65:
+ X__shlim(tls, f, int64(0))
+__67:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __68
+ }
+ goto __67
+__68:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+__61:
+ ;
+
+ X__shlim(tls, f, int64(width))
+ if !(func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() < 0) {
+ goto __69
+ }
+ goto input_fail
+__69:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+
+ switch t {
+ case 's':
+ goto __71
+ case 'c':
+ goto __72
+ case '[':
+ goto __73
+ case 'p':
+ goto __74
+ case 'X':
+ goto __75
+ case 'x':
+ goto __76
+ case 'o':
+ goto __77
+ case 'd':
+ goto __78
+ case 'u':
+ goto __79
+ case 'i':
+ goto __80
+ case 'a':
+ goto __81
+ case 'A':
+ goto __82
+ case 'e':
+ goto __83
+ case 'E':
+ goto __84
+ case 'f':
+ goto __85
+ case 'F':
+ goto __86
+ case 'g':
+ goto __87
+ case 'G':
+ goto __88
+ }
+ goto __70
+__71:
+__72:
+__73:
+ if !(t == 'c' || t == 's') {
+ goto __89
+ }
+ Xmemset(tls, bp, -1, uint64(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(t == 's') {
+ goto __91
+ }
+ *(*uint8)(unsafe.Pointer(bp + 10)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 11)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 12)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 13)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 14)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 33)) = uint8(0)
+__91:
+ ;
+ goto __90
+__89:
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') {
+ goto __92
+ }
+ p++
+ invert = 1
+ goto __93
+__92:
+ invert = 0
+__93:
+ ;
+ Xmemset(tls, bp, invert, uint64(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') {
+ goto __94
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 46)) = uint8(1 - invert)
+ goto __95
+__94:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') {
+ goto __96
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 94)) = uint8(1 - invert)
+__96:
+ ;
+__95:
+ ;
+__97:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') {
+ goto __99
+ }
+ if !!(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ goto __100
+ }
+ goto fmt_fail
+__100:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-' && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']') {
+ goto __101
+ }
+ c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1))))
+__102:
+ if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __104
+ }
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+c))) = uint8(1 - invert)
+ goto __103
+__103:
+ c++
+ goto __102
+ goto __104
+__104:
+ ;
+__101:
+ ;
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+int32(*(*uint8)(unsafe.Pointer(p)))))) = uint8(1 - invert)
+ goto __98
+__98:
+ p++
+ goto __97
+ goto __99
+__99:
+ ;
+__90:
+ ;
+ wcs = uintptr(0)
+ s = uintptr(0)
+ i = uint64(0)
+ if t == 'c' {
+ k = uint64(uint32(width) + 1)
+ } else {
+ k = uint64(31)
+ }
+ if !(size == 1) {
+ goto __105
+ }
+ if !(alloc != 0) {
+ goto __107
+ }
+ wcs = Xmalloc(tls, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(wcs != 0) {
+ goto __109
+ }
+ goto alloc_fail
+__109:
+ ;
+ goto __108
+__107:
+ wcs = dest
+__108:
+ ;
+ *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{}
+__110:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __111
+ }
+ switch Xmbrtowc(tls, bp+260, func() uintptr { *(*uint8)(unsafe.Pointer(bp + 264)) = uint8(c); return bp + 264 }(), uint64(1), bp+268 /* &st */) {
+ case Uint64FromInt32(-1):
+ goto __113
+ case Uint64FromInt32(-2):
+ goto __114
+ }
+ goto __112
+__113:
+ goto input_fail
+__114:
+ goto __110
+__112:
+ ;
+ if !(wcs != 0) {
+ goto __115
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint64(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */))
+__115:
+ ;
+ if !(alloc != 0 && i == k) {
+ goto __116
+ }
+ k = k + (k + uint64(1))
+ tmp = Xrealloc(tls, wcs, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(tmp != 0) {
+ goto __117
+ }
+ goto alloc_fail
+__117:
+ ;
+ wcs = tmp
+__116:
+ ;
+ goto __110
+__111:
+ ;
+ if !!(Xmbsinit(tls, bp+268) != 0) {
+ goto __118
+ }
+ goto input_fail
+__118:
+ ;
+ goto __106
+__105:
+ if !(alloc != 0) {
+ goto __119
+ }
+ s = Xmalloc(tls, k)
+ if !!(s != 0) {
+ goto __121
+ }
+ goto alloc_fail
+__121:
+ ;
+__122:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __123
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = uint8(c)
+ if !(i == k) {
+ goto __124
+ }
+ k = k + (k + uint64(1))
+ tmp1 = Xrealloc(tls, s, k)
+ if !!(tmp1 != 0) {
+ goto __125
+ }
+ goto alloc_fail
+__125:
+ ;
+ s = tmp1
+__124:
+ ;
+ goto __122
+__123:
+ ;
+ goto __120
+__119:
+ if !(AssignUintptr(&s, dest) != 0) {
+ goto __126
+ }
+__128:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __129
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = uint8(c)
+ goto __128
+__129:
+ ;
+ goto __127
+__126:
+__130:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __131
+ }
+ goto __130
+__131:
+ ;
+__127:
+ ;
+__120:
+ ;
+__106:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __132
+ }
+ goto match_fail
+__132:
+ ;
+ if !(t == 'c' && (*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != off_t(width)) {
+ goto __133
+ }
+ goto match_fail
+__133:
+ ;
+ if !(alloc != 0) {
+ goto __134
+ }
+ if !(size == 1) {
+ goto __135
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = wcs
+ goto __136
+__135:
+ *(*uintptr)(unsafe.Pointer(dest)) = s
+__136:
+ ;
+__134:
+ ;
+ if !(t != 'c') {
+ goto __137
+ }
+ if !(wcs != 0) {
+ goto __138
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = wchar_t(0)
+__138:
+ ;
+ if !(s != 0) {
+ goto __139
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0)
+__139:
+ ;
+__137:
+ ;
+ goto __70
+__74:
+__75:
+__76:
+ base = 16
+ goto int_common
+__77:
+ base = 8
+ goto int_common
+__78:
+__79:
+ base = 10
+ goto int_common
+__80:
+ base = 0
+int_common:
+ x = X__intscan(tls, f, uint32(base), 0, 2*uint64(0x7fffffffffffffff)+uint64(1))
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __140
+ }
+ goto match_fail
+__140:
+ ;
+ if !(t == 'p' && dest != 0) {
+ goto __141
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x))
+ goto __142
+__141:
+ store_int(tls, dest, size, x)
+__142:
+ ;
+ goto __70
+__81:
+__82:
+__83:
+__84:
+__85:
+__86:
+__87:
+__88:
+ y = X__floatscan(tls, f, size, 0)
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __143
+ }
+ goto match_fail
+__143:
+ ;
+ if !(dest != 0) {
+ goto __144
+ }
+ switch size {
+ case 0:
+ goto __146
+ case 1:
+ goto __147
+ case 2:
+ goto __148
+ }
+ goto __145
+__146:
+ *(*float32)(unsafe.Pointer(dest)) = float32(y)
+ goto __145
+__147:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__148:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__145:
+ ;
+__144:
+ ;
+ goto __70
+__70:
+ ;
+
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ if !(dest != 0) {
+ goto __149
+ }
+ matches++
+__149:
+ ;
+ goto __4
+__4:
+ p++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(0 != 0) {
+ goto __150
+ }
+fmt_fail:
+alloc_fail:
+input_fail:
+ if !!(matches != 0) {
+ goto __151
+ }
+ matches--
+__151:
+ ;
+match_fail:
+ if !(alloc != 0) {
+ goto __152
+ }
+ Xfree(tls, s)
+ Xfree(tls, wcs)
+__152:
+ ;
+__150:
+ ;
+__153:
+ if !(__need_unlock != 0) {
+ goto __156
+ }
+ X__unlockfile(tls, f)
+__156:
+ ;
+ goto __154
+__154:
+ if 0 != 0 {
+ goto __153
+ }
+ goto __155
+__155:
+ ;
+ return matches
+}
+
+func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */
+ var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie
+ var k size_t = len + uint64(256)
+ var end uintptr = Xmemchr(tls, src, 0, k)
+ if end != 0 {
+ k = size_t((int64(end) - int64(src)) / 1)
+ }
+ if k < len {
+ len = k
+ }
+ Xmemcpy(tls, buf, src, len)
+ (*FILE)(unsafe.Pointer(f)).rpos = src + uintptr(len)
+ (*FILE)(unsafe.Pointer(f)).rend = src + uintptr(k)
+ (*FILE)(unsafe.Pointer(f)).cookie = src + uintptr(k)
+ return len
+}
+
+func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ }{string_read})), buf: s, lock: -1, cookie: s}
+ return Xvfscanf(tls, bp, fmt, ap)
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint64(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 8
+ wd += 8
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*uint8)(unsafe.Pointer(d)) = uint8(0)
+finish:
+ return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint64(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = uint8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*uint8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*uint8)(unsafe.Pointer(s))) == int32(*(*uint8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*uint8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*uint8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*uint8)(unsafe.Pointer(_sp)) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = uint8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer(a + 6*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer(a + 6*4))
+ return 0
+}
+
+//
+// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_guardsize;
+// return 0;
+// }
+//
+// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit)
+// {
+// *inherit = a->_a_sched;
+// return 0;
+// }
+//
+// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param)
+// {
+// param->sched_priority = a->_a_prio;
+// return 0;
+// }
+//
+// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy)
+// {
+// *policy = a->_a_policy;
+// return 0;
+// }
+//
+// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope)
+// {
+// *scope = PTHREAD_SCOPE_SYSTEM;
+// return 0;
+// }
+//
+// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size)
+// {
+// if (!a->_a_stackaddr)
+// return EINVAL;
+// *size = a->_a_stacksize;
+// *addr = (void *)(a->_a_stackaddr - *size);
+// return 0;
+// }
+//
+// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_stacksize;
+// return 0;
+// }
+//
+// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = !!a->__attr;
+// return 0;
+// }
+//
+// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
+// {
+// *clk = a->__attr & 0x7fffffff;
+// return 0;
+// }
+//
+// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr>>31;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol)
+// {
+// *protocol = PTHREAD_PRIO_NONE;
+// return 0;
+// }
+// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr / 128U % 2;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
+// {
+// *robust = a->__attr / 4U % 2;
+// return 0;
+// }
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))
+}
+
+// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
+// {
+// *type = a->__attr & 3;
+// return 0;
+// }
+//
+// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr[0];
+// return 0;
+// }
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer(a + 6*4)) = state
+ return 0
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return *(*int32)(unsafe.Pointer(m)) & 15
+}
+
+// int __pthread_mutex_lock(pthread_mutex_t *m)
+// {
+// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
+// && !a_cas(&m->_m_lock, 0, EBUSY))
+// return 0;
+//
+// return __pthread_mutex_timedlock(m, 0);
+// }
+//
+// weak_alias(__pthread_mutex_lock, pthread_mutex_lock);
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr&Uint32FromInt32(CplInt32(3)) | uint32(type1)
+ return 0
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptable)) + 0)) = uintptr(unsafe.Pointer(&table)) + uintptr(128)*2 // __ctype_b_loc.c:36:45:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_linux_s390x.go b/vendor/modernc.org/libc/musl_linux_s390x.go
new file mode 100644
index 00000000..6d55607c
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_linux_s390x.go
@@ -0,0 +1,6948 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_s390x.go -pkgname libc -static-locals-prefix _s -Iarch/s390x -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+type uint16_t = uint16 /* alltypes.h:113:25 */
+
+type uint32_t = uint32 /* alltypes.h:118:25 */
+
+type uint64_t = uint64 /* alltypes.h:123:25 */
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+var table = [384]uint16{
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200),
+ uint16(0x200), uint16(0x320), uint16(0x220), uint16(0x220), uint16(0x220), uint16(0x220), uint16(0x200), uint16(0x200),
+ uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200),
+ uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200), uint16(0x200),
+ uint16(0x160), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0),
+ uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0),
+ uint16(0x8d8), uint16(0x8d8), uint16(0x8d8), uint16(0x8d8), uint16(0x8d8), uint16(0x8d8), uint16(0x8d8), uint16(0x8d8),
+ uint16(0x8d8), uint16(0x8d8), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0),
+ uint16(0x4c0), uint16(0x8d5), uint16(0x8d5), uint16(0x8d5), uint16(0x8d5), uint16(0x8d5), uint16(0x8d5), uint16(0x8c5),
+ uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5),
+ uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x8c5),
+ uint16(0x8c5), uint16(0x8c5), uint16(0x8c5), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0),
+ uint16(0x4c0), uint16(0x8d6), uint16(0x8d6), uint16(0x8d6), uint16(0x8d6), uint16(0x8d6), uint16(0x8d6), uint16(0x8c6),
+ uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6),
+ uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x8c6),
+ uint16(0x8c6), uint16(0x8c6), uint16(0x8c6), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x4c0), uint16(0x200),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+ uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0),
+} /* __ctype_b_loc.c:9:29 */
+
+var ptable uintptr = 0 /* __ctype_b_loc.c:36:29 */
+
+func X__ctype_b_loc(tls *TLS) uintptr { /* __ctype_b_loc.c:38:22: */
+ return uintptr(unsafe.Pointer(&ptable))
+}
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:330:9 */
+
+type locale_t = uintptr /* alltypes.h:330:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */
+ return Bool32(uint32(c)-uint32('A') < uint32(26))
+}
+
+func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */
+ return Xisupper(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type off_t = int64 /* alltypes.h:149:16 */
+
+type ino_t = uint64 /* alltypes.h:154:25 */
+
+type dirent = struct {
+ d_ino ino_t
+ d_off off_t
+ d_reclen uint16
+ d_type uint8
+ d_name [256]uint8
+ _ [5]byte
+} /* dirent.h:5:1 */
+
+type __dirstream = struct {
+ tell off_t
+ fd int32
+ buf_pos int32
+ buf_end int32
+ lock [1]int32
+ buf [2048]uint8
+} /* dirent.h:20:9 */
+
+type DIR = __dirstream /* dirent.h:20:28 */
+
+type ssize_t = int64 /* alltypes.h:52:15 */
+
+type intptr_t = int64 /* alltypes.h:57:15 */
+
+type pid_t = int32 /* alltypes.h:222:13 */
+
+type uid_t = uint32 /* alltypes.h:232:18 */
+
+type gid_t = uint32 /* alltypes.h:237:18 */
+
+type useconds_t = uint32 /* alltypes.h:247:18 */
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+func Xclosedir(tls *TLS, dir uintptr) int32 { /* closedir.c:6:5: */
+ var ret int32 = Xclose(tls, (*DIR)(unsafe.Pointer(dir)).fd)
+ Xfree(tls, dir)
+ return ret
+}
+
+type mode_t = uint32 /* alltypes.h:139:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:342:1 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+type file_handle = struct {
+ _ [0]uint32
+ handle_bytes uint32
+ handle_type int32
+} /* fcntl.h:167:1 */
+
+type f_owner_ex = struct {
+ __type int32
+ pid pid_t
+} /* fcntl.h:172:1 */
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func Xopendir(tls *TLS, name uintptr) uintptr { /* opendir.c:8:5: */
+ var fd int32
+ var dir uintptr
+
+ if AssignInt32(&fd, Xopen(tls, name, 00|0200000|02000000, 0)) < 0 {
+ return uintptr(0)
+ }
+ if !(int32(AssignUintptr(&dir, Xcalloc(tls, uint64(1), uint64(unsafe.Sizeof(DIR{}))))) != 0) {
+ __syscall1(tls, int64(6), int64(fd))
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).fd = fd
+ return dir
+}
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:28:54 */
+
+type dirstream_buf_alignment_check = [1]uint8 /* readdir.c:7:14 */
+
+func Xreaddir(tls *TLS, dir uintptr) uintptr { /* readdir.c:10:15: */
+ var de uintptr
+
+ if (*DIR)(unsafe.Pointer(dir)).buf_pos >= (*DIR)(unsafe.Pointer(dir)).buf_end {
+ var len int32 = int32(__syscall3(tls, int64(220), int64((*DIR)(unsafe.Pointer(dir)).fd), int64(dir+24), int64(unsafe.Sizeof([2048]uint8{}))))
+ if len <= 0 {
+ if len < 0 && len != -2 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = -len
+ }
+ return uintptr(0)
+ }
+ (*DIR)(unsafe.Pointer(dir)).buf_end = len
+ (*DIR)(unsafe.Pointer(dir)).buf_pos = 0
+ }
+ de = dir + 24 + uintptr((*DIR)(unsafe.Pointer(dir)).buf_pos)
+ *(*int32)(unsafe.Pointer(dir + 12)) += int32((*dirent)(unsafe.Pointer(de)).d_reclen)
+ (*DIR)(unsafe.Pointer(dir)).tell = (*dirent)(unsafe.Pointer(de)).d_off
+ return de
+}
+
+type uintptr_t = uint64 /* alltypes.h:42:24 */
+
+type int8_t = int8 /* alltypes.h:83:25 */
+
+type int16_t = int16 /* alltypes.h:88:25 */
+
+type int32_t = int32 /* alltypes.h:93:25 */
+
+type int64_t = int64 /* alltypes.h:98:25 */
+
+type intmax_t = int64 /* alltypes.h:103:25 */
+
+type uint8_t = uint8 /* alltypes.h:108:25 */
+
+type uintmax_t = uint64 /* alltypes.h:133:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:307:9 */
+
+type FILE = _IO_FILE /* alltypes.h:307:25 */
+
+type va_list = uintptr /* alltypes.h:313:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]uint8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float64 /* alltypes.h:17:16 */
+
+type double_t = float64 /* alltypes.h:22:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [5]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int64
+ pending uintptr
+ }
+ timer_id int32
+ _ [4]byte
+ locale locale_t
+ killlock [1]int32
+ _ [4]byte
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ dtv_copy uintptr
+} /* alltypes.h:260:9 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+ return float64(X__builtin_nanf(tls, ts+13))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table1 = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table1)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*uint8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits uint8
+ frac_digits uint8
+ p_cs_precedes uint8
+ p_sep_by_space uint8
+ n_cs_precedes uint8
+ n_sep_by_space uint8
+ p_sign_posn uint8
+ n_sign_posn uint8
+ int_p_cs_precedes uint8
+ int_p_sep_by_space uint8
+ int_n_cs_precedes uint8
+ int_n_sep_by_space uint8
+ int_p_sign_posn uint8
+ int_n_sign_posn uint8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: uint8(255), frac_digits: uint8(255), p_cs_precedes: uint8(255), p_sep_by_space: uint8(255), n_cs_precedes: uint8(255), n_sep_by_space: uint8(255), p_sign_posn: uint8(255), n_sign_posn: uint8(255), int_p_cs_precedes: uint8(255), int_p_sep_by_space: uint8(255), int_n_cs_precedes: uint8(255), int_n_sep_by_space: uint8(255), int_p_sign_posn: uint8(255), int_n_sign_posn: uint8(255)} /* localeconv.c:4:27 */
+
+func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */
+ return uintptr(unsafe.Pointer(&posix_lconv))
+}
+
+func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ if !(e != 0) {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0x7ff {
+ if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) {
+ *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff))
+ if !(e != 0) {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 {
+ return 3
+ }
+ return 2
+ }
+ if e == 0xff {
+ if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 {
+ return 0
+ }
+ return 1
+ }
+ return 4
+}
+
+func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */
+ return X__fpclassify(tls, x)
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */
+ return X__builtin_nanf(tls, ts+13)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]uint8
+ next uintptr
+} /* alltypes.h:330:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads uint8
+ threaded uint8
+ secure uint8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int64 /* alltypes.h:72:16 */
+
+type clockid_t = int32 /* alltypes.h:201:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:216:1 */
+
+type pthread_t = uintptr /* alltypes.h:260:26 */
+
+type pthread_once_t = int32 /* alltypes.h:266:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:271:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:276:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:281:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:286:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:291:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:296:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:336:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:336:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:359:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:364:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:374:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:384:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:389:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:196:14 */
+
+type clock_t = int64 /* alltypes.h:206:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+ }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [32]uint8
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:260:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ _ [4]byte
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = uint64 /* signal.h:11:23 */
+type gregset_t = [27]uint64 /* signal.h:11:31 */
+
+type fpreg_t = struct{ d float64 } /* signal.h:21:3 */
+
+type fpregset_t = struct {
+ fpc uint32
+ _ [4]byte
+ fprs [16]fpreg_t
+} /* signal.h:26:3 */
+
+type mcontext_t = struct {
+ psw struct {
+ mask uint64
+ addr uint64
+ }
+ gregs [16]uint64
+ aregs [16]uint32
+ fpregs fpregset_t
+} /* signal.h:34:3 */
+
+type sigcontext = struct {
+ oldmask [1]uint64
+ sregs uintptr
+} /* signal.h:36:1 */
+
+type __ucontext = struct {
+ uc_flags uint64
+ uc_link uintptr
+ uc_stack stack_t
+ uc_mcontext mcontext_t
+ uc_sigmask sigset_t
+} /* signal.h:67:9 */
+
+type ucontext_t = __ucontext /* signal.h:73:3 */
+
+type sigval = struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+} /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ _ [4]byte
+ __si_fields struct {
+ _ [0]uint64
+ __pad [112]uint8
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ _ [4]byte
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:2:19: */
+ panic(`arch/s390x/atomic_arch.h:4:2: assembler statements not supported`)
+ return t
+}
+
+func a_barrier(tls *TLS) { /* atomic_arch.h:21:20: */
+ panic(`arch/s390x/atomic_arch.h:23:2: assembler statements not supported`)
+}
+
+func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:108:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, v) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_fetch_add(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:119:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, int32(uint32(old)+uint32(v))) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_fetch_and(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:130:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, old&v) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_fetch_or(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:140:19: */
+ var old int32
+ for ok := true; ok; ok = a_cas(tls, p, old, old|v) != old {
+ old = *(*int32)(unsafe.Pointer(p))
+ }
+ return old
+}
+
+func a_and(tls *TLS, p uintptr, v int32) { /* atomic.h:151:20: */
+ a_fetch_and(tls, p, v)
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic.h:159:20: */
+ a_fetch_or(tls, p, v)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ v uint64_t })(unsafe.Pointer(bp)) = func() (r struct{ v uint64_t }) {
+ *(*uint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = v
+ return r
+ }()
+ if *(*uint32_t)(unsafe.Pointer(bp)) != 0 {
+ a_or(tls, p, int32(*(*uint32_t)(unsafe.Pointer(bp))))
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + 1*4)) != 0 {
+ a_or(tls, p+uintptr(1)*4, int32(*(*uint32_t)(unsafe.Pointer(bp + 1*4))))
+ }
+}
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */
+ return int32(_sdebruijn328[x&-x*uint32_t(0x076be629)>>27])
+}
+
+var _sdebruijn328 = [32]uint8{
+ uint8(0), uint8(1), uint8(23), uint8(2), uint8(29), uint8(24), uint8(19), uint8(3), uint8(30), uint8(27), uint8(25), uint8(11), uint8(20), uint8(8), uint8(4), uint8(13),
+ uint8(31), uint8(22), uint8(28), uint8(18), uint8(26), uint8(10), uint8(7), uint8(12), uint8(21), uint8(17), uint8(9), uint8(6), uint8(16), uint8(5), uint8(15), uint8(14),
+} /* atomic.h:261:20 */
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic.h:272:19: */
+ if uint64(unsafe.Sizeof(int64(0))) < uint64(8) {
+ var y uint32_t = uint32_t(x)
+ if !(y != 0) {
+ y = uint32_t(x >> 32)
+ return 32 + a_ctz_32(tls, y)
+ }
+ return a_ctz_32(tls, y)
+ }
+ return int32(_sdebruijn648[uint64(x&-x)*0x022fdd63cc95386d>>58])
+}
+
+var _sdebruijn648 = [64]uint8{
+ uint8(0), uint8(1), uint8(2), uint8(53), uint8(3), uint8(7), uint8(54), uint8(27), uint8(4), uint8(38), uint8(41), uint8(8), uint8(34), uint8(55), uint8(48), uint8(28),
+ uint8(62), uint8(5), uint8(39), uint8(46), uint8(44), uint8(42), uint8(22), uint8(9), uint8(24), uint8(35), uint8(59), uint8(56), uint8(49), uint8(18), uint8(29), uint8(11),
+ uint8(63), uint8(52), uint8(6), uint8(26), uint8(37), uint8(40), uint8(33), uint8(47), uint8(61), uint8(45), uint8(43), uint8(21), uint8(23), uint8(58), uint8(17), uint8(10),
+ uint8(51), uint8(25), uint8(36), uint8(32), uint8(60), uint8(20), uint8(57), uint8(16), uint8(50), uint8(31), uint8(19), uint8(15), uint8(30), uint8(14), uint8(13), uint8(12),
+} /* atomic.h:274:20 */
+
+type __timer = struct {
+ timerid int32
+ _ [4]byte
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */
+ var self uintptr
+ panic(`arch/s390x/pthread_arch.h:4:2: assembler statements not supported`)
+ return self
+}
+
+func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ if cnt < 0 {
+ cnt = 0x7fffffff
+ }
+ _ = Bool32(__syscall3(tls, int64(238), int64(addr), int64(1|priv), int64(cnt)) != int64(-38) || __syscall3(tls, int64(238), int64(addr), int64(1), int64(cnt)) != 0)
+}
+
+func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */
+ if priv != 0 {
+ priv = 128
+ }
+ _ = Bool32(__syscall4(tls, int64(238), int64(addr), int64(0|priv), int64(val), int64(0)) != int64(-38) || __syscall4(tls, int64(238), int64(addr), int64(0), int64(val), int64(0)) != 0)
+}
+
+var X__fsmu8 = [51]uint32_t{
+ func() uint32 {
+ if 0x2 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2)
+ }(), func() uint32 {
+ if 0x3 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3)
+ }(), func() uint32 {
+ if 0x4 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4)
+ }(), func() uint32 {
+ if 0x5 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5)
+ }(), func() uint32 {
+ if 0x6 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6)
+ }(), func() uint32 {
+ if 0x7 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7)
+ }(),
+ func() uint32 {
+ if 0x8 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8)
+ }(), func() uint32 {
+ if 0x9 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9)
+ }(), func() uint32 {
+ if 0xa < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa)
+ }(), func() uint32 {
+ if 0xb < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb)
+ }(), func() uint32 {
+ if 0xc < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc)
+ }(), func() uint32 {
+ if 0xd < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd)
+ }(), func() uint32 {
+ if 0xe < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe)
+ }(), func() uint32 {
+ if 0xf < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf)
+ }(),
+ func() uint32 {
+ if 0x0+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x0+16)
+ }(), func() uint32 {
+ if 0x1+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x1+16)
+ }(), func() uint32 {
+ if 0x2+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x2+16)
+ }(), func() uint32 {
+ if 0x3+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x3+16)
+ }(), func() uint32 {
+ if 0x4+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x4+16)
+ }(), func() uint32 {
+ if 0x5+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x5+16)
+ }(), func() uint32 {
+ if 0x6+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x6+16)
+ }(), func() uint32 {
+ if 0x7+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x7+16)
+ }(),
+ func() uint32 {
+ if 0x8+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x8+16)
+ }(), func() uint32 {
+ if 0x9+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0x9+16)
+ }(), func() uint32 {
+ if 0xa+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xa+16)
+ }(), func() uint32 {
+ if 0xb+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xb+16)
+ }(), func() uint32 {
+ if 0xc+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xc+16)
+ }(), func() uint32 {
+ if 0xd+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xd+16)
+ }(), func() uint32 {
+ if 0xe+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xe+16)
+ }(), func() uint32 {
+ if 0xf+16 < 2 {
+ return Uint32FromInt32(-1)
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23 | uint32_t(0xf+16)
+ }(),
+ func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x0), func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x1), func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x2), func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x3), func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x4), func() uint32 {
+ if 0x5 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x5 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x5), func() uint32 {
+ if 0x6 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x6 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x6), func() uint32 {
+ if 0x7 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x7 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x7),
+ func() uint32 {
+ if 0x8 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x8 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x8), func() uint32 {
+ if 0x9 == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x9 == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0x9), func() uint32 {
+ if 0xa == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xa == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xa), func() uint32 {
+ if 0xb == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xb == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xb), func() uint32 {
+ if 0xc == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xc == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xc), func() uint32 {
+ if 0xd == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xd == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xd), func() uint32 {
+ if 0xe == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xe == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xe), func() uint32 {
+ if 0xf == 0 {
+ return func() uint32 {
+ if Int32(0xa0) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0xa0))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0xf == 0xd {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(0xf),
+ func() uint32 {
+ if 0x0 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x0 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x0 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x0), func() uint32 {
+ if 0x1 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x1 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x1 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x1), func() uint32 {
+ if 0x2 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x2 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x2 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x2), func() uint32 {
+ if 0x3 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x3 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x3 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x3), func() uint32 {
+ if 0x4 >= 5 {
+ return uint32(0)
+ }
+ return func() uint32 {
+ if 0x4 == 0 {
+ return func() uint32 {
+ if Int32(0x90) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x90))
+ }() << 23
+ }
+ return func() uint32 {
+ if 0x4 == 4 {
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0x90))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }
+ return func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }() << 23
+ }()
+ }()
+ }() | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>6 | uint32_t(func() uint32 {
+ if Int32(0x80) == Int32(0x80) {
+ return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0))
+ }
+ return Uint32(Uint32(0) - Uint32FromInt32(0x80))
+ }()<<23)>>12 | uint32_t(0x4),
+} /* internal.c:18:16 */
+
+type wint_t = uint32 /* alltypes.h:185:18 */
+
+type wctype_t = uint64 /* alltypes.h:190:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:324:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:324:63 */
+
+func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var c uint32
+ var s uintptr
+ var N uint32
+ // var dummy wchar_t at bp, 4
+ s = src
+ N = uint32(n)
+
+ if !!(st != 0) {
+ goto __1
+ }
+ st = uintptr(unsafe.Pointer(&_sinternal_state))
+__1:
+ ;
+ c = *(*uint32)(unsafe.Pointer(st))
+
+ if !!(s != 0) {
+ goto __2
+ }
+ if !(c != 0) {
+ goto __4
+ }
+ goto ilseq
+__4:
+ ;
+ return uint64(0)
+ goto __3
+__2:
+ if !!(wc != 0) {
+ goto __5
+ }
+ wc = bp /* &dummy */
+__5:
+ ;
+__3:
+ ;
+
+ if !!(n != 0) {
+ goto __6
+ }
+ return Uint64FromInt32(-2)
+__6:
+ ;
+ if !!(c != 0) {
+ goto __7
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) {
+ goto __8
+ }
+ return BoolUint64(!!(AssignPtrInt32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s)))) != 0))
+__8:
+ ;
+ if !(func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1) {
+ goto __9
+ }
+ *(*wchar_t)(unsafe.Pointer(wc)) = 0xdfff & int32(int8(*(*uint8)(unsafe.Pointer(s))))
+ return 1
+__9:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0xc2 > 0xf4-0xc2) {
+ goto __10
+ }
+ goto ilseq
+__10:
+ ;
+ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0xc2]
+ n--
+__7:
+ ;
+
+ if !(n != 0) {
+ goto __11
+ }
+ if !((int32(*(*uint8)(unsafe.Pointer(s)))>>3-0x10|(int32(*(*uint8)(unsafe.Pointer(s)))>>3+int32_t(c)>>26))&CplInt32(7) != 0) {
+ goto __12
+ }
+ goto ilseq
+__12:
+ ;
+loop:
+ c = c<<6 | uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0x80)
+ n--
+ if !!(c&(uint32(1)<<31) != 0) {
+ goto __13
+ }
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(c)
+ return size_t(N) - n
+__13:
+ ;
+ if !(n != 0) {
+ goto __14
+ }
+ if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0x80 >= uint32(0x40)) {
+ goto __15
+ }
+ goto ilseq
+__15:
+ ;
+ goto loop
+__14:
+ ;
+__11:
+ ;
+
+ *(*uint32)(unsafe.Pointer(st)) = c
+ return Uint64FromInt32(-2)
+ilseq:
+ *(*uint32)(unsafe.Pointer(st)) = uint32(0)
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint64FromInt32(-1)
+}
+
+var _sinternal_state uint32 /* mbrtowc.c:8:18: */
+
+func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */
+ return Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0))
+}
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type socklen_t = uint32 /* alltypes.h:348:18 */
+
+type sa_family_t = uint16 /* alltypes.h:353:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ __pad1 int32
+ msg_iovlen int32
+ msg_control uintptr
+ __pad2 int32
+ msg_controllen socklen_t
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ __pad1 int32
+ cmsg_len socklen_t
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]uint8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]uint8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]uint8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ __pad1 int32
+ msg_iovlen int32
+ msg_control uintptr
+ __pad2 int32
+ msg_controllen socklen_t
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */
+ bp := tls.Alloc(28)
+ defer tls.Free(28)
+
+ //TODO union {
+ //TODO struct sockaddr_in sin;
+ //TODO struct sockaddr_in6 sin6;
+ //TODO } sa = { .sin.sin_family = af };
+ *(*struct {
+ sin sockaddr_in
+ _ [12]byte
+ })(unsafe.Pointer(bp)) = struct {
+ sin sockaddr_in
+ _ [12]byte
+ }{} //TODO-
+ (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO-
+ var sl socklen_t
+ if af == 10 {
+ sl = uint32(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ sl = uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var i int32
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+
+ // Load address argument into sockaddr structure
+ if af == 10 && l == socklen_t(16) {
+ Xmemcpy(tls, bp+8, a, uint64(16))
+ } else if af == 2 && l == socklen_t(4) {
+ Xmemcpy(tls, bp+4, a, uint64(4))
+ } else {
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 22
+ }
+
+ // Align buffer and check for space for pointers and ip address
+ i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+ if !(i != 0) {
+ i = int32(unsafe.Sizeof(uintptr(0)))
+ }
+ if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) {
+ return 34
+ }
+ buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))
+ buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l))
+
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l))
+ buf += uintptr(l)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+
+ switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) {
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ case -12:
+ return 34
+ default:
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ case 0:
+ break
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = int32(l)
+ (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases))
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]uint8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */
+ return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err)
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]uint8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]uint8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]uint8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]uint8
+ alg [1025]uint8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned qr: 1, unsigned opcode: 4, unsigned aa: 1, unsigned tc: 1, unsigned rd: 1, unsigned ra: 1, unsigned unused: 1, unsigned ad: 1, unsigned cd: 1, unsigned rcode: 4 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]uint8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]uint8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+25,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.')
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.')
+ }
+ Xstrcpy(tls, s, ts+50)
+}
+
+var _sxdigits = *(*[17]uint8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]uint8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+90, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]uint8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n')
+ *(*uint8)(unsafe.Pointer(p)) = uint8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+90, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */
+ bp := tls.Alloc(347)
+ defer tls.Free(347)
+
+ // var ptr [78]uint8 at bp, 78
+
+ // var buf [256]uint8 at bp+78, 256
+
+ // var num [13]uint8 at bp+334, 13
+
+ var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family)
+ var a uintptr
+ var scopeid uint32
+
+ switch af {
+ case 2:
+ a = sa1 + 4
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) {
+ return -6
+ }
+ mkptr4(tls, bp, a)
+ scopeid = uint32(0)
+ break
+ case 10:
+ a = sa1 + 8
+ if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) {
+ return -6
+ }
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ mkptr6(tls, bp, a)
+ } else {
+ mkptr4(tls, bp, a+uintptr(12))
+ }
+ scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id
+ break
+ default:
+ return -6
+ }
+
+ if node != 0 && nodelen != 0 {
+ *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0)
+ if !(flags&0x01 != 0) {
+ reverse_hosts(tls, bp+78, a, scopeid, af)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) {
+ Xabort(tls) //TODO-
+ // unsigned char query[18+PTR_MAX], reply[512];
+ // int qlen = __res_mkquery(0, ptr, 1, RR_PTR,
+ // 0, 0, 0, query, sizeof query);
+ // query[3] = 0; /* don't need AD flag */
+ // int rlen = __res_send(query, qlen, reply, sizeof reply);
+ // buf[0] = 0;
+ // if (rlen > 0)
+ // __dns_parse(reply, rlen, dns_parse_callback, buf);
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) {
+ if flags&0x08 != 0 {
+ return -2
+ }
+ Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]uint8{})))
+ if scopeid != 0 {
+ Xabort(tls) //TODO-
+ // char *p = 0, tmp[IF_NAMESIZE+1];
+ // if (!(flags & NI_NUMERICSCOPE) &&
+ // (IN6_IS_ADDR_LINKLOCAL(a) ||
+ // IN6_IS_ADDR_MC_LINKLOCAL(a)))
+ // p = if_indextoname(scopeid, tmp+1);
+ // if (!p)
+ // p = itoa(num, scopeid);
+ // *--p = '%';
+ // strcat(buf, p);
+ }
+ }
+ if Xstrlen(tls, bp+78) >= size_t(nodelen) {
+ return -12
+ }
+ Xstrcpy(tls, node, bp+78)
+ }
+
+ if serv != 0 && servlen != 0 {
+ var p uintptr = bp + 78 /* buf */
+ var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port))
+ *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0)
+ if !(flags&0x02 != 0) {
+ reverse_services(tls, bp+78, port, flags&0x10)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ p = itoa(tls, bp+334, uint32(port))
+ }
+ if Xstrlen(tls, p) >= size_t(servlen) {
+ return -12
+ }
+ Xstrcpy(tls, serv, p)
+ }
+
+ return 0
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]uint8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]uint8{})),
+ ts+115,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]uint8{})),
+ ts+139,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrUint8(bp+176+uintptr(best+1), uint8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*uint8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]uint8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*uint8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = uint8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]uint8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+76, ts+87)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]uint8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n')
+ *(*uint8)(unsafe.Pointer(p)) = uint8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*uint8)(unsafe.Pointer(z)) = uint8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*uint8)(unsafe.Pointer(canon)) = uint8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+90, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]uint8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*uint8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */
+ x = x ^ x>>11
+ x = x ^ x<<7&0x9D2C5680
+ x = x ^ x<<15&0xEFC60000
+ x = x ^ x>>18
+ return x
+}
+
+func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */
+ return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2))
+}
+
+func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */
+ var owner int32 = (*FILE)(unsafe.Pointer(f)).lock
+ var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid
+ if owner&CplInt32(0x40000000) == tid {
+ return 0
+ }
+ owner = a_cas(tls, f+140, 0, tid)
+ if !(owner != 0) {
+ return 1
+ }
+ for AssignInt32(&owner, a_cas(tls, f+140, 0, tid|0x40000000)) != 0 {
+ if owner&0x40000000 != 0 || a_cas(tls, f+140, owner, owner|0x40000000) == owner {
+ __futexwait(tls, f+140, owner|0x40000000, 1)
+ }
+ }
+ return 1
+}
+
+func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */
+ if a_swap(tls, f+140, 0)&0x40000000 != 0 {
+ __wake(tls, f+140, 1, 1)
+ }
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */
+ var ret int32
+ var ap va_list
+ _ = ap
+ ap = va
+ ret = Xvsscanf(tls, s, fmt, ap)
+ _ = ap
+ return ret
+}
+
+type wctrans_t = uintptr /* wctype.h:20:19 */
+
+func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */
+ if !(dest != 0) {
+ return
+ }
+ switch size {
+ case -2:
+ *(*uint8)(unsafe.Pointer(dest)) = uint8(i)
+ break
+ case -1:
+ *(*int16)(unsafe.Pointer(dest)) = int16(i)
+ break
+ case 0:
+ *(*int32)(unsafe.Pointer(dest)) = int32(i)
+ break
+ case 1:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ case 3:
+ *(*int64)(unsafe.Pointer(dest)) = int64(i)
+ break
+ }
+}
+
+func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */
+ var p uintptr
+ var i uint32
+ var ap2 va_list
+ _ = ap2
+ ap2 = ap
+ for i = n; i > uint32(1); i-- {
+ VaUintptr(&ap2)
+ }
+ p = VaUintptr(&ap2)
+ _ = ap2
+ return p
+}
+
+func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var width int32
+ var size int32
+ var alloc int32
+ var base int32
+ var p uintptr
+ var c int32
+ var t int32
+ var s uintptr
+ var wcs uintptr
+ // var st mbstate_t at bp+268, 8
+
+ var dest uintptr
+ var invert int32
+ var matches int32
+ var x uint64
+ var y float64
+ var pos off_t
+ // var scanset [257]uint8 at bp, 257
+
+ var i size_t
+ var k size_t
+ // var wc wchar_t at bp+260, 4
+
+ var __need_unlock int32
+ var tmp uintptr
+ var tmp1 uintptr
+ alloc = 0
+ dest = uintptr(0)
+ matches = 0
+ pos = int64(0)
+ __need_unlock = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).lock >= 0 {
+ return X__lockfile(tls, f)
+ }
+ return 0
+ }()
+
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __1
+ }
+ X__toread(tls, f)
+__1:
+ ;
+ if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) {
+ goto __2
+ }
+ goto input_fail
+__2:
+ ;
+
+ p = fmt
+__3:
+ if !(*(*uint8)(unsafe.Pointer(p)) != 0) {
+ goto __5
+ }
+
+ alloc = 0
+
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) {
+ goto __6
+ }
+__7:
+ if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) {
+ goto __8
+ }
+ p++
+ goto __7
+__8:
+ ;
+ X__shlim(tls, f, int64(0))
+__9:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __10
+ }
+ goto __9
+__10:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ goto __4
+__6:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != '%' || int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%') {
+ goto __11
+ }
+ X__shlim(tls, f, int64(0))
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') {
+ goto __12
+ }
+ p++
+__14:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __15
+ }
+ goto __14
+__15:
+ ;
+ goto __13
+__12:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__13:
+ ;
+ if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __16
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(c < 0) {
+ goto __17
+ }
+ goto input_fail
+__17:
+ ;
+ goto match_fail
+__16:
+ ;
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ goto __4
+__11:
+ ;
+
+ p++
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') {
+ goto __18
+ }
+ dest = uintptr(0)
+ p++
+ goto __19
+__18:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$') {
+ goto __20
+ }
+ dest = arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-'0'))
+ p += uintptr(2)
+ goto __21
+__20:
+ dest = VaUintptr(&ap)
+__21:
+ ;
+__19:
+ ;
+
+ width = 0
+__22:
+ if !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p))))
+ }
+ return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10))
+ }() != 0) {
+ goto __24
+ }
+ width = 10*width + int32(*(*uint8)(unsafe.Pointer(p))) - '0'
+ goto __23
+__23:
+ p++
+ goto __22
+ goto __24
+__24:
+ ;
+
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') {
+ goto __25
+ }
+ wcs = uintptr(0)
+ s = uintptr(0)
+ alloc = BoolInt32(!!(dest != 0))
+ p++
+ goto __26
+__25:
+ alloc = 0
+__26:
+ ;
+
+ size = 0
+ switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) {
+ case 'h':
+ goto __28
+ case 'l':
+ goto __29
+ case 'j':
+ goto __30
+ case 'z':
+ goto __31
+ case 't':
+ goto __32
+ case 'L':
+ goto __33
+ case 'd':
+ goto __34
+ case 'i':
+ goto __35
+ case 'o':
+ goto __36
+ case 'u':
+ goto __37
+ case 'x':
+ goto __38
+ case 'a':
+ goto __39
+ case 'e':
+ goto __40
+ case 'f':
+ goto __41
+ case 'g':
+ goto __42
+ case 'A':
+ goto __43
+ case 'E':
+ goto __44
+ case 'F':
+ goto __45
+ case 'G':
+ goto __46
+ case 'X':
+ goto __47
+ case 's':
+ goto __48
+ case 'c':
+ goto __49
+ case '[':
+ goto __50
+ case 'S':
+ goto __51
+ case 'C':
+ goto __52
+ case 'p':
+ goto __53
+ case 'n':
+ goto __54
+ default:
+ goto __55
+ }
+ goto __27
+__28:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') {
+ goto __56
+ }
+ p++
+ size = -2
+ goto __57
+__56:
+ size = -1
+__57:
+ ;
+ goto __27
+__29:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') {
+ goto __58
+ }
+ p++
+ size = 3
+ goto __59
+__58:
+ size = 1
+__59:
+ ;
+ goto __27
+__30:
+ size = 3
+ goto __27
+__31:
+__32:
+ size = 1
+ goto __27
+__33:
+ size = 2
+ goto __27
+__34:
+__35:
+__36:
+__37:
+__38:
+__39:
+__40:
+__41:
+__42:
+__43:
+__44:
+__45:
+__46:
+__47:
+__48:
+__49:
+__50:
+__51:
+__52:
+__53:
+__54:
+ p--
+ goto __27
+__55:
+ goto fmt_fail
+__27:
+ ;
+
+ t = int32(*(*uint8)(unsafe.Pointer(p)))
+
+ // C or S
+ if !(t&0x2f == 3) {
+ goto __60
+ }
+ t = t | 32
+ size = 1
+__60:
+ ;
+
+ switch t {
+ case 'c':
+ goto __62
+ case '[':
+ goto __63
+ case 'n':
+ goto __64
+ default:
+ goto __65
+ }
+ goto __61
+__62:
+ if !(width < 1) {
+ goto __66
+ }
+ width = 1
+__66:
+ ;
+__63:
+ goto __61
+__64:
+ store_int(tls, dest, size, uint64(pos))
+ // do not increment match count, etc!
+ goto __4
+__65:
+ X__shlim(tls, f, int64(0))
+__67:
+ if !(__isspace(tls, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != 0) {
+ goto __68
+ }
+ goto __67
+__68:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+__61:
+ ;
+
+ X__shlim(tls, f, int64(width))
+ if !(func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() < 0) {
+ goto __69
+ }
+ goto input_fail
+__69:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+
+ switch t {
+ case 's':
+ goto __71
+ case 'c':
+ goto __72
+ case '[':
+ goto __73
+ case 'p':
+ goto __74
+ case 'X':
+ goto __75
+ case 'x':
+ goto __76
+ case 'o':
+ goto __77
+ case 'd':
+ goto __78
+ case 'u':
+ goto __79
+ case 'i':
+ goto __80
+ case 'a':
+ goto __81
+ case 'A':
+ goto __82
+ case 'e':
+ goto __83
+ case 'E':
+ goto __84
+ case 'f':
+ goto __85
+ case 'F':
+ goto __86
+ case 'g':
+ goto __87
+ case 'G':
+ goto __88
+ }
+ goto __70
+__71:
+__72:
+__73:
+ if !(t == 'c' || t == 's') {
+ goto __89
+ }
+ Xmemset(tls, bp, -1, uint64(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(t == 's') {
+ goto __91
+ }
+ *(*uint8)(unsafe.Pointer(bp + 10)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 11)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 12)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 13)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 14)) = uint8(0)
+ *(*uint8)(unsafe.Pointer(bp + 33)) = uint8(0)
+__91:
+ ;
+ goto __90
+__89:
+ if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') {
+ goto __92
+ }
+ p++
+ invert = 1
+ goto __93
+__92:
+ invert = 0
+__93:
+ ;
+ Xmemset(tls, bp, invert, uint64(unsafe.Sizeof([257]uint8{})))
+ *(*uint8)(unsafe.Pointer(bp)) = uint8(0)
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') {
+ goto __94
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 46)) = uint8(1 - invert)
+ goto __95
+__94:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') {
+ goto __96
+ }
+ p++
+ *(*uint8)(unsafe.Pointer(bp + 94)) = uint8(1 - invert)
+__96:
+ ;
+__95:
+ ;
+__97:
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') {
+ goto __99
+ }
+ if !!(int32(*(*uint8)(unsafe.Pointer(p))) != 0) {
+ goto __100
+ }
+ goto fmt_fail
+__100:
+ ;
+ if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-' && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']') {
+ goto __101
+ }
+ c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1))))
+__102:
+ if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) {
+ goto __104
+ }
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+c))) = uint8(1 - invert)
+ goto __103
+__103:
+ c++
+ goto __102
+ goto __104
+__104:
+ ;
+__101:
+ ;
+ *(*uint8)(unsafe.Pointer(bp + uintptr(1+int32(*(*uint8)(unsafe.Pointer(p)))))) = uint8(1 - invert)
+ goto __98
+__98:
+ p++
+ goto __97
+ goto __99
+__99:
+ ;
+__90:
+ ;
+ wcs = uintptr(0)
+ s = uintptr(0)
+ i = uint64(0)
+ if t == 'c' {
+ k = uint64(uint32(width) + 1)
+ } else {
+ k = uint64(31)
+ }
+ if !(size == 1) {
+ goto __105
+ }
+ if !(alloc != 0) {
+ goto __107
+ }
+ wcs = Xmalloc(tls, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(wcs != 0) {
+ goto __109
+ }
+ goto alloc_fail
+__109:
+ ;
+ goto __108
+__107:
+ wcs = dest
+__108:
+ ;
+ *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{}
+__110:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __111
+ }
+ switch Xmbrtowc(tls, bp+260, func() uintptr { *(*uint8)(unsafe.Pointer(bp + 264)) = uint8(c); return bp + 264 }(), uint64(1), bp+268 /* &st */) {
+ case Uint64FromInt32(-1):
+ goto __113
+ case Uint64FromInt32(-2):
+ goto __114
+ }
+ goto __112
+__113:
+ goto input_fail
+__114:
+ goto __110
+__112:
+ ;
+ if !(wcs != 0) {
+ goto __115
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint64(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */))
+__115:
+ ;
+ if !(alloc != 0 && i == k) {
+ goto __116
+ }
+ k = k + (k + uint64(1))
+ tmp = Xrealloc(tls, wcs, k*size_t(unsafe.Sizeof(wchar_t(0))))
+ if !!(tmp != 0) {
+ goto __117
+ }
+ goto alloc_fail
+__117:
+ ;
+ wcs = tmp
+__116:
+ ;
+ goto __110
+__111:
+ ;
+ if !!(Xmbsinit(tls, bp+268) != 0) {
+ goto __118
+ }
+ goto input_fail
+__118:
+ ;
+ goto __106
+__105:
+ if !(alloc != 0) {
+ goto __119
+ }
+ s = Xmalloc(tls, k)
+ if !!(s != 0) {
+ goto __121
+ }
+ goto alloc_fail
+__121:
+ ;
+__122:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __123
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = uint8(c)
+ if !(i == k) {
+ goto __124
+ }
+ k = k + (k + uint64(1))
+ tmp1 = Xrealloc(tls, s, k)
+ if !!(tmp1 != 0) {
+ goto __125
+ }
+ goto alloc_fail
+__125:
+ ;
+ s = tmp1
+__124:
+ ;
+ goto __122
+__123:
+ ;
+ goto __120
+__119:
+ if !(AssignUintptr(&s, dest) != 0) {
+ goto __126
+ }
+__128:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __129
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = uint8(c)
+ goto __128
+__129:
+ ;
+ goto __127
+__126:
+__130:
+ if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())+1))) != 0) {
+ goto __131
+ }
+ goto __130
+__131:
+ ;
+__127:
+ ;
+__120:
+ ;
+__106:
+ ;
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __132
+ }
+ goto match_fail
+__132:
+ ;
+ if !(t == 'c' && (*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != off_t(width)) {
+ goto __133
+ }
+ goto match_fail
+__133:
+ ;
+ if !(alloc != 0) {
+ goto __134
+ }
+ if !(size == 1) {
+ goto __135
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = wcs
+ goto __136
+__135:
+ *(*uintptr)(unsafe.Pointer(dest)) = s
+__136:
+ ;
+__134:
+ ;
+ if !(t != 'c') {
+ goto __137
+ }
+ if !(wcs != 0) {
+ goto __138
+ }
+ *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = 0
+__138:
+ ;
+ if !(s != 0) {
+ goto __139
+ }
+ *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0)
+__139:
+ ;
+__137:
+ ;
+ goto __70
+__74:
+__75:
+__76:
+ base = 16
+ goto int_common
+__77:
+ base = 8
+ goto int_common
+__78:
+__79:
+ base = 10
+ goto int_common
+__80:
+ base = 0
+int_common:
+ x = X__intscan(tls, f, uint32(base), 0, 2*uint64(0x7fffffffffffffff)+uint64(1))
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __140
+ }
+ goto match_fail
+__140:
+ ;
+ if !(t == 'p' && dest != 0) {
+ goto __141
+ }
+ *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x))
+ goto __142
+__141:
+ store_int(tls, dest, size, x)
+__142:
+ ;
+ goto __70
+__81:
+__82:
+__83:
+__84:
+__85:
+__86:
+__87:
+__88:
+ y = X__floatscan(tls, f, size, 0)
+ if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) {
+ goto __143
+ }
+ goto match_fail
+__143:
+ ;
+ if !(dest != 0) {
+ goto __144
+ }
+ switch size {
+ case 0:
+ goto __146
+ case 1:
+ goto __147
+ case 2:
+ goto __148
+ }
+ goto __145
+__146:
+ *(*float32)(unsafe.Pointer(dest)) = float32(y)
+ goto __145
+__147:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__148:
+ *(*float64)(unsafe.Pointer(dest)) = y
+ goto __145
+__145:
+ ;
+__144:
+ ;
+ goto __70
+__70:
+ ;
+
+ pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1)
+ if !(dest != 0) {
+ goto __149
+ }
+ matches++
+__149:
+ ;
+ goto __4
+__4:
+ p++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(0 != 0) {
+ goto __150
+ }
+fmt_fail:
+alloc_fail:
+input_fail:
+ if !!(matches != 0) {
+ goto __151
+ }
+ matches--
+__151:
+ ;
+match_fail:
+ if !(alloc != 0) {
+ goto __152
+ }
+ Xfree(tls, s)
+ Xfree(tls, wcs)
+__152:
+ ;
+__150:
+ ;
+__153:
+ if !(__need_unlock != 0) {
+ goto __156
+ }
+ X__unlockfile(tls, f)
+__156:
+ ;
+ goto __154
+__154:
+ if 0 != 0 {
+ goto __153
+ }
+ goto __155
+__155:
+ ;
+ return matches
+}
+
+func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */
+ var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie
+ var k size_t = len + uint64(256)
+ var end uintptr = Xmemchr(tls, src, 0, k)
+ if end != 0 {
+ k = size_t((int64(end) - int64(src)) / 1)
+ }
+ if k < len {
+ len = k
+ }
+ Xmemcpy(tls, buf, src, len)
+ (*FILE)(unsafe.Pointer(f)).rpos = src + uintptr(len)
+ (*FILE)(unsafe.Pointer(f)).rend = src + uintptr(k)
+ (*FILE)(unsafe.Pointer(f)).cookie = src + uintptr(k)
+ return len
+}
+
+func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ }{string_read})), buf: s, lock: -1, cookie: s}
+ return Xvfscanf(tls, bp, fmt, ap)
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */
+ var l size_t = Xstrnlen(tls, d, n)
+ if l == n {
+ return l + Xstrlen(tls, s)
+ }
+ return l + Xstrlcpy(tls, d+uintptr(l), s, n-l)
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */
+ var d0 uintptr
+ var wd uintptr
+ var ws uintptr
+ d0 = d
+
+ if !!(int32(PostDecUint64(&n, 1)) != 0) {
+ goto __1
+ }
+ goto finish
+__1:
+ ;
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) {
+ goto __2
+ }
+__3:
+ if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) {
+ goto __5
+ }
+ goto __4
+__4:
+ n--
+ s++
+ d++
+ goto __3
+ goto __5
+__5:
+ ;
+ if !(n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) {
+ goto __6
+ }
+ wd = d
+ ws = s
+__7:
+ if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) {
+ goto __9
+ }
+ *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws))
+ goto __8
+__8:
+ n = n - size_t(unsafe.Sizeof(size_t(0)))
+ ws += 8
+ wd += 8
+ goto __7
+ goto __9
+__9:
+ ;
+ d = wd
+ s = ws
+__6:
+ ;
+__2:
+ ;
+__10:
+ if !(n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) {
+ goto __12
+ }
+ goto __11
+__11:
+ n--
+ s++
+ d++
+ goto __10
+ goto __12
+__12:
+ ;
+ *(*uint8)(unsafe.Pointer(d)) = uint8(0)
+finish:
+ return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s)
+}
+
+func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */
+ var l uintptr = _l
+ var r uintptr = _r
+ if !(int32(PostDecUint64(&n, 1)) != 0) {
+ return 0
+ }
+__1:
+ if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) {
+ goto __3
+ }
+ goto __2
+__2:
+ l++
+ r++
+ n--
+ goto __1
+ goto __3
+__3:
+ ;
+ return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r))))
+}
+
+func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */
+ return Xstrncasecmp(tls, l, r, n)
+}
+
+func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */
+ var a uintptr = d
+ d += uintptr(Xstrlen(tls, d))
+ for n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0 {
+ n--
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1)))
+ }
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = uint8(0)
+ return a
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*uint8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*uint8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*uint8)(unsafe.Pointer(s))) == int32(*(*uint8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*uint8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*uint8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */
+ if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) {
+ return uintptr(0)
+ }
+ s += uintptr(Xstrspn(tls, s, sep))
+ if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) {
+ return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0))
+ }
+ _sp = s + uintptr(Xstrcspn(tls, s, sep))
+ if *(*uint8)(unsafe.Pointer(_sp)) != 0 {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = uint8(0)
+ } else {
+ _sp = uintptr(0)
+ }
+ return s
+}
+
+var _sp uintptr /* strtok.c:5:14: */
+
+func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */
+ return *(*int32)(unsafe.Pointer(a + 6*4))
+}
+
+func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */
+ *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer(a + 6*4))
+ return 0
+}
+
+//
+// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_guardsize;
+// return 0;
+// }
+//
+// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit)
+// {
+// *inherit = a->_a_sched;
+// return 0;
+// }
+//
+// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param)
+// {
+// param->sched_priority = a->_a_prio;
+// return 0;
+// }
+//
+// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy)
+// {
+// *policy = a->_a_policy;
+// return 0;
+// }
+//
+// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope)
+// {
+// *scope = PTHREAD_SCOPE_SYSTEM;
+// return 0;
+// }
+//
+// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size)
+// {
+// if (!a->_a_stackaddr)
+// return EINVAL;
+// *size = a->_a_stacksize;
+// *addr = (void *)(a->_a_stackaddr - *size);
+// return 0;
+// }
+//
+// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size)
+// {
+// *size = a->_a_stacksize;
+// return 0;
+// }
+//
+// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = !!a->__attr;
+// return 0;
+// }
+//
+// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
+// {
+// *clk = a->__attr & 0x7fffffff;
+// return 0;
+// }
+//
+// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr>>31;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol)
+// {
+// *protocol = PTHREAD_PRIO_NONE;
+// return 0;
+// }
+// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr / 128U % 2;
+// return 0;
+// }
+//
+// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
+// {
+// *robust = a->__attr / 4U % 2;
+// return 0;
+// }
+
+func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */
+ return int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))
+}
+
+// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
+// {
+// *type = a->__attr & 3;
+// return 0;
+// }
+//
+// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
+// {
+// *pshared = a->__attr[0];
+// return 0;
+// }
+
+func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */
+ if uint32(state) > 1 {
+ return 22
+ }
+ *(*int32)(unsafe.Pointer(a + 6*4)) = state
+ return 0
+}
+
+func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */
+ return *(*int32)(unsafe.Pointer(m)) & 15
+}
+
+// int __pthread_mutex_lock(pthread_mutex_t *m)
+// {
+// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
+// && !a_cas(&m->_m_lock, 0, EBUSY))
+// return 0;
+//
+// return __pthread_mutex_timedlock(m, 0);
+// }
+//
+// weak_alias(__pthread_mutex_lock, pthread_mutex_lock);
+
+func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */
+ return 0
+}
+
+func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */
+ *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{}
+ return 0
+}
+
+func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */
+ if uint32(type1) > uint32(2) {
+ return 22
+ }
+ (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr&Uint32FromInt32(CplInt32(3)) | uint32(type1)
+ return 0
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptable)) + 0)) = uintptr(unsafe.Pointer(&table)) + uintptr(128)*2 // __ctype_b_loc.c:36:45:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_netbsd_amd64.go b/vendor/modernc.org/libc/musl_netbsd_amd64.go
new file mode 100644
index 00000000..9aeb094a
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_netbsd_amd64.go
@@ -0,0 +1,4324 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_netbsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../netbsd/ctype_.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+type ssize_t = int64 /* ctype_.cpp.c:111:18 */
+
+type __sfpos = struct {
+ _pos int64
+ _mbstate_in struct {
+ __mbstateL int64
+ _ [120]byte
+ }
+ _mbstate_out struct {
+ __mbstateL int64
+ _ [120]byte
+ }
+} /* ctype_.cpp.c:121:9 */
+
+type fpos_t = __sfpos /* ctype_.cpp.c:124:3 */
+type __sbuf = struct {
+ _base uintptr
+ _size int32
+ _ [4]byte
+} /* ctype_.cpp.c:126:1 */
+
+type __sFILE = struct {
+ _p uintptr
+ _r int32
+ _w int32
+ _flags uint16
+ _file int16
+ _ [4]byte
+ _bf struct {
+ _base uintptr
+ _size int32
+ _ [4]byte
+ }
+ _lbfsize int32
+ _ [4]byte
+ _cookie uintptr
+ _close uintptr
+ _read uintptr
+ _seek uintptr
+ _write uintptr
+ _ext struct {
+ _base uintptr
+ _size int32
+ _ [4]byte
+ }
+ _up uintptr
+ _ur int32
+ _ubuf [3]uint8
+ _nbuf [1]uint8
+ _flush uintptr
+ _lb_unused [8]int8
+ _blksize int32
+ _ [4]byte
+ _offset int64
+} /* ctype_.cpp.c:131:9 */
+
+type FILE = __sFILE /* ctype_.cpp.c:165:3 */
+
+type off_t = int64 /* ctype_.cpp.c:365:17 */
+
+type locale_t = uintptr /* ctype_.cpp.c:514:24 */
+var X_C_ctype_tab_ = [257]uint16{
+ 0: uint16(0),
+
+ 1: uint16(0x0002),
+ 2: uint16(0x0002),
+ 3: uint16(0x0002),
+ 4: uint16(0x0002),
+
+ 5: uint16(0x0002),
+ 6: uint16(0x0002),
+ 7: uint16(0x0002),
+ 8: uint16(0x0002),
+
+ 9: uint16(0x0002),
+ 10: (uint16((0x0200 |
+ 0x0002) |
+ 0x0040)),
+ 11: (uint16(0x0002 |
+ 0x0040)),
+ 12: (uint16(0x0002 |
+ 0x0040)),
+
+ 13: (uint16(0x0002 |
+ 0x0040)),
+ 14: (uint16(0x0002 |
+ 0x0040)),
+ 15: uint16(0x0002),
+ 16: uint16(0x0002),
+
+ 17: uint16(0x0002),
+ 18: uint16(0x0002),
+ 19: uint16(0x0002),
+ 20: uint16(0x0002),
+
+ 21: uint16(0x0002),
+ 22: uint16(0x0002),
+ 23: uint16(0x0002),
+ 24: uint16(0x0002),
+
+ 25: uint16(0x0002),
+ 26: uint16(0x0002),
+ 27: uint16(0x0002),
+ 28: uint16(0x0002),
+
+ 29: uint16(0x0002),
+ 30: uint16(0x0002),
+ 31: uint16(0x0002),
+ 32: uint16(0x0002),
+
+ 33: (uint16((0x0200 |
+ 0x0400) |
+ 0x0040)),
+ 34: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 35: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 36: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 37: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 38: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 39: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 40: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 41: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 42: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 43: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 44: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 45: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 46: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 47: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 48: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 49: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 50: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 51: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 52: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+
+ 53: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 54: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 55: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 56: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+
+ 57: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 58: (uint16(((0x0004 |
+ 0x0008) |
+ 0x0400) |
+ 0x0100)),
+ 59: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 60: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 61: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 62: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 63: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 64: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 65: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 66: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080) |
+ 0x0100)),
+ 67: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080) |
+ 0x0100)),
+ 68: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080) |
+ 0x0100)),
+
+ 69: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080) |
+ 0x0100)),
+ 70: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080) |
+ 0x0100)),
+ 71: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080) |
+ 0x0100)),
+ 72: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+
+ 73: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 74: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 75: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 76: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+
+ 77: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 78: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 79: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 80: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+
+ 81: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 82: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 83: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 84: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+
+ 85: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 86: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 87: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 88: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+
+ 89: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 90: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 91: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0400) |
+ 0x0080)),
+ 92: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 93: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 94: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 95: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 96: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 97: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 98: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400) |
+ 0x0100)),
+ 99: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400) |
+ 0x0100)),
+ 100: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400) |
+ 0x0100)),
+
+ 101: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400) |
+ 0x0100)),
+ 102: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400) |
+ 0x0100)),
+ 103: (uint16((((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400) |
+ 0x0100)),
+ 104: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+
+ 105: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 106: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 107: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 108: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+
+ 109: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 110: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 111: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 112: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+
+ 113: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 114: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 115: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 116: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+
+ 117: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 118: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 119: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 120: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+
+ 121: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 122: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 123: (uint16(((0x0001 |
+ 0x0008) |
+ 0x0010) |
+ 0x0400)),
+ 124: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+
+ 125: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 126: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 127: (uint16((0x0008 |
+ 0x0400) |
+ 0x0020)),
+ 128: uint16(0x0002),
+} /* ctype_.cpp.c:601:22 */
+var X_ctype_tab_ uintptr = 0 /* ctype_.cpp.c:2233:22 */
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return (Bool32((_c == ' ') || ((uint32(_c) - uint32('\t')) < uint32(5))))
+}
+
+type locale_t1 = uintptr /* alltypes.h:343:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return (Bool32((func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return (Bool32((((uint32(c)) | uint32(32)) - uint32('a')) < uint32(26)))
+ }() != 0) || (func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return (Bool32(((uint32(c)) - uint32('0')) < uint32(10)))
+ }() != 0)))
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t1) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return (Bool32(((uint32(c) | uint32(32)) - uint32('a')) < uint32(26)))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t1) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return (Bool32((uint32(c) - uint32('0')) < uint32(10)))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t1) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+type uintptr_t = uint64 /* alltypes.h:55:24 */
+
+type intptr_t = int64 /* alltypes.h:70:15 */
+
+type int8_t = int8 /* alltypes.h:96:25 */
+
+type int16_t = int16 /* alltypes.h:101:25 */
+
+type int32_t = int32 /* alltypes.h:106:25 */
+
+type int64_t = int64 /* alltypes.h:111:25 */
+
+type intmax_t = int64 /* alltypes.h:116:25 */
+
+type uint8_t = uint8 /* alltypes.h:121:25 */
+
+type uint16_t = uint16 /* alltypes.h:126:25 */
+
+type uint32_t = uint32 /* alltypes.h:131:25 */
+
+type uint64_t = uint64 /* alltypes.h:136:25 */
+
+type uintmax_t = uint64 /* alltypes.h:146:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:320:9 */
+
+type FILE1 = _IO_FILE /* alltypes.h:320:25 */
+
+type va_list = uintptr /* alltypes.h:326:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t1 = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:29:15 */
+
+type double_t = float64 /* alltypes.h:34:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp /* &__u */)) = __f
+ return *(*uint32)(unsafe.Pointer(bp /* &__u */))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp /* &__u */)) = __f
+ return *(*uint64)(unsafe.Pointer(bp /* &__u */))
+}
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if (c == '+') || (c == '-') {
+ neg = (Bool32(c == '-'))
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if ((uint32(c - '0')) >= 10) && (pok != 0) {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if (uint32(c - '0')) >= 10 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return (-0x7fffffffffffffff - int64(1))
+ }
+ for x = 0; ((uint32(c - '0')) < 10) && (x < (0x7fffffff / 10)); c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = (((10 * x) + c) - '0')
+ }
+ for y = int64(x); ((uint32(c - '0')) < 10) && (y < (0x7fffffffffffffff / int64(100))); c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = (((int64(10) * y) + int64(c)) - int64('0'))
+ }
+ for ; (uint32(c - '0')) < 10; c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = ((-emin - bits) + 3)
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)) = uint32_t(0)
+ for ; ((uint32(c - '0')) < 10) || (c == '.'); c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < (128 - 3) {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = (((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) * uint32_t(10)) + uint32_t(c)) - uint32_t('0'))
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = (uint32_t(c - '0'))
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = ((128 - 4) * 9)
+ *(*uint32_t)(unsafe.Pointer(bp /* &x */ + 124*4)) |= (uint32_t(1))
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if (gotdig != 0) && ((c | 32) == 'e') {
+ e10 = scanexp(tls, f, pok)
+ if e10 == (-0x7fffffffffffffff - int64(1)) {
+ if pok != 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + (e10)
+ } else if c >= 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */))) != 0) {
+ return (float64(sign) * 0.0)
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if ((lrp == dc) && (dc < int64(10))) && ((bits > 30) || ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)) >> bits) == uint32_t(0))) {
+ return (float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */))))
+ }
+ if lrp > (int64(-emin / 2)) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ return ((float64(sign) * 1.79769313486231570815e+308) * 1.79769313486231570815e+308)
+ }
+ if lrp < (int64(emin - (2 * 53))) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ return ((float64(sign) * 2.22507385850720138309e-308) * 2.22507385850720138309e-308)
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x */ + uintptr(k)*4)) *= (uint32_t(10))
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if ((lnz < 9) && (lnz <= rp)) && (rp < 18) {
+ if rp == 9 {
+ return (float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */))))
+ }
+ if rp < 9 {
+ return ((float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)))) / float64(_sp10s[(8-rp)]))
+ }
+ var bitlim int32 = (bits - (3 * (rp - 9)))
+ if (bitlim > 30) || ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)) >> bitlim) == uint32_t(0)) {
+ return ((float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)))) * float64(_sp10s[(rp-10)]))
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr((z-1))*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if (rp % 9) != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = (rp % 9)
+ } else {
+ rpm9 = ((rp % 9) + 9)
+ }
+ var p10 int32 = _sp10s[(8 - rpm9)]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) % uint32_t(p10))
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) / uint32_t(p10)) + carry)
+ carry = ((uint32_t(1000000000 / p10)) * tmp)
+ if (k == a) && !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) != 0) {
+ a = ((a + 1) & (128 - 1))
+ rp = rp - (9)
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for (rp < (9 * 2)) || ((rp == (9 * 2)) && (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(a)*4)) < _sth[0])) {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - (29)
+ for k = ((z - 1) & (128 - 1)); ; k = ((k - 1) & (128 - 1)) {
+ var tmp uint64_t = ((uint64_t(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) << 29) + uint64_t(carry))
+ if tmp > uint64(1000000000) {
+ carry = (uint32_t(tmp / uint64(1000000000)))
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = (uint32_t(tmp % uint64(1000000000)))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if ((k == ((z - 1) & (128 - 1))) && (k != a)) && !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + (9)
+ a = ((a - 1) & (128 - 1))
+ if a == z {
+ z = ((z - 1) & (128 - 1))
+ *(*uint32_t)(unsafe.Pointer(bp /* &x */ + uintptr(((z-1)&(128-1)))*4)) |= (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(z)*4)))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = ((a + i) & (128 - 1))
+ if (k == z) || (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) < _sth[i]) {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((a+i)&(128-1)))*4)) > _sth[i] {
+ break
+ }
+ }
+ if (i == 2) && (rp == (9 * 2)) {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > (9 + (9 * 2)) {
+ sh = 9
+ }
+ e2 = e2 + (sh)
+ for k = a; k != z; k = ((k + 1) & (128 - 1)) {
+ var tmp uint32_t = (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) & (uint32_t((int32(1) << sh) - 1)))
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) >> sh) + carry)
+ carry = ((uint32_t(int32(1000000000) >> sh)) * tmp)
+ if (k == a) && !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) != 0) {
+ a = ((a + 1) & (128 - 1))
+ i--
+ rp = rp - (9)
+ }
+ }
+ if carry != 0 {
+ if ((z + 1) & (128 - 1)) != a {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(z)*4)) = carry
+ z = ((z + 1) & (128 - 1))
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x */ + uintptr(((z-1)&(128-1)))*4)) |= (uint32_t(1))
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if ((a + i) & (128 - 1)) == z {
+ *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((AssignInt32(&z, ((z+1)&(128-1))))-1))*4)) = uint32_t(0)
+ }
+ y = ((1000000000.0 * y) + float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((a+i)&(128-1)))*4))))
+ }
+
+ y = y * (float64(sign))
+
+ // Limit precision for denormal results
+ if bits > ((53 + e2) - emin) {
+ bits = ((53 + e2) - emin)
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), (((2*53)-bits)-1)), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), (53-bits)))
+ y = y - (frac)
+ y = y + (bias)
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if ((a + i) & (128 - 1)) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((a+i)&(128-1)))*4))
+ if (t < uint32_t(500000000)) && ((t != 0) || ((((a + i) + 1) & (128 - 1)) != z)) {
+ frac = frac + (0.25 * float64(sign))
+ } else if t > uint32_t(500000000) {
+ frac = frac + (0.75 * float64(sign))
+ } else if t == uint32_t(500000000) {
+ if (((a + i) + 1) & (128 - 1)) == z {
+ frac = frac + (0.5 * float64(sign))
+ } else {
+ frac = frac + (0.75 * float64(sign))
+ }
+ }
+ if ((53 - bits) >= 2) && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + (frac)
+ y = y - (bias)
+
+ if ((e2 + 53) & 0x7fffffff) > (emax - 5) {
+ if Xfabsl(tls, y) >= (float64(float64(2)) / 2.22044604925031308085e-16) {
+ if (denormal != 0) && (bits == ((53 + e2) - emin)) {
+ denormal = 0
+ }
+ y = y * (0.5)
+ e2++
+ }
+ if ((e2 + 53) > emax) || ((denormal != 0) && (frac != 0)) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; (((uint32(c - '0')) < 10) || ((uint32((c | 32) - 'a')) < 6)) || (c == '.'); c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = (((c | 32) + 10) - 'a')
+ } else {
+ d = (c - '0')
+ }
+ if dc < int64(8) {
+ x = ((x * uint32_t(16)) + uint32_t(d))
+ } else if dc < (int64((53 / 4) + 1)) {
+ y = y + (float64(d) * (AssignDivFloat64(&scale, float64(16))))
+ } else if (d != 0) && !(gottail != 0) {
+ y = y + (0.5 * scale)
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return (float64(sign) * 0.0)
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * (uint32_t(16))
+ dc++
+ }
+ if (c | 32) == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == (-0x7fffffffffffffff - int64(1)) {
+ if pok != 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + ((int64(4) * rp) - int64(32))
+
+ if !(x != 0) {
+ return (float64(sign) * 0.0)
+ }
+ if e2 > int64(-emin) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ return ((float64(sign) * 1.79769313486231570815e+308) * 1.79769313486231570815e+308)
+ }
+ if e2 < (int64(emin - (2 * 53))) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ return ((float64(sign) * 2.22507385850720138309e-308) * 2.22507385850720138309e-308)
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + (x)
+ y = y + (y)
+ }
+ e2--
+ }
+
+ if int64(bits) > ((int64(32) + e2) - int64(emin)) {
+ bits = (int32((int64(32) + e2) - int64(emin)))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), (((32+53)-bits)-1)), float64(sign))
+ }
+
+ if ((bits < 32) && (y != 0)) && !((x & uint32_t(1)) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = ((bias + (float64(sign) * float64(x))) + (float64(sign) * y))
+ y = y - (bias)
+
+ if !(y != 0) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = ((-125) - bits)
+ break
+ case 1:
+ bits = 53
+ emin = ((-1021) - bits)
+ break
+ case 2:
+ bits = 53
+ emin = ((-1021) - bits)
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if (c == '+') || (c == '-') {
+ sign = sign - (2 * (Bool32(c == '-')))
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); (i < uint64(8)) && ((c | 32) == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i))))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if ((i == uint64(3)) || (i == uint64(8))) || ((i > uint64(3)) && (pok != 0)) {
+ if i != uint64(8) {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return (float64(float32(sign) * X__builtin_inff(tls)))
+ }
+ if !(i != 0) {
+ for i = uint64(0); (i < uint64(3)) && ((c | 32) == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i))))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if (func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()) != '(' {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+13 /* "" */))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if ((((uint32(c - '0')) < 10) || ((uint32(c - 'A')) < 26)) || ((uint32(c - 'a')) < 26)) || (c == '_') {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+13 /* "" */))
+ }
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+13 /* "" */))
+ }
+ return float64(X__builtin_nanf(tls, ts+13 /* "" */))
+ }
+
+ if i != 0 {
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if (c | 32) == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = (uintptr(unsafe.Pointer(&table)) + uintptr(1))
+ neg = 0
+ if !((base > uint32(36)) || (base == uint32(1))) {
+ goto __1
+ }
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !((c == '+') || (c == '-')) {
+ goto __4
+ }
+ neg = -(Bool32(c == '-'))
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !(((base == uint32(0)) || (base == uint32(16))) && (c == '0')) {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !((c | 32) == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(((uint32(c - '0')) < 10) && (x <= ((0xffffffff / uint32(10)) - uint32(1)))) {
+ goto __19
+ }
+ x = ((x * uint32(10)) + (uint32(c - '0')))
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !((((uint32(c - '0')) < 10) && (y <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) / uint64(10)))) && ((uint64(10) * y) <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) - (uint64(c - '0'))))) {
+ goto __22
+ }
+ y = ((y * uint64(10)) + (uint64(c - '0')))
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !((uint32(c - '0')) >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !(!((base & (base - uint32(1))) != 0)) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 14 /* "\x00\x01\x02\x04\a\x03\x06\x05" */ + uintptr((((uint32(0x17) * base) >> 5) & uint32(7))))))
+ x = uint32(0)
+__26:
+ if !((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (x <= (0xffffffff / uint32(32)))) {
+ goto __28
+ }
+ x = ((x << bs) | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (y <= (uint64(((2 * uint64(0x7fffffffffffffff)) + uint64(1))) >> bs))) {
+ goto __31
+ }
+ y = ((y << bs) | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (x <= ((0xffffffff / uint32(36)) - uint32(1)))) {
+ goto __34
+ }
+ x = ((x * base) + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (y <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) / uint64(base)))) && ((uint64(base) * y) <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) - uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))))) {
+ goto __37
+ }
+ y = ((y * uint64(base)) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ y = lim
+ if !((lim & uint64(1)) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) {
+ (*FILE1)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!((lim & uint64(1)) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ return (lim - uint64(1))
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return ((y ^ uint64(neg)) - uint64(neg))
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE1)(unsafe.Pointer(f)).shlim = lim
+ (*FILE1)(unsafe.Pointer(f)).shcnt = ((int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1)
+ // If lim is nonzero, rend must be a valid pointer.
+ if (lim != 0) && (((int64((*FILE1)(unsafe.Pointer(f)).rend) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) > lim) {
+ (*FILE1)(unsafe.Pointer(f)).shend = ((*FILE1)(unsafe.Pointer(f)).rpos + uintptr(lim))
+ } else {
+ (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = ((*FILE1)(unsafe.Pointer((f))).shcnt + ((int64((*FILE1)(unsafe.Pointer((f))).rpos) - int64((*FILE1)(unsafe.Pointer((f))).buf)) / 1))
+ if (((*FILE1)(unsafe.Pointer(f)).shlim != 0) && (cnt >= (*FILE1)(unsafe.Pointer(f)).shlim)) || ((AssignInt32(&c, X__uflow(tls, f))) < 0) {
+ (*FILE1)(unsafe.Pointer(f)).shcnt = (((int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) + cnt)
+ (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rpos
+ (*FILE1)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if ((*FILE1)(unsafe.Pointer(f)).shlim != 0) && (((int64((*FILE1)(unsafe.Pointer(f)).rend) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) > ((*FILE1)(unsafe.Pointer(f)).shlim - cnt)) {
+ (*FILE1)(unsafe.Pointer(f)).shend = ((*FILE1)(unsafe.Pointer(f)).rpos + uintptr(((*FILE1)(unsafe.Pointer(f)).shlim - cnt)))
+ } else {
+ (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rend
+ }
+ (*FILE1)(unsafe.Pointer(f)).shcnt = (((int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) + cnt)
+ if (*FILE1)(unsafe.Pointer(f)).rpos <= (*FILE1)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE1)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return ((((__x >> 24) | ((__x >> 8) & uint32_t(0xff00))) | ((__x << 8) & uint32_t(0xff0000))) | (__x << 24))
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+var toint double_t = (float64(float64(1)) / 2.22044604925031308085e-16) /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp /* u */)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = (int32((*(*uint64_t)(unsafe.Pointer(bp /* &u */)) >> 52) & uint64(0x7ff)))
+ var s int32 = (int32(*(*uint64_t)(unsafe.Pointer(bp /* &u */)) >> 63))
+ var y double_t
+
+ if e >= (0x3ff + 52) {
+ return x
+ }
+ if s != 0 {
+ y = ((x - toint) + toint)
+ } else {
+ y = ((x + toint) - toint)
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * (0x1p1023)
+ n = n - (1023)
+ if n > 1023 {
+ y = y * (0x1p1023)
+ n = n - (1023)
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp /* &u */)) = ((uint64_t(0x3ff + n)) << 52)
+ x = (y * *(*float64)(unsafe.Pointer(bp /* &u */)))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:41:54 */
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type pid_t = int32 /* alltypes.h:235:13 */
+
+type uid_t = uint32 /* alltypes.h:245:18 */
+
+type gid_t = uint32 /* alltypes.h:250:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:355:1 */
+
+type socklen_t = uint32 /* alltypes.h:361:18 */
+
+type sa_family_t = uint16 /* alltypes.h:366:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = (p - uintptr((uint64((uintptr(0) /* &.ai */)))))
+ b -= 88 * (uintptr((*aibuf)(unsafe.Pointer(b)).slot))
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82 /* &.ref */, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:85:16 */
+
+type clockid_t = int32 /* alltypes.h:214:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:229:1 */
+
+type pthread_t = uintptr /* alltypes.h:273:26 */
+
+type pthread_once_t = int32 /* alltypes.h:279:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:284:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:289:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:349:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:349:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:372:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:377:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:387:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:397:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:402:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:209:14 */
+
+type clock_t = int64 /* alltypes.h:219:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* pthread.h:206:1 */
+
+type useconds_t = uint32 /* alltypes.h:260:18 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = ((((((0x01 | 0x02) | 0x04) | 0x08) | 0x10) | 0x20) | 0x400)
+ if (flags & mask) != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if (flags & 0x20) != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp /* &ports[0] */, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8 /* &addrs[0] */, bp+1352 /* &canon[0] */, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = (nservs * naddrs)
+ canon_len = int32(Xstrlen(tls, bp+1352 /* &canon[0] */))
+ out = Xcalloc(tls, uint64(1), (((uint64(nais) * uint64(unsafe.Sizeof(aibuf{}))) + uint64(canon_len)) + uint64(1)))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = (out + uintptr(nais)*88)
+ Xmemcpy(tls, outcanon, bp+1352 /* &canon[0] */, (uint64(canon_len + 1)))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 /* &addrs */ + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp /* &ports */ + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp /* &ports */ + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8 /* &addrs */ +uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = (out + uintptr(k)*88 + 48 /* &.sa */)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr((k-1))*88)).ai.ai_next = (out + uintptr(k)*88 /* &.ai */)
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 /* &addrs */ + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp /* &ports */ +uintptr(j)*4)).port)
+ Xmemcpy(tls, (out + uintptr(k)*88 + 48 /* &.sa */ /* &.sin */ + 4 /* &.sin_addr */), (bp + 8 /* &addrs */ + uintptr(i)*28 + 8 /* &.addr */), uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp /* &ports */ +uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 /* &addrs */ + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, (out + uintptr(k)*88 + 48 /* &.sa */ /* &.sin6 */ + 8 /* &.sin6_addr */), (bp + 8 /* &addrs */ + uintptr(i)*28 + 8 /* &.addr */), uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = (out /* &.ai */)
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = (err == 34) {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, (size+uint64(1))))
+ if !(_sh != 0) {
+ (*(*int32)(unsafe.Pointer(X__h_errno_location(tls)))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ (_sh + uintptr(1)*32), (size - size_t(unsafe.Sizeof(hostent{}))), bp /* &res */, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = (err == 34) {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, (size+uint64(1))))
+ if !(_sh1 != 0) {
+ (*(*int32)(unsafe.Pointer(X__h_errno_location(tls)))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ (_sh1 + uintptr(1)*32), (size - size_t(unsafe.Sizeof(hostent{}))), bp /* &res */, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp /* &addrs[0] */, bp+1344 /* &canon[0] */, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = (-uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))
+
+ need = (uint64(4) * uint64(unsafe.Sizeof(uintptr(0))))
+ need = need + ((uint64(cnt + 1)) * (uint64(unsafe.Sizeof(uintptr(0))) + uint64((*hostent)(unsafe.Pointer(h)).h_length)))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344 /* &canon[0] */) + uint64(1))
+ need = need + (align)
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += (uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0)))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += (uintptr((uint64(cnt + 1)) * uint64(unsafe.Sizeof(uintptr(0)))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp /* &addrs */ +uintptr(i)*28+8 /* &.addr */, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344 /* &canon[0] */)
+ buf += (uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1)))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += (uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1)))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]int8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += (uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0)))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = (int8(uint32('0') + (x % uint32(10))))
+ x = x / (uint32(10))
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+23, /* "%d.%d.%d.%d.in-a..." */
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[(int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i)))) & 15)]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[(int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i)))) >> 4)]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+48 /* "ip6.arpa" */)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 57 /* "0123456789abcdef" */)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+74 /* "/etc/hosts" */, ts+85 /* "rb" */)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, (bp /* &atmp[0] */ + uintptr(12)), a, uint64(4))
+ Xmemcpy(tls, bp /* &atmp[0] */, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16 /* &line[0] */, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16 /* &line[0] */, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ (*(*int8)(unsafe.Pointer(p)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528 /* &iplit */, bp+16 /* &line[0] */, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528 /* &iplit */)).family == 2 {
+ Xmemcpy(tls, ((bp + 528 /* &iplit */ + 8 /* &.addr */) + uintptr(12)), bp+528 /* &iplit */ +8 /* &.addr */, uint64(4))
+ Xmemcpy(tls, bp+528 /* &iplit */ +8 /* &.addr */, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if (Xmemcmp(tls, a, bp+528 /* &iplit */ +8 /* &.addr */, uint64(16)) != 0) || ((*address)(unsafe.Pointer(bp+528 /* &iplit */)).scopeid != scopeid) {
+ continue
+ }
+
+ for ; (*(*int8)(unsafe.Pointer(p)) != 0) && (__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ for z = p; (*(*int8)(unsafe.Pointer(z)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if ((int64(z) - int64(p)) / 1) < int64(256) {
+ Xmemcpy(tls, buf, p, (uint64(((int64(z) - int64(p)) / 1) + int64(1))))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32 /* &z */, 0)
+ if ((*(*uintptr)(unsafe.Pointer(bp + 32 /* z */)) == s) || ((*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32 /* z */)))) != 0) && (int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32 /* z */))))) != '.'))) || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return (Bool32(((uint32(*(*int8)(unsafe.Pointer(s)))) - uint32('0')) < uint32(10)))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32 /* z */))))) != 0) {
+ break
+ }
+ s = (*(*uintptr)(unsafe.Pointer(bp + 32 /* z */)) + uintptr(1))
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 1*8)) = (*(*uint64)(unsafe.Pointer(bp /* &a[0] */)) & uint64(0xffffff))
+ AssignShrPtrUint64(bp /* &a */, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 2*8)) = (*(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 1*8)) & uint64(0xffff))
+ AssignShrPtrUint64(bp /* &a */ +1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 3*8)) = (*(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 2*8)) & uint64(0xff))
+ AssignShrPtrUint64(bp /* &a */ +2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+101 /* "%d.%d.%d.%d" */, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176 /* &buf[0] */, uint64(unsafe.Sizeof([100]int8{})),
+ ts+113, /* "%x:%x:%x:%x:%x:%..." */
+ VaList(bp+32, ((256*int32(*(*uint8)(unsafe.Pointer(a))))+int32(*(*uint8)(unsafe.Pointer(a + 1)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 2))))+int32(*(*uint8)(unsafe.Pointer(a + 3)))),
+ ((256*int32(*(*uint8)(unsafe.Pointer(a + 4))))+int32(*(*uint8)(unsafe.Pointer(a + 5)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 6))))+int32(*(*uint8)(unsafe.Pointer(a + 7)))),
+ ((256*int32(*(*uint8)(unsafe.Pointer(a + 8))))+int32(*(*uint8)(unsafe.Pointer(a + 9)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 10))))+int32(*(*uint8)(unsafe.Pointer(a + 11)))),
+ ((256*int32(*(*uint8)(unsafe.Pointer(a + 12))))+int32(*(*uint8)(unsafe.Pointer(a + 13)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 14))))+int32(*(*uint8)(unsafe.Pointer(a + 15))))))
+ } else {
+ Xsnprintf(tls, bp+176 /* &buf[0] */, uint64(unsafe.Sizeof([100]int8{})),
+ ts+137, /* "%x:%x:%x:%x:%x:%..." */
+ VaList(bp+96, ((256*int32(*(*uint8)(unsafe.Pointer(a))))+int32(*(*uint8)(unsafe.Pointer(a + 1)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 2))))+int32(*(*uint8)(unsafe.Pointer(a + 3)))),
+ ((256*int32(*(*uint8)(unsafe.Pointer(a + 4))))+int32(*(*uint8)(unsafe.Pointer(a + 5)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 6))))+int32(*(*uint8)(unsafe.Pointer(a + 7)))),
+ ((256*int32(*(*uint8)(unsafe.Pointer(a + 8))))+int32(*(*uint8)(unsafe.Pointer(a + 9)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 10))))+int32(*(*uint8)(unsafe.Pointer(a + 11)))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 /* &buf[0] */ + uintptr(i))) != 0; i++ {
+ if (i != 0) && (int32(*(*int8)(unsafe.Pointer(bp + 176 /* &buf[0] */ + uintptr(i)))) != ':') {
+ continue
+ }
+ j = int32(Xstrspn(tls, (bp + 176 /* &buf[0] */ + uintptr(i)), ts+167 /* ":0" */))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 /* &buf[0] */ + uintptr(best))) = AssignPtrInt8(bp+176 /* &buf */ +uintptr((best+1)), int8(':'))
+ Xmemmove(tls, ((bp + 176 /* &buf[0] */ + uintptr(best)) + uintptr(2)), ((bp + 176 /* &buf[0] */ + uintptr(best)) + uintptr(max)), (uint64(((i - best) - max) + 1)))
+ }
+ if Xstrlen(tls, bp+176 /* &buf[0] */) < size_t(l) {
+ Xstrcpy(tls, s, bp+176 /* &buf[0] */)
+ return s
+ }
+ break
+ default:
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 97
+ return uintptr(0)
+ }
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if (c - uint32('0')) < uint32(10) {
+ return (int32(c - uint32('0')))
+ }
+ c = c | (uint32(32))
+ if (c - uint32('a')) < uint32(6) {
+ return (int32((c - uint32('a')) + uint32(10)))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); (j < 3) && (func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return (Bool32(((uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) - uint32('0')) < uint32(10)))
+ }() != 0); j++ {
+ v = (((10 * v) + int32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) - '0')
+ }
+ if ((j == 0) || ((j > 1) && (int32(*(*int8)(unsafe.Pointer(s))) == '0'))) || (v > 255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if (int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0) && (i == 3) {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += (uintptr(j + 1))
+ }
+ return 0
+ } else if af != 10 {
+ (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 97
+ return -1
+ }
+
+ if (int32(*(*int8)(unsafe.Pointer(s))) == ':') && (int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':') {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if (int32(*(*int8)(unsafe.Pointer(s))) == ':') && (brk < 0) {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr((i&7))*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); (j < 4) && ((AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))))) >= 0); j++ {
+ v = ((16 * v) + d)
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr((i&7))*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && ((brk >= 0) || (i == 7)) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if (int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.') || ((i < 6) && (brk < 0)) {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += (uintptr(j + 1))
+ }
+ if brk >= 0 {
+ Xmemmove(tls, (((bp /* &ip[0] */ + uintptr(brk)*2) + uintptr(7)*2) - uintptr(i)*2), (bp /* &ip[0] */ + uintptr(brk)*2), (uint64(2 * ((i + 1) - brk))))
+ for j = 0; j < (7 - i); j++ {
+ *(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr((brk+j))*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = (uint8(int32(*(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr(j)*2))) >> 8))
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr(j)*2)))
+ }
+ if (need_v4 != 0) && (Xinet_pton(tls, 2, s, (a-uintptr(4))) <= 0) {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp /* &a4 */) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, (buf + 8 /* &.addr */), bp /* &a4 */, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if (p != 0) && (((int64(p) - int64(name)) / 1) < int64(64)) {
+ Xmemcpy(tls, bp+4 /* &tmp[0] */, name, (uint64((int64(p) - int64(name)) / 1)))
+ *(*int8)(unsafe.Pointer(bp + 4 /* &tmp[0] */ + uintptr(((int64(p) - int64(name)) / 1)))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68 /* &a6 */) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, (buf + 8 /* &.addr */), bp+68 /* &a6 */, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return (Bool32(((uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))) - uint32('0')) < uint32(10)))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88 /* &z */, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = (p - uintptr(1))
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* z */)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:152:18 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if (Xstrnlen(tls, host, uint64(255)) - uint64(1)) >= uint64(254) {
+ return 0
+ }
+ for s = host; (((int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80) || (int32(*(*uint8)(unsafe.Pointer(s))) == '.')) || (int32(*(*uint8)(unsafe.Pointer(s))) == '-')) || (Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0); s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if (flags & 0x01) != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE1
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+74 /* "/etc/hosts" */, ts+85 /* "rb" */)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for (Xfgets(tls, bp /* &line[0] */, int32(unsafe.Sizeof([512]int8{})), f) != 0) && (cnt < 48) {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp /* &line[0] */, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = (bp /* &line[0] */ + uintptr(1)); (AssignUintptr(&p, Xstrstr(tls, p, name)) != 0) && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ (*(*int8)(unsafe.Pointer(p)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, (buf + uintptr(cnt)*28), bp /* &line[0] */, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; (*(*int8)(unsafe.Pointer(p)) != 0) && (__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ for z = p; (*(*int8)(unsafe.Pointer(z)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, (uint64(((int64(z) - int64(p)) / 1) + int64(1))))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 170 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" */)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 187 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00" */)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 203 /* " \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 219 /* " \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 235 /* "\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 251 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a /* &.__in6_union */ /* &.__s6_addr */, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20 /* &.addr */, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if (int32(*(*uint8_t)(unsafe.Pointer((a /* &.__in6_union */ /* &.__s6_addr */) + uintptr(defpolicy[i].len)))) & int32(defpolicy[i].mask)) !=
+ int32(*(*uint8)(unsafe.Pointer((uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 /* &.addr */) + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return (uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20)
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer((a)))) == 0xff {
+ return (int32(*(*uint8_t)(unsafe.Pointer((a /* &.__in6_union */ /* &.__s6_addr */) + 1))) & 15)
+ }
+ if ((int32(*(*uint8_t)(unsafe.Pointer((a))))) == 0xfe) && ((int32(*(*uint8_t)(unsafe.Pointer((a) + 1))) & 0xc0) == 0x80) {
+ return 2
+ }
+ if ((((((*(*uint32_t)(unsafe.Pointer((a))) == uint32_t(0)) && (*(*uint32_t)(unsafe.Pointer((a) + 1*4)) == uint32_t(0))) && (*(*uint32_t)(unsafe.Pointer((a) + 2*4)) == uint32_t(0))) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 12))) == 0)) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 13))) == 0)) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 14))) == 0)) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 15))) == 1) {
+ return 2
+ }
+ if ((int32(*(*uint8_t)(unsafe.Pointer((a))))) == 0xfe) && ((int32(*(*uint8_t)(unsafe.Pointer((a) + 1))) & 0xc0) == 0xc0) {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); (i < uint32(128)) && !(((int32(*(*uint8_t)(unsafe.Pointer((s /* &.__in6_union */ /* &.__s6_addr */) + uintptr((i / uint32(8)))))) ^ int32(*(*uint8_t)(unsafe.Pointer((d /* &.__in6_union */ /* &.__s6_addr */) + uintptr((i / uint32(8))))))) & (int32(128) >> (i % uint32(8)))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return ((*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey)
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if (l - uint64(1)) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, (l + uint64(1)))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if (flags & 0x08) != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - (0x08)
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !((flags & 0x04) != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if (flags & 0x08) != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if (cnt < 2) || (family == 2) {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp /* &da6 */ +8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */, buf+uintptr(i)*28+8 /* &.addr */, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28 /* &sa6 */ +8, /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */
+ ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12))
+ Xmemcpy(tls, ((bp /* &da6 */ + 8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */) + uintptr(12)), buf+uintptr(i)*28+8 /* &.addr */, uint64(4))
+ Xmemcpy(tls, bp /* &da6 */ +8, /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */
+ ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12))
+ Xmemcpy(tls, ((bp /* &da6 */ + 8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */) + uintptr(12)), buf+uintptr(i)*28+8 /* &.addr */, uint64(4))
+ Xmemcpy(tls, (bp + 56 /* &da4 */ + 4 /* &.sin_addr */), buf+uintptr(i)*28+8 /* &.addr */, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, (bp /* &da6 */ + 8 /* &.sin6_addr */))
+ var dscope int32 = scopeof(tls, (bp /* &da6 */ + 8 /* &.sin6_addr */))
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, (2 | 02000000), 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | (0x40000000)
+ if !(Xgetsockname(tls, fd, sa1, bp+88 /* &salen */) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ ((bp + 28 /* &sa6 */ + 8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */) + uintptr(12)),
+ (bp + 72 /* &sa4 */ + 4 /* &.sin_addr */), uint64(4))
+ }
+ if dscope == scopeof(tls, (bp+28 /* &sa6 */ +8 /* &.sin6_addr */)) {
+ key = key | (0x20000000)
+ }
+ if dlabel == labelof(tls, (bp+28 /* &sa6 */ +8 /* &.sin6_addr */)) {
+ key = key | (0x10000000)
+ }
+ prefixlen = prefixmatch(tls, (bp + 28 /* &sa6 */ + 8 /* &.sin6_addr */),
+ (bp /* &da6 */ + 8 /* &.sin6_addr */))
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | (dprec << 20)
+ key = key | ((15 - dscope) << 16)
+ key = key | (prefixlen << 8)
+ key = key | ((48 - i) << 0)
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp /* &z */, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* z */))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if (flags & 0x400) != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136 /* &.mode */)) |= ((*FILE1)(unsafe.Pointer(f)).mode - 1)
+ if (*FILE1)(unsafe.Pointer(f)).wpos != (*FILE1)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE1)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE1)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56 /* &.wbase */, AssignPtrUintptr(f+32 /* &.wend */, uintptr(0)))
+ if ((*FILE1)(unsafe.Pointer(f)).flags & uint32(4)) != 0 {
+ *(*uint32)(unsafe.Pointer(f /* &.flags */)) |= (uint32(32))
+ return -1
+ }
+ (*FILE1)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16 /* &.rend */, ((*FILE1)(unsafe.Pointer(f)).buf + uintptr((*FILE1)(unsafe.Pointer(f)).buf_size)))
+ if ((*FILE1)(unsafe.Pointer(f)).flags & uint32(16)) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && ((*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE1)(unsafe.Pointer(f)).read})).f(tls, f, bp /* &c */, uint64(1)) == uint64(1)) {
+ return int32(*(*uint8)(unsafe.Pointer(bp /* c */)))
+ }
+ return -1
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE1 at bp, 232
+
+ (*FILE1)(unsafe.Pointer(bp /* &f */)).buf = AssignPtrUintptr(bp /* &f */ +8 /* &.rpos */, s)
+ (*FILE1)(unsafe.Pointer(bp /* &f */)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp /* &f */, int64(0))
+ var y float64 = X__floatscan(tls, bp /* &f */, prec, 1)
+ var cnt off_t = ((*FILE1)(unsafe.Pointer((bp /* &f */))).shcnt + ((int64((*FILE1)(unsafe.Pointer((bp /* &f */))).rpos) - int64((*FILE1)(unsafe.Pointer((bp /* &f */))).buf)) / 1))
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return (s + uintptr(cnt))
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE1 at bp, 232
+
+ (*FILE1)(unsafe.Pointer(bp /* &f */)).buf = AssignPtrUintptr(bp /* &f */ +8 /* &.rpos */, s)
+ (*FILE1)(unsafe.Pointer(bp /* &f */)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp /* &f */, int64(0))
+ var y uint64 = X__intscan(tls, bp /* &f */, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = (size_t((*FILE1)(unsafe.Pointer((bp /* &f */))).shcnt + ((int64((*FILE1)(unsafe.Pointer((bp /* &f */))).rpos) - int64((*FILE1)(unsafe.Pointer((bp /* &f */))).buf)) / 1)))
+ *(*uintptr)(unsafe.Pointer(p)) = (s + uintptr(cnt))
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, ((2 * uint64(0x7fffffffffffffff)) + uint64(1)))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, (Uint64FromInt64(-0x7fffffffffffffff - int64(1)))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, ((2 * uint64(0x7fffffffffffffff)) + uint64(1))))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, (0 + (Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff)) - Int64FromInt32(1))))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, (l + uint64(1)))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, (l + uint64(1)))
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return (uint64((int64(p) - int64(s)) / 1))
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return (size_t((int64(s) - int64(a)) / 1))
+ }
+
+ for ; (*(*int8)(unsafe.Pointer(c)) != 0) && (AssignOrPtrUint64(bp /* &byteset */ +uintptr(((size_t(*(*uint8)(unsafe.Pointer(c))))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0))))))*8, (size_t(uint64(1))<<((size_t(*(*uint8)(unsafe.Pointer(c))))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0))))))) != 0); c++ {
+ }
+ for ; (*(*int8)(unsafe.Pointer(s)) != 0) && ((*(*size_t)(unsafe.Pointer(bp /* &byteset[0] */ + uintptr(((size_t(*(*uint8)(unsafe.Pointer(s))))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0))))))*8)) & (size_t(uint64(1)) << ((size_t(*(*uint8)(unsafe.Pointer(s)))) % (uint64(8) * uint64(unsafe.Sizeof(size_t(0))))))) != 0); s++ {
+ }
+ return (size_t((int64(s) - int64(a)) / 1))
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_ctype_tab_)) + 0)) = (uintptr(unsafe.Pointer(&X_C_ctype_tab_))) // ctype_.cpp.c:2233:37:
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_ctype_tab_)) + 0)) = (uintptr(unsafe.Pointer(&X_C_ctype_tab_))) // ctype_.cpp.c:2233:37:
+}
+
+var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_openbsd_amd64.go b/vendor/modernc.org/libc/musl_openbsd_amd64.go
new file mode 100644
index 00000000..ac379418
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_openbsd_amd64.go
@@ -0,0 +1,6806 @@
+// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_openbsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/isprint.c src/ctype/isspace.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* nameser.h:117:1: */
+ ns_uop_delete = 0
+ ns_uop_add = 1
+ ns_uop_max = 2
+)
+
+const ( /* nameser.h:147:1: */
+ ns_t_invalid = 0
+ ns_t_a = 1
+ ns_t_ns = 2
+ ns_t_md = 3
+ ns_t_mf = 4
+ ns_t_cname = 5
+ ns_t_soa = 6
+ ns_t_mb = 7
+ ns_t_mg = 8
+ ns_t_mr = 9
+ ns_t_null = 10
+ ns_t_wks = 11
+ ns_t_ptr = 12
+ ns_t_hinfo = 13
+ ns_t_minfo = 14
+ ns_t_mx = 15
+ ns_t_txt = 16
+ ns_t_rp = 17
+ ns_t_afsdb = 18
+ ns_t_x25 = 19
+ ns_t_isdn = 20
+ ns_t_rt = 21
+ ns_t_nsap = 22
+ ns_t_nsap_ptr = 23
+ ns_t_sig = 24
+ ns_t_key = 25
+ ns_t_px = 26
+ ns_t_gpos = 27
+ ns_t_aaaa = 28
+ ns_t_loc = 29
+ ns_t_nxt = 30
+ ns_t_eid = 31
+ ns_t_nimloc = 32
+ ns_t_srv = 33
+ ns_t_atma = 34
+ ns_t_naptr = 35
+ ns_t_kx = 36
+ ns_t_cert = 37
+ ns_t_a6 = 38
+ ns_t_dname = 39
+ ns_t_sink = 40
+ ns_t_opt = 41
+ ns_t_apl = 42
+ ns_t_tkey = 249
+ ns_t_tsig = 250
+ ns_t_ixfr = 251
+ ns_t_axfr = 252
+ ns_t_mailb = 253
+ ns_t_maila = 254
+ ns_t_any = 255
+ ns_t_zxfr = 256
+ ns_t_max = 65536
+)
+
+const ( /* nameser.h:210:1: */
+ ns_c_invalid = 0
+ ns_c_in = 1
+ ns_c_2 = 2
+ ns_c_chaos = 3
+ ns_c_hs = 4
+ ns_c_none = 254
+ ns_c_any = 255
+ ns_c_max = 65536
+)
+
+const ( /* nameser.h:221:1: */
+ ns_kt_rsa = 1
+ ns_kt_dh = 2
+ ns_kt_dsa = 3
+ ns_kt_private = 254
+)
+
+const ( /* nameser.h:228:1: */
+ cert_t_pkix = 1
+ cert_t_spki = 2
+ cert_t_pgp = 3
+ cert_t_url = 253
+ cert_t_oid = 254
+)
+
+const ( /* nameser.h:28:1: */
+ ns_s_qd = 0
+ ns_s_zn = 0
+ ns_s_an = 1
+ ns_s_pr = 1
+ ns_s_ns = 2
+ ns_s_ud = 2
+ ns_s_ar = 3
+ ns_s_max = 4
+)
+
+const ( /* nameser.h:75:1: */
+ ns_f_qr = 0
+ ns_f_opcode = 1
+ ns_f_aa = 2
+ ns_f_tc = 3
+ ns_f_rd = 4
+ ns_f_ra = 5
+ ns_f_z = 6
+ ns_f_ad = 7
+ ns_f_cd = 8
+ ns_f_rcode = 9
+ ns_f_max = 10
+)
+
+const ( /* nameser.h:89:1: */
+ ns_o_query = 0
+ ns_o_iquery = 1
+ ns_o_status = 2
+ ns_o_notify = 4
+ ns_o_update = 5
+ ns_o_max = 6
+)
+
+const ( /* nameser.h:98:1: */
+ ns_r_noerror = 0
+ ns_r_formerr = 1
+ ns_r_servfail = 2
+ ns_r_nxdomain = 3
+ ns_r_notimpl = 4
+ ns_r_refused = 5
+ ns_r_yxdomain = 6
+ ns_r_yxrrset = 7
+ ns_r_nxrrset = 8
+ ns_r_notauth = 9
+ ns_r_notzone = 10
+ ns_r_max = 11
+ ns_r_badvers = 16
+ ns_r_badsig = 16
+ ns_r_badkey = 17
+ ns_r_badtime = 18
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = int32 /* <builtin>:15:24 */
+
+/// typedef __ct_rune_t __wint_t;
+///
+///
+///
+/// typedef __uint_least16_t __char16_t;
+/// typedef __uint_least32_t __char32_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef struct {
+/// long long __max_align1 __attribute__((__aligned__(_Alignof(long long))));
+///
+/// long double __max_align2 __attribute__((__aligned__(_Alignof(long double))));
+///
+/// } __max_align_t;
+///
+/// typedef __uint64_t __dev_t;
+///
+/// typedef __uint32_t __fixpt_t;
+///
+///
+///
+///
+///
+/// typedef union {
+/// char __mbstate8[128];
+/// __int64_t _mbstateL;
+/// } __mbstate_t;
+///
+/// typedef __uintmax_t __rman_res_t;
+///
+///
+///
+///
+///
+///
+/// typedef __builtin_va_list __va_list;
+///
+///
+///
+///
+///
+///
+/// typedef __va_list __gnuc_va_list;
+///
+///
+///
+///
+/// unsigned long ___runetype(__ct_rune_t) __attribute__((__pure__));
+/// __ct_rune_t ___tolower(__ct_rune_t) __attribute__((__pure__));
+/// __ct_rune_t ___toupper(__ct_rune_t) __attribute__((__pure__));
+///
+///
+/// extern int __mb_sb_limit;
+
+type _RuneEntry = struct {
+ __min int32
+ __max int32
+ __map int32
+ _ [4]byte
+ __types uintptr
+} /* table.cpp.c:290:3 */
+
+type _RuneRange = struct {
+ __nranges int32
+ _ [4]byte
+ __ranges uintptr
+} /* table.cpp.c:295:3 */
+
+type _RuneLocale = struct {
+ __magic [8]int8
+ __encoding [32]int8
+ __sgetrune uintptr
+ __sputrune uintptr
+ __invalid_rune int32
+ _ [4]byte
+ __runetype [256]uint64
+ __maplower [256]int32
+ __mapupper [256]int32
+ __runetype_ext _RuneRange
+ __maplower_ext _RuneRange
+ __mapupper_ext _RuneRange
+ __variable uintptr
+ __variable_len int32
+ _ [4]byte
+} /* table.cpp.c:320:3 */
+///
+/// extern const _RuneLocale _DefaultRuneLocale;
+/// extern const _RuneLocale *_CurrentRuneLocale;
+///
+///
+///
+/// extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
+/// static __inline const _RuneLocale *__getCurrentRuneLocale(void)
+/// {
+///
+/// if (_ThreadRuneLocale)
+/// return _ThreadRuneLocale;
+/// return _CurrentRuneLocale;
+/// }
+///
+///
+///
+///
+///
+/// static __inline int
+/// __maskrune(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return ((_c < 0 || _c >= (1 <<8 )) ? ___runetype(_c) :
+/// (__getCurrentRuneLocale())->__runetype[_c]) & _f;
+/// }
+///
+/// static __inline int
+/// __sbmaskrune(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? 0 :
+/// (__getCurrentRuneLocale())->__runetype[_c] & _f;
+/// }
+///
+/// static __inline int
+/// __istype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (!!__maskrune(_c, _f));
+/// }
+///
+/// static __inline int
+/// __sbistype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (!!__sbmaskrune(_c, _f));
+/// }
+///
+/// static __inline int
+/// __isctype(__ct_rune_t _c, unsigned long _f)
+/// {
+/// return (_c < 0 || _c >= 128) ? 0 :
+/// !!(_DefaultRuneLocale.__runetype[_c] & _f);
+/// }
+///
+/// static __inline __ct_rune_t
+/// __toupper(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= (1 <<8 )) ? ___toupper(_c) :
+/// (__getCurrentRuneLocale())->__mapupper[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __sbtoupper(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
+/// (__getCurrentRuneLocale())->__mapupper[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __tolower(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= (1 <<8 )) ? ___tolower(_c) :
+/// (__getCurrentRuneLocale())->__maplower[_c];
+/// }
+///
+/// static __inline __ct_rune_t
+/// __sbtolower(__ct_rune_t _c)
+/// {
+/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
+/// (__getCurrentRuneLocale())->__maplower[_c];
+/// }
+///
+/// static __inline int
+/// __wcwidth(__ct_rune_t _c)
+/// {
+/// unsigned int _x;
+///
+/// if (_c == 0)
+/// return (0);
+/// _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L);
+/// if ((_x & 0xe0000000L) != 0)
+/// return ((_x & 0xe0000000L) >> 30);
+/// return ((_x & 0x00040000L) != 0 ? 1 : -1);
+/// }
+///
+///
+///
+/// int isalnum(int);
+/// int isalpha(int);
+/// int iscntrl(int);
+/// int isdigit(int);
+/// int isgraph(int);
+/// int islower(int);
+/// int isprint(int);
+/// int ispunct(int);
+/// int isspace(int);
+/// int isupper(int);
+/// int isxdigit(int);
+/// int tolower(int);
+/// int toupper(int);
+///
+///
+/// int isascii(int);
+/// int toascii(int);
+///
+///
+///
+/// int isblank(int);
+///
+///
+///
+/// int digittoint(int);
+/// int ishexnumber(int);
+/// int isideogram(int);
+/// int isnumber(int);
+/// int isphonogram(int);
+/// int isrune(int);
+/// int isspecial(int);
+///
+///
+///
+///
+///
+/// typedef struct _xlocale *locale_t;
+///
+///
+///
+///
+/// unsigned long ___runetype_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// __ct_rune_t ___tolower_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// __ct_rune_t ___toupper_l(__ct_rune_t, locale_t) __attribute__((__pure__));
+/// _RuneLocale *__runes_for_locale(locale_t, int*);
+///
+/// inline int
+/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
+/// inline int
+/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
+///
+/// inline int
+/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
+/// {
+/// int __limit;
+/// _RuneLocale *runes = __runes_for_locale(__loc, &__limit);
+/// return (__c < 0 || __c >= __limit) ? 0 :
+/// runes->__runetype[__c] & __f;
+/// }
+///
+/// inline int
+/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
+/// {
+/// return (!!__sbmaskrune_l(__c, __f, __loc));
+/// }
+///
+///
+///
+///
+///
+///
+///
+/// inline int isalnum_l(int, locale_t); inline int isalnum_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L|0x00000400L|0x00400000L, __l); }
+/// inline int isalpha_l(int, locale_t); inline int isalpha_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L, __l); }
+/// inline int isblank_l(int, locale_t); inline int isblank_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00020000L, __l); }
+/// inline int iscntrl_l(int, locale_t); inline int iscntrl_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000200L, __l); }
+/// inline int isdigit_l(int, locale_t); inline int isdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L, __l); }
+/// inline int isgraph_l(int, locale_t); inline int isgraph_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000800L, __l); }
+/// inline int ishexnumber_l(int, locale_t); inline int ishexnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
+/// inline int isideogram_l(int, locale_t); inline int isideogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00080000L, __l); }
+/// inline int islower_l(int, locale_t); inline int islower_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00001000L, __l); }
+/// inline int isnumber_l(int, locale_t); inline int isnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L|0x00400000L, __l); }
+/// inline int isphonogram_l(int, locale_t); inline int isphonogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00200000L, __l); }
+/// inline int isprint_l(int, locale_t); inline int isprint_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00040000L, __l); }
+/// inline int ispunct_l(int, locale_t); inline int ispunct_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00002000L, __l); }
+/// inline int isrune_l(int, locale_t); inline int isrune_l(int __c, locale_t __l) { return __sbistype_l(__c, 0xFFFFFF00L, __l); }
+/// inline int isspace_l(int, locale_t); inline int isspace_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00004000L, __l); }
+/// inline int isspecial_l(int, locale_t); inline int isspecial_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00100000L, __l); }
+/// inline int isupper_l(int, locale_t); inline int isupper_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00008000L, __l); }
+/// inline int isxdigit_l(int, locale_t); inline int isxdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
+///
+/// inline int digittoint_l(int, locale_t);
+/// inline int tolower_l(int, locale_t);
+/// inline int toupper_l(int, locale_t);
+///
+/// inline int digittoint_l(int __c, locale_t __l)
+/// { return __sbmaskrune_l((__c), 0xFF, __l); }
+///
+/// inline int tolower_l(int __c, locale_t __l)
+/// {
+/// int __limit;
+/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
+/// return (__c < 0 || __c >= __limit) ? __c :
+/// __runes->__maplower[__c];
+/// }
+/// inline int toupper_l(int __c, locale_t __l)
+/// {
+/// int __limit;
+/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
+/// return (__c < 0 || __c >= __limit) ? __c :
+/// __runes->__mapupper[__c];
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __mbstate_t mbstate_t;
+///
+///
+///
+///
+/// typedef __size_t size_t;
+///
+///
+///
+///
+///
+/// typedef __va_list va_list;
+///
+///
+///
+///
+///
+///
+/// typedef ___wchar_t wchar_t;
+///
+///
+///
+///
+///
+/// typedef __wint_t wint_t;
+///
+/// typedef struct __sFILE FILE;
+///
+/// struct tm;
+///
+///
+/// wint_t btowc(int);
+/// wint_t fgetwc(FILE *);
+/// wchar_t *
+/// fgetws(wchar_t * restrict, int, FILE * restrict);
+/// wint_t fputwc(wchar_t, FILE *);
+/// int fputws(const wchar_t * restrict, FILE * restrict);
+/// int fwide(FILE *, int);
+/// int fwprintf(FILE * restrict, const wchar_t * restrict, ...);
+/// int fwscanf(FILE * restrict, const wchar_t * restrict, ...);
+/// wint_t getwc(FILE *);
+/// wint_t getwchar(void);
+/// size_t mbrlen(const char * restrict, size_t, mbstate_t * restrict);
+/// size_t mbrtowc(wchar_t * restrict, const char * restrict, size_t,
+/// mbstate_t * restrict);
+/// int mbsinit(const mbstate_t *);
+/// size_t mbsrtowcs(wchar_t * restrict, const char ** restrict, size_t,
+/// mbstate_t * restrict);
+/// wint_t putwc(wchar_t, FILE *);
+/// wint_t putwchar(wchar_t);
+/// int swprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
+/// ...);
+/// int swscanf(const wchar_t * restrict, const wchar_t * restrict, ...);
+/// wint_t ungetwc(wint_t, FILE *);
+/// int vfwprintf(FILE * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vswprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
+/// __va_list);
+/// int vwprintf(const wchar_t * restrict, __va_list);
+/// size_t wcrtomb(char * restrict, wchar_t, mbstate_t * restrict);
+/// wchar_t *wcscat(wchar_t * restrict, const wchar_t * restrict);
+/// wchar_t *wcschr(const wchar_t *, wchar_t) __attribute__((__pure__));
+/// int wcscmp(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// int wcscoll(const wchar_t *, const wchar_t *);
+/// wchar_t *wcscpy(wchar_t * restrict, const wchar_t * restrict);
+/// size_t wcscspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// size_t wcsftime(wchar_t * restrict, size_t, const wchar_t * restrict,
+/// const struct tm * restrict);
+/// size_t wcslen(const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsncat(wchar_t * restrict, const wchar_t * restrict,
+/// size_t);
+/// int wcsncmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
+/// wchar_t *wcsncpy(wchar_t * restrict , const wchar_t * restrict, size_t);
+/// wchar_t *wcspbrk(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsrchr(const wchar_t *, wchar_t) __attribute__((__pure__));
+/// size_t wcsrtombs(char * restrict, const wchar_t ** restrict, size_t,
+/// mbstate_t * restrict);
+/// size_t wcsspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
+/// wchar_t *wcsstr(const wchar_t * restrict, const wchar_t * restrict)
+/// __attribute__((__pure__));
+/// size_t wcsxfrm(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// int wctob(wint_t);
+/// double wcstod(const wchar_t * restrict, wchar_t ** restrict);
+/// wchar_t *wcstok(wchar_t * restrict, const wchar_t * restrict,
+/// wchar_t ** restrict);
+/// long wcstol(const wchar_t * restrict, wchar_t ** restrict, int);
+/// unsigned long
+/// wcstoul(const wchar_t * restrict, wchar_t ** restrict, int);
+/// wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) __attribute__((__pure__));
+/// int wmemcmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
+/// wchar_t *wmemcpy(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
+/// wchar_t *wmemset(wchar_t *, wchar_t, size_t);
+/// int wprintf(const wchar_t * restrict, ...);
+/// int wscanf(const wchar_t * restrict, ...);
+///
+///
+/// extern FILE *__stdinp;
+/// extern FILE *__stdoutp;
+/// extern FILE *__stderrp;
+///
+/// int vfwscanf(FILE * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vswscanf(const wchar_t * restrict, const wchar_t * restrict,
+/// __va_list);
+/// int vwscanf(const wchar_t * restrict, __va_list);
+/// float wcstof(const wchar_t * restrict, wchar_t ** restrict);
+/// long double
+/// wcstold(const wchar_t * restrict, wchar_t ** restrict);
+///
+///
+/// long long
+/// wcstoll(const wchar_t * restrict, wchar_t ** restrict, int);
+///
+/// unsigned long long
+/// wcstoull(const wchar_t * restrict, wchar_t ** restrict, int);
+///
+///
+///
+///
+/// int wcswidth(const wchar_t *, size_t);
+/// int wcwidth(wchar_t);
+///
+///
+///
+///
+/// size_t mbsnrtowcs(wchar_t * restrict, const char ** restrict, size_t,
+/// size_t, mbstate_t * restrict);
+/// FILE *open_wmemstream(wchar_t **, size_t *);
+/// wchar_t *wcpcpy(wchar_t * restrict, const wchar_t * restrict);
+/// wchar_t *wcpncpy(wchar_t * restrict, const wchar_t * restrict, size_t);
+/// wchar_t *wcsdup(const wchar_t *) __attribute__((__malloc__));
+/// int wcscasecmp(const wchar_t *, const wchar_t *);
+/// int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n);
+/// size_t wcsnlen(const wchar_t *, size_t) __attribute__((__pure__));
+/// size_t wcsnrtombs(char * restrict, const wchar_t ** restrict, size_t,
+/// size_t, mbstate_t * restrict);
+///
+///
+///
+/// wchar_t *fgetwln(FILE * restrict, size_t * restrict);
+/// size_t wcslcat(wchar_t *, const wchar_t *, size_t);
+/// size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
+///
+///
+///
+///
+///
+/// int wcscasecmp_l(const wchar_t *, const wchar_t *,
+/// locale_t);
+/// int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t,
+/// locale_t);
+/// int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
+/// size_t wcsxfrm_l(wchar_t * restrict,
+/// const wchar_t * restrict, size_t, locale_t);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct lconv {
+/// char *decimal_point;
+/// char *thousands_sep;
+/// char *grouping;
+/// char *int_curr_symbol;
+/// char *currency_symbol;
+/// char *mon_decimal_point;
+/// char *mon_thousands_sep;
+/// char *mon_grouping;
+/// char *positive_sign;
+/// char *negative_sign;
+/// char int_frac_digits;
+/// char frac_digits;
+/// char p_cs_precedes;
+/// char p_sep_by_space;
+/// char n_cs_precedes;
+/// char n_sep_by_space;
+/// char p_sign_posn;
+/// char n_sign_posn;
+/// char int_p_cs_precedes;
+/// char int_n_cs_precedes;
+/// char int_p_sep_by_space;
+/// char int_n_sep_by_space;
+/// char int_p_sign_posn;
+/// char int_n_sign_posn;
+/// };
+///
+///
+/// struct lconv *localeconv(void);
+/// char *setlocale(int, const char *);
+///
+///
+///
+///
+/// locale_t duplocale(locale_t base);
+/// void freelocale(locale_t loc);
+/// locale_t newlocale(int mask, const char *locale, locale_t base);
+/// const char *querylocale(int mask, locale_t loc);
+/// locale_t uselocale(locale_t loc);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// wint_t btowc_l(int, locale_t);
+/// wint_t fgetwc_l(FILE *, locale_t);
+/// wchar_t *fgetws_l(wchar_t * restrict, int, FILE * restrict,
+/// locale_t);
+/// wint_t fputwc_l(wchar_t, FILE *, locale_t);
+/// int fputws_l(const wchar_t * restrict, FILE * restrict,
+/// locale_t);
+/// int fwprintf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// int fwscanf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// wint_t getwc_l(FILE *, locale_t);
+/// wint_t getwchar_l(locale_t);
+/// size_t mbrlen_l(const char * restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t mbrtowc_l(wchar_t * restrict,
+/// const char * restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// int mbsinit_l(const mbstate_t *, locale_t);
+/// size_t mbsrtowcs_l(wchar_t * restrict,
+/// const char ** restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// wint_t putwc_l(wchar_t, FILE *, locale_t);
+/// wint_t putwchar_l(wchar_t, locale_t);
+/// int swprintf_l(wchar_t * restrict, size_t n, locale_t,
+/// const wchar_t * restrict, ...);
+/// int swscanf_l(const wchar_t * restrict, locale_t,
+/// const wchar_t * restrict, ...);
+/// wint_t ungetwc_l(wint_t, FILE *, locale_t);
+/// int vfwprintf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vswprintf_l(wchar_t * restrict, size_t n, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vwprintf_l(locale_t, const wchar_t * restrict,
+/// __va_list);
+/// size_t wcrtomb_l(char * restrict, wchar_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t wcsftime_l(wchar_t * restrict, size_t,
+/// const wchar_t * restrict,
+/// const struct tm * restrict, locale_t);
+/// size_t wcsrtombs_l(char * restrict,
+/// const wchar_t ** restrict, size_t,
+/// mbstate_t * restrict, locale_t);
+/// double wcstod_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long wcstol_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// unsigned long wcstoul_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// int wcswidth_l(const wchar_t *, size_t, locale_t);
+/// int wctob_l(wint_t, locale_t);
+/// int wcwidth_l(wchar_t, locale_t);
+/// int wprintf_l(locale_t, const wchar_t * restrict, ...);
+/// int wscanf_l(locale_t, const wchar_t * restrict, ...);
+/// int vfwscanf_l(FILE * restrict, locale_t,
+/// const wchar_t * restrict, __va_list);
+/// int vswscanf_l(const wchar_t * restrict, locale_t,
+/// const wchar_t *restrict, __va_list);
+/// int vwscanf_l(locale_t, const wchar_t * restrict,
+/// __va_list);
+/// float wcstof_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long double wcstold_l(const wchar_t * restrict,
+/// wchar_t ** restrict, locale_t);
+/// long long wcstoll_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// unsigned long long wcstoull_l(const wchar_t * restrict,
+/// wchar_t ** restrict, int, locale_t);
+/// size_t mbsnrtowcs_l(wchar_t * restrict,
+/// const char ** restrict, size_t, size_t,
+/// mbstate_t * restrict, locale_t);
+/// size_t wcsnrtombs_l(char * restrict,
+/// const wchar_t ** restrict, size_t, size_t,
+/// mbstate_t * restrict, locale_t);
+///
+///
+///
+///
+///
+/// struct lconv *localeconv_l(locale_t);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __rune_t rune_t;
+///
+/// typedef struct {
+/// int quot;
+/// int rem;
+/// } div_t;
+///
+/// typedef struct {
+/// long quot;
+/// long rem;
+/// } ldiv_t;
+///
+///
+///
+///
+///
+/// double atof_l(const char *, locale_t);
+/// int atoi_l(const char *, locale_t);
+/// long atol_l(const char *, locale_t);
+/// long long atoll_l(const char *, locale_t);
+/// int mblen_l(const char *, size_t, locale_t);
+/// size_t mbstowcs_l(wchar_t * restrict,
+/// const char * restrict, size_t, locale_t);
+/// int mbtowc_l(wchar_t * restrict,
+/// const char * restrict, size_t, locale_t);
+/// double strtod_l(const char *, char **, locale_t);
+/// float strtof_l(const char *, char **, locale_t);
+/// long strtol_l(const char *, char **, int, locale_t);
+/// long double strtold_l(const char *, char **, locale_t);
+/// long long strtoll_l(const char *, char **, int, locale_t);
+/// unsigned long strtoul_l(const char *, char **, int, locale_t);
+/// unsigned long long strtoull_l(const char *, char **, int, locale_t);
+/// size_t wcstombs_l(char * restrict,
+/// const wchar_t * restrict, size_t, locale_t);
+/// int wctomb_l(char *, wchar_t, locale_t);
+///
+/// int ___mb_cur_max_l(locale_t);
+///
+///
+/// extern int __mb_cur_max;
+/// extern int ___mb_cur_max(void);
+///
+///
+/// _Noreturn void abort(void);
+/// int abs(int) __attribute__((__const__));
+/// int atexit(void (* )(void));
+/// double atof(const char *);
+/// int atoi(const char *);
+/// long atol(const char *);
+/// void *bsearch(const void *, const void *, size_t,
+/// size_t, int (*)(const void * , const void *));
+/// void *calloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__))
+/// __attribute__((__alloc_size__(1, 2)));
+/// div_t div(int, int) __attribute__((__const__));
+/// _Noreturn void exit(int);
+/// void free(void *);
+/// char *getenv(const char *);
+/// long labs(long) __attribute__((__const__));
+/// ldiv_t ldiv(long, long) __attribute__((__const__));
+/// void *malloc(size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1)));
+/// int mblen(const char *, size_t);
+/// size_t mbstowcs(wchar_t * restrict , const char * restrict, size_t);
+/// int mbtowc(wchar_t * restrict, const char * restrict, size_t);
+/// void qsort(void *, size_t, size_t,
+/// int (* )(const void *, const void *));
+/// int rand(void);
+/// void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
+/// void srand(unsigned);
+/// double strtod(const char * restrict, char ** restrict);
+/// float strtof(const char * restrict, char ** restrict);
+/// long strtol(const char * restrict, char ** restrict, int);
+/// long double
+/// strtold(const char * restrict, char ** restrict);
+/// unsigned long
+/// strtoul(const char * restrict, char ** restrict, int);
+/// int system(const char *);
+/// int wctomb(char *, wchar_t);
+/// size_t wcstombs(char * restrict, const wchar_t * restrict, size_t);
+///
+/// typedef struct {
+/// long long quot;
+/// long long rem;
+/// } lldiv_t;
+///
+///
+/// long long
+/// atoll(const char *);
+///
+/// long long
+/// llabs(long long) __attribute__((__const__));
+///
+/// lldiv_t lldiv(long long, long long) __attribute__((__const__));
+///
+/// long long
+/// strtoll(const char * restrict, char ** restrict, int);
+///
+/// unsigned long long
+/// strtoull(const char * restrict, char ** restrict, int);
+///
+///
+/// _Noreturn void _Exit(int);
+///
+///
+///
+///
+///
+///
+/// void * aligned_alloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__alloc_align__(1)))
+/// __attribute__((__alloc_size__(2)));
+/// int at_quick_exit(void (*)(void));
+/// _Noreturn void
+/// quick_exit(int);
+///
+///
+///
+///
+///
+/// char *realpath(const char * restrict, char * restrict);
+///
+///
+/// int rand_r(unsigned *);
+///
+///
+/// int posix_memalign(void **, size_t, size_t);
+/// int setenv(const char *, const char *, int);
+/// int unsetenv(const char *);
+///
+///
+///
+/// int getsubopt(char **, char *const *, char **);
+///
+/// char *mkdtemp(char *);
+///
+///
+///
+/// int mkstemp(char *);
+///
+/// long a64l(const char *);
+/// double drand48(void);
+///
+/// double erand48(unsigned short[3]);
+///
+///
+/// char *initstate(unsigned int, char *, size_t);
+/// long jrand48(unsigned short[3]);
+/// char *l64a(long);
+/// void lcong48(unsigned short[7]);
+/// long lrand48(void);
+///
+/// char *mktemp(char *);
+///
+///
+/// long mrand48(void);
+/// long nrand48(unsigned short[3]);
+/// int putenv(char *);
+/// long random(void);
+/// unsigned short
+/// *seed48(unsigned short[3]);
+/// char *setstate( char *);
+/// void srand48(long);
+/// void srandom(unsigned int);
+///
+///
+///
+/// int grantpt(int);
+/// int posix_openpt(int);
+/// char *ptsname(int);
+/// int unlockpt(int);
+///
+///
+///
+/// int ptsname_r(int, char *, size_t);
+///
+///
+///
+/// extern const char *malloc_conf;
+/// extern void (*malloc_message)(void *, const char *);
+///
+/// void abort2(const char *, int, void **) __attribute__((__noreturn__));
+/// __uint32_t
+/// arc4random(void);
+/// void arc4random_buf(void *, size_t);
+/// __uint32_t
+/// arc4random_uniform(__uint32_t);
+///
+///
+///
+///
+///
+///
+/// char *getbsize(int *, long *);
+///
+/// char *cgetcap(char *, const char *, int);
+/// int cgetclose(void);
+/// int cgetent(char **, char **, const char *);
+/// int cgetfirst(char **, char **);
+/// int cgetmatch(const char *, const char *);
+/// int cgetnext(char **, char **);
+/// int cgetnum(char *, const char *, long *);
+/// int cgetset(const char *);
+/// int cgetstr(char *, const char *, char **);
+/// int cgetustr(char *, const char *, char **);
+///
+/// int daemon(int, int);
+/// int daemonfd(int, int);
+/// char *devname(__dev_t, __mode_t);
+/// char *devname_r(__dev_t, __mode_t, char *, int);
+/// char *fdevname(int);
+/// char *fdevname_r(int, char *, int);
+/// int getloadavg(double [], int);
+/// const char *
+/// getprogname(void);
+///
+/// int heapsort(void *, size_t, size_t,
+/// int (* )(const void *, const void *));
+///
+///
+///
+///
+///
+///
+/// int l64a_r(long, char *, int);
+/// int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
+///
+///
+///
+/// int mkostemp(char *, int);
+/// int mkostemps(char *, int, int);
+/// int mkostempsat(int, char *, int, int);
+/// void qsort_r(void *, size_t, size_t, void *,
+/// int (*)(void *, const void *, const void *));
+/// int radixsort(const unsigned char **, int, const unsigned char *,
+/// unsigned);
+/// void *reallocarray(void *, size_t, size_t) __attribute__((__warn_unused_result__))
+/// __attribute__((__alloc_size__(2, 3)));
+/// void *reallocf(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
+/// int rpmatch(const char *);
+/// void setprogname(const char *);
+/// int sradixsort(const unsigned char **, int, const unsigned char *,
+/// unsigned);
+/// void srandomdev(void);
+/// long long
+/// strtonum(const char *, long long, long long, const char **);
+///
+///
+/// __int64_t
+/// strtoq(const char *, char **, int);
+/// __uint64_t
+/// strtouq(const char *, char **, int);
+///
+/// extern char *suboptarg;
+///
+///
+///
+///
+///
+///
+/// typedef size_t rsize_t;
+///
+///
+///
+///
+/// typedef int errno_t;
+///
+///
+///
+/// typedef void (*constraint_handler_t)(const char * restrict,
+/// void * restrict, errno_t);
+///
+/// constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);
+///
+/// _Noreturn void abort_handler_s(const char * restrict, void * restrict,
+/// errno_t);
+///
+/// void ignore_handler_s(const char * restrict, void * restrict, errno_t);
+///
+/// errno_t qsort_s(void *, rsize_t, rsize_t,
+/// int (*)(const void *, const void *, void *), void *);
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// typedef __int8_t int8_t;
+///
+///
+///
+///
+/// typedef __int16_t int16_t;
+///
+///
+///
+///
+/// typedef __int32_t int32_t;
+///
+///
+///
+///
+/// typedef __int64_t int64_t;
+///
+///
+///
+///
+/// typedef __uint8_t uint8_t;
+///
+///
+///
+///
+/// typedef __uint16_t uint16_t;
+///
+///
+///
+///
+/// typedef __uint32_t uint32_t;
+///
+///
+///
+///
+/// typedef __uint64_t uint64_t;
+///
+///
+///
+///
+/// typedef __intptr_t intptr_t;
+///
+///
+///
+/// typedef __uintptr_t uintptr_t;
+///
+///
+///
+/// typedef __intmax_t intmax_t;
+///
+///
+///
+/// typedef __uintmax_t uintmax_t;
+///
+///
+/// typedef __int_least8_t int_least8_t;
+/// typedef __int_least16_t int_least16_t;
+/// typedef __int_least32_t int_least32_t;
+/// typedef __int_least64_t int_least64_t;
+///
+/// typedef __uint_least8_t uint_least8_t;
+/// typedef __uint_least16_t uint_least16_t;
+/// typedef __uint_least32_t uint_least32_t;
+/// typedef __uint_least64_t uint_least64_t;
+///
+/// typedef __int_fast8_t int_fast8_t;
+/// typedef __int_fast16_t int_fast16_t;
+/// typedef __int_fast32_t int_fast32_t;
+/// typedef __int_fast64_t int_fast64_t;
+///
+/// typedef __uint_fast8_t uint_fast8_t;
+/// typedef __uint_fast16_t uint_fast16_t;
+/// typedef __uint_fast32_t uint_fast32_t;
+/// typedef __uint_fast64_t uint_fast64_t;
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct pthread;
+/// struct pthread_attr;
+/// struct pthread_cond;
+/// struct pthread_cond_attr;
+/// struct pthread_mutex;
+/// struct pthread_mutex_attr;
+/// struct pthread_once;
+/// struct pthread_rwlock;
+/// struct pthread_rwlockattr;
+/// struct pthread_barrier;
+/// struct pthread_barrier_attr;
+/// struct pthread_spinlock;
+///
+/// typedef struct pthread *pthread_t;
+///
+///
+/// typedef struct pthread_attr *pthread_attr_t;
+/// typedef struct pthread_mutex *pthread_mutex_t;
+/// typedef struct pthread_mutex_attr *pthread_mutexattr_t;
+/// typedef struct pthread_cond *pthread_cond_t;
+/// typedef struct pthread_cond_attr *pthread_condattr_t;
+/// typedef int pthread_key_t;
+/// typedef struct pthread_once pthread_once_t;
+/// typedef struct pthread_rwlock *pthread_rwlock_t;
+/// typedef struct pthread_rwlockattr *pthread_rwlockattr_t;
+/// typedef struct pthread_barrier *pthread_barrier_t;
+/// typedef struct pthread_barrierattr *pthread_barrierattr_t;
+/// typedef struct pthread_spinlock *pthread_spinlock_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef void *pthread_addr_t;
+/// typedef void *(*pthread_startroutine_t)(void *);
+///
+///
+///
+///
+/// struct pthread_once {
+/// int state;
+/// pthread_mutex_t mutex;
+/// };
+///
+///
+///
+/// typedef unsigned char u_char;
+/// typedef unsigned short u_short;
+/// typedef unsigned int u_int;
+/// typedef unsigned long u_long;
+///
+/// typedef unsigned short ushort;
+/// typedef unsigned int uint;
+///
+/// typedef __uint8_t u_int8_t;
+/// typedef __uint16_t u_int16_t;
+/// typedef __uint32_t u_int32_t;
+/// typedef __uint64_t u_int64_t;
+///
+/// typedef __uint64_t u_quad_t;
+/// typedef __int64_t quad_t;
+/// typedef quad_t * qaddr_t;
+///
+/// typedef char * caddr_t;
+/// typedef const char * c_caddr_t;
+///
+///
+/// typedef __blksize_t blksize_t;
+///
+///
+///
+/// typedef __cpuwhich_t cpuwhich_t;
+/// typedef __cpulevel_t cpulevel_t;
+/// typedef __cpusetid_t cpusetid_t;
+///
+///
+/// typedef __blkcnt_t blkcnt_t;
+///
+///
+///
+///
+/// typedef __clock_t clock_t;
+///
+///
+///
+///
+/// typedef __clockid_t clockid_t;
+///
+///
+///
+/// typedef __critical_t critical_t;
+/// typedef __daddr_t daddr_t;
+///
+///
+/// typedef __dev_t dev_t;
+///
+///
+///
+///
+/// typedef __fflags_t fflags_t;
+///
+///
+///
+/// typedef __fixpt_t fixpt_t;
+///
+///
+/// typedef __fsblkcnt_t fsblkcnt_t;
+/// typedef __fsfilcnt_t fsfilcnt_t;
+///
+///
+///
+///
+/// typedef __gid_t gid_t;
+///
+///
+///
+///
+/// typedef __uint32_t in_addr_t;
+///
+///
+///
+///
+/// typedef __uint16_t in_port_t;
+///
+///
+///
+///
+/// typedef __id_t id_t;
+///
+///
+///
+///
+/// typedef __ino_t ino_t;
+///
+///
+///
+///
+/// typedef __key_t key_t;
+///
+///
+///
+///
+/// typedef __lwpid_t lwpid_t;
+///
+///
+///
+///
+/// typedef __mode_t mode_t;
+///
+///
+///
+///
+/// typedef __accmode_t accmode_t;
+///
+///
+///
+///
+/// typedef __nlink_t nlink_t;
+///
+///
+///
+///
+/// typedef __off_t off_t;
+///
+///
+///
+///
+/// typedef __off64_t off64_t;
+///
+///
+///
+///
+/// typedef __pid_t pid_t;
+///
+///
+///
+/// typedef __register_t register_t;
+///
+///
+/// typedef __rlim_t rlim_t;
+///
+///
+///
+/// typedef __int64_t sbintime_t;
+///
+/// typedef __segsz_t segsz_t;
+///
+///
+///
+///
+///
+///
+///
+/// typedef __ssize_t ssize_t;
+///
+///
+///
+///
+/// typedef __suseconds_t suseconds_t;
+///
+///
+///
+///
+/// typedef __time_t time_t;
+///
+///
+///
+///
+/// typedef __timer_t timer_t;
+///
+///
+///
+///
+/// typedef __mqd_t mqd_t;
+///
+///
+///
+/// typedef __u_register_t u_register_t;
+///
+///
+/// typedef __uid_t uid_t;
+///
+///
+///
+///
+/// typedef __useconds_t useconds_t;
+///
+///
+///
+///
+///
+/// typedef unsigned long cap_ioctl_t;
+///
+///
+///
+///
+/// struct cap_rights;
+///
+/// typedef struct cap_rights cap_rights_t;
+///
+/// typedef __uint64_t kpaddr_t;
+/// typedef __uint64_t kvaddr_t;
+/// typedef __uint64_t ksize_t;
+/// typedef __int64_t kssize_t;
+///
+/// typedef __vm_offset_t vm_offset_t;
+/// typedef __uint64_t vm_ooffset_t;
+/// typedef __vm_paddr_t vm_paddr_t;
+/// typedef __uint64_t vm_pindex_t;
+/// typedef __vm_size_t vm_size_t;
+///
+/// typedef __rman_res_t rman_res_t;
+///
+/// static __inline __uint16_t
+/// __bitcount16(__uint16_t _x)
+/// {
+///
+/// _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1);
+/// _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f;
+/// _x = (_x + (_x >> 8)) & 0x00ff;
+/// return (_x);
+/// }
+///
+/// static __inline __uint32_t
+/// __bitcount32(__uint32_t _x)
+/// {
+///
+/// _x = (_x & 0x55555555) + ((_x & 0xaaaaaaaa) >> 1);
+/// _x = (_x & 0x33333333) + ((_x & 0xcccccccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f;
+/// _x = (_x + (_x >> 8));
+/// _x = (_x + (_x >> 16)) & 0x000000ff;
+/// return (_x);
+/// }
+///
+///
+/// static __inline __uint64_t
+/// __bitcount64(__uint64_t _x)
+/// {
+///
+/// _x = (_x & 0x5555555555555555) + ((_x & 0xaaaaaaaaaaaaaaaa) >> 1);
+/// _x = (_x & 0x3333333333333333) + ((_x & 0xcccccccccccccccc) >> 2);
+/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f0f0f0f0f;
+/// _x = (_x + (_x >> 8));
+/// _x = (_x + (_x >> 16));
+/// _x = (_x + (_x >> 32)) & 0x000000ff;
+/// return (_x);
+/// }
+///
+///
+///
+///
+///
+/// typedef struct __sigset {
+/// __uint32_t __bits[4];
+/// } __sigset_t;
+///
+///
+///
+/// struct timeval {
+/// time_t tv_sec;
+/// suseconds_t tv_usec;
+/// };
+///
+///
+///
+///
+///
+/// struct timespec {
+/// time_t tv_sec;
+/// long tv_nsec;
+/// };
+///
+///
+/// struct itimerspec {
+/// struct timespec it_interval;
+/// struct timespec it_value;
+/// };
+///
+///
+/// typedef unsigned long __fd_mask;
+///
+/// typedef __fd_mask fd_mask;
+///
+///
+///
+///
+/// typedef __sigset_t sigset_t;
+///
+/// typedef struct fd_set {
+/// __fd_mask __fds_bits[(((1024) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))];
+/// } fd_set;
+///
+///
+/// int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+/// const struct timespec *restrict, const sigset_t *restrict);
+///
+///
+///
+/// int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
+///
+///
+///
+///
+/// static __inline int
+/// __major(dev_t _d)
+/// {
+/// return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff));
+/// }
+///
+/// static __inline int
+/// __minor(dev_t _d)
+/// {
+/// return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff));
+/// }
+///
+/// static __inline dev_t
+/// __makedev(int _Major, int _Minor)
+/// {
+/// return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
+/// ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff));
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+/// int ftruncate(int, off_t);
+///
+///
+///
+/// off_t lseek(int, off_t, int);
+///
+///
+///
+/// void * mmap(void *, size_t, int, int, int, off_t);
+///
+///
+///
+/// int truncate(const char *, off_t);
+///
+///
+///
+///
+///
+///
+///
+///
+/// static __inline int atomic_cmpset_char(volatile u_char *dst, u_char expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_char(volatile u_char *dst, u_char *expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_short(volatile u_short *dst, u_short expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_short(volatile u_short *dst, u_short *expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+/// static __inline int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
+///
+///
+///
+///
+///
+/// static __inline u_int
+/// atomic_fetchadd_int(volatile u_int *p, u_int v)
+/// {
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " xaddl %0,%1 ; "
+/// "# atomic_fetchadd_int"
+/// : "+r" (v),
+/// "+m" (*p)
+/// : : "cc");
+/// return (v);
+/// }
+///
+///
+///
+///
+///
+/// static __inline u_long
+/// atomic_fetchadd_long(volatile u_long *p, u_long v)
+/// {
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " xaddq %0,%1 ; "
+/// "# atomic_fetchadd_long"
+/// : "+r" (v),
+/// "+m" (*p)
+/// : : "cc");
+/// return (v);
+/// }
+///
+/// static __inline int
+/// atomic_testandset_int(volatile u_int *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btsl %2,%1 ; "
+/// "# atomic_testandset_int"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Ir" (v & 0x1f)
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandset_long(volatile u_long *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btsq %2,%1 ; "
+/// "# atomic_testandset_long"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Jr" ((u_long)(v & 0x3f))
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandclear_int(volatile u_int *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btrl %2,%1 ; "
+/// "# atomic_testandclear_int"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Ir" (v & 0x1f)
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline int
+/// atomic_testandclear_long(volatile u_long *p, u_int v)
+/// {
+/// u_char res;
+///
+/// __asm volatile(
+/// " " "lock ; " " "
+/// " btrq %2,%1 ; "
+/// "# atomic_testandclear_long"
+/// : "=@ccc" (res),
+/// "+m" (*p)
+/// : "Jr" ((u_long)(v & 0x3f))
+/// : "cc");
+/// return (res);
+/// }
+///
+/// static __inline void
+/// __storeload_barrier(void)
+/// {
+///
+/// __asm volatile("lock; addl $0,-8(%%rsp)" : : : "memory", "cc");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_acq(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_rel(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_acq_rel(void)
+/// {
+///
+/// __asm volatile(" " : : : "memory");
+/// }
+///
+/// static __inline void
+/// atomic_thread_fence_seq_cst(void)
+/// {
+///
+/// __storeload_barrier();
+/// }
+///
+///
+///
+/// static __inline void atomic_set_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_set_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "cc"); } static __inline void atomic_clear_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_add_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_subtract_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
+///
+/// static __inline void atomic_set_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_set_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_clear_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "cc"); } static __inline void atomic_clear_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_add_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_add_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+/// static __inline void atomic_subtract_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_subtract_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
+///
+///
+///
+///
+///
+/// static __inline u_char atomic_load_acq_char(volatile u_char *p) { u_char res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_char(volatile u_char *p, u_char v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_short atomic_load_acq_short(volatile u_short *p) { u_short res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_short(volatile u_short *p, u_short v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_int atomic_load_acq_int(volatile u_int *p) { u_int res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_int(volatile u_int *p, u_int v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+/// static __inline u_long atomic_load_acq_long(volatile u_long *p) { u_long res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_long(volatile u_long *p, u_long v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
+///
+/// static __inline u_int
+/// atomic_swap_int(volatile u_int *p, u_int v)
+/// {
+///
+/// __asm volatile(
+/// " xchgl %1,%0 ; "
+/// "# atomic_swap_int"
+/// : "+r" (v),
+/// "+m" (*p));
+/// return (v);
+/// }
+///
+/// static __inline u_long
+/// atomic_swap_long(volatile u_long *p, u_long v)
+/// {
+///
+/// __asm volatile(
+/// " xchgq %1,%0 ; "
+/// "# atomic_swap_long"
+/// : "+r" (v),
+/// "+m" (*p));
+/// return (v);
+/// }
+///
+///
+///
+///
+///
+/// extern char *_PathLocale;
+///
+/// int __detect_path_locale(void);
+/// int __wrap_setrunelocale(const char *);
+///
+///
+/// enum {
+/// XLC_COLLATE = 0,
+/// XLC_CTYPE,
+/// XLC_MONETARY,
+/// XLC_NUMERIC,
+/// XLC_TIME,
+/// XLC_MESSAGES,
+/// XLC_LAST
+/// };
+///
+/// _Static_assert(XLC_LAST - XLC_COLLATE == 6, "XLC values should be contiguous");
+/// _Static_assert(XLC_COLLATE ==
+///
+/// 1
+///
+/// - 1,
+/// "XLC_COLLATE doesn't match the LC_COLLATE value.");
+/// _Static_assert(XLC_CTYPE ==
+///
+/// 2
+///
+/// - 1,
+/// "XLC_CTYPE doesn't match the LC_CTYPE value.");
+/// _Static_assert(XLC_MONETARY ==
+///
+/// 3
+///
+/// - 1,
+/// "XLC_MONETARY doesn't match the LC_MONETARY value.");
+/// _Static_assert(XLC_NUMERIC ==
+///
+/// 4
+///
+/// - 1,
+/// "XLC_NUMERIC doesn't match the LC_NUMERIC value.");
+/// _Static_assert(XLC_TIME ==
+///
+/// 5
+///
+/// - 1,
+/// "XLC_TIME doesn't match the LC_TIME value.");
+/// _Static_assert(XLC_MESSAGES ==
+///
+/// 6
+///
+/// - 1,
+/// "XLC_MESSAGES doesn't match the LC_MESSAGES value.");
+///
+/// struct xlocale_refcounted {
+///
+/// long retain_count;
+///
+/// void(*destructor)(void*);
+/// };
+///
+///
+///
+///
+///
+///
+///
+/// struct xlocale_component {
+/// struct xlocale_refcounted header;
+///
+/// char locale[31 +1];
+///
+/// char version[12];
+/// };
+///
+///
+///
+///
+/// struct _xlocale {
+/// struct xlocale_refcounted header;
+///
+/// struct xlocale_component *components[XLC_LAST];
+///
+///
+/// int monetary_locale_changed;
+///
+///
+/// int using_monetary_locale;
+///
+///
+/// int numeric_locale_changed;
+///
+///
+/// int using_numeric_locale;
+///
+///
+/// int using_time_locale;
+///
+///
+/// int using_messages_locale;
+///
+/// struct lconv lconv;
+///
+/// char *csym;
+/// };
+///
+///
+///
+///
+/// __attribute__((unused)) static void*
+/// xlocale_retain(void *val)
+/// {
+/// struct xlocale_refcounted *obj = val;
+/// atomic_add_long(&(obj->retain_count), 1);
+/// return (val);
+/// }
+///
+///
+///
+///
+/// __attribute__((unused)) static void
+/// xlocale_release(void *val)
+/// {
+/// struct xlocale_refcounted *obj = val;
+/// long count;
+///
+/// count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
+/// if (count < 0 && obj->destructor !=
+///
+/// ((void *)0)
+///
+/// )
+/// obj->destructor(obj);
+/// }
+///
+///
+///
+///
+///
+/// extern void* __collate_load(const char*, locale_t);
+/// extern void* __ctype_load(const char*, locale_t);
+/// extern void* __messages_load(const char*, locale_t);
+/// extern void* __monetary_load(const char*, locale_t);
+/// extern void* __numeric_load(const char*, locale_t);
+/// extern void* __time_load(const char*, locale_t);
+///
+/// extern struct _xlocale __xlocale_global_locale;
+/// extern struct _xlocale __xlocale_C_locale;
+///
+///
+///
+///
+/// void __set_thread_rune_locale(locale_t loc);
+///
+///
+///
+///
+/// extern int __has_thread_locale;
+///
+///
+///
+///
+///
+/// extern _Thread_local locale_t __thread_locale;
+///
+///
+///
+///
+///
+///
+///
+/// static inline locale_t __get_locale(void)
+/// {
+///
+/// if (!__has_thread_locale) {
+/// return (&__xlocale_global_locale);
+/// }
+/// return (__thread_locale ? __thread_locale : &__xlocale_global_locale);
+/// }
+///
+///
+///
+///
+///
+/// static inline locale_t get_real_locale(locale_t locale)
+/// {
+/// switch ((intptr_t)locale) {
+/// case 0: return (&__xlocale_C_locale);
+/// case -1: return (&__xlocale_global_locale);
+/// default: return (locale);
+/// }
+/// }
+///
+///
+///
+///
+///
+///
+///
+///
+/// struct xlocale_ctype {
+/// struct xlocale_component header;
+/// _RuneLocale *runes;
+/// size_t (*__mbrtowc)(wchar_t *
+///
+/// restrict
+///
+/// , const char *
+///
+/// restrict
+///
+/// ,
+/// size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// int (*__mbsinit)(const mbstate_t *);
+/// size_t (*__mbsnrtowcs)(wchar_t *
+///
+/// restrict
+///
+/// , const char **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t (*__wcrtomb)(char *
+///
+/// restrict
+///
+/// , wchar_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t (*__wcsnrtombs)(char *
+///
+/// restrict
+///
+/// , const wchar_t **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// int __mb_cur_max;
+/// int __mb_sb_limit;
+///
+/// __mbstate_t mblen;
+///
+/// __mbstate_t mbrlen;
+///
+/// __mbstate_t mbrtoc16;
+///
+/// __mbstate_t mbrtoc32;
+///
+/// __mbstate_t mbrtowc;
+///
+/// __mbstate_t mbsnrtowcs;
+///
+/// __mbstate_t mbsrtowcs;
+///
+/// __mbstate_t mbtowc;
+///
+/// __mbstate_t c16rtomb;
+///
+/// __mbstate_t c32rtomb;
+///
+/// __mbstate_t wcrtomb;
+///
+/// __mbstate_t wcsnrtombs;
+///
+/// __mbstate_t wcsrtombs;
+///
+/// __mbstate_t wctomb;
+/// };
+///
+/// extern struct xlocale_ctype __xlocale_global_ctype;
+///
+///
+///
+///
+/// int _none_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _UTF8_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GB18030_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GB2312_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _GBK_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _BIG5_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+/// int _ascii_init(struct xlocale_ctype *, _RuneLocale *)
+///
+/// __attribute__((__visibility__("hidden")))
+///
+/// ;
+///
+/// typedef size_t (*mbrtowc_pfn_t)(wchar_t *
+///
+/// restrict
+///
+/// ,
+/// const char *
+///
+/// restrict
+///
+/// , size_t, mbstate_t *
+///
+/// restrict
+///
+/// );
+/// typedef size_t (*wcrtomb_pfn_t)(char *
+///
+/// restrict
+///
+/// , wchar_t,
+/// mbstate_t *
+///
+/// restrict
+///
+/// );
+/// size_t __mbsnrtowcs_std(wchar_t *
+///
+/// restrict
+///
+/// , const char **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// , mbrtowc_pfn_t);
+/// size_t __wcsnrtombs_std(char *
+///
+/// restrict
+///
+/// , const wchar_t **
+///
+/// restrict
+///
+/// ,
+/// size_t, size_t, mbstate_t *
+///
+/// restrict
+///
+/// , wcrtomb_pfn_t);
+///
+
+var X_DefaultRuneLocale = _RuneLocale{
+
+ __magic: *(*[8]int8)(unsafe.Pointer(ts)),
+ __encoding: *(*[32]int8)(unsafe.Pointer(ts + 9)),
+ __invalid_rune: 0xFFFD,
+
+ __runetype: [256]uint64{
+
+ 0: uint64(0x00000200),
+
+ 1: uint64(0x00000200),
+
+ 2: uint64(0x00000200),
+
+ 3: uint64(0x00000200),
+
+ 4: uint64(0x00000200),
+
+ 5: uint64(0x00000200),
+
+ 6: uint64(0x00000200),
+
+ 7: uint64(0x00000200),
+
+ 8: uint64(0x00000200),
+
+ 9: uint64(0x00000200 |
+
+ 0x00004000 |
+
+ 0x00020000),
+
+ 10: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 11: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 12: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 13: uint64(0x00000200 |
+
+ 0x00004000),
+
+ 14: uint64(0x00000200),
+
+ 15: uint64(0x00000200),
+
+ 16: uint64(0x00000200),
+
+ 17: uint64(0x00000200),
+
+ 18: uint64(0x00000200),
+
+ 19: uint64(0x00000200),
+
+ 20: uint64(0x00000200),
+
+ 21: uint64(0x00000200),
+
+ 22: uint64(0x00000200),
+
+ 23: uint64(0x00000200),
+
+ 24: uint64(0x00000200),
+
+ 25: uint64(0x00000200),
+
+ 26: uint64(0x00000200),
+
+ 27: uint64(0x00000200),
+
+ 28: uint64(0x00000200),
+
+ 29: uint64(0x00000200),
+
+ 30: uint64(0x00000200),
+
+ 31: uint64(0x00000200),
+
+ 32: uint64(0x00004000 |
+
+ 0x00020000 |
+
+ 0x00040000),
+
+ 33: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 34: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 35: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 36: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 37: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 38: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 39: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 40: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 41: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 42: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 43: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 44: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 45: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 46: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 47: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 48: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(0)),
+
+ 49: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(1)),
+
+ 50: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(2)),
+
+ 51: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(3)),
+
+ 52: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(4)),
+
+ 53: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(5)),
+
+ 54: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(6)),
+
+ 55: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(7)),
+
+ 56: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(8)),
+
+ 57: uint64(0x00000400 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00010000 |
+
+ 0x00400000 |
+
+ int64(9)),
+
+ 58: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 59: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 60: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 61: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 62: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 63: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 64: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 65: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(10)),
+
+ 66: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(11)),
+
+ 67: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(12)),
+
+ 68: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(13)),
+
+ 69: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(14)),
+
+ 70: uint64(0x00008000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(15)),
+
+ 71: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 72: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 73: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 74: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 75: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 76: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 77: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 78: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 79: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 80: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 81: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 82: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 83: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 84: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 85: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 86: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 87: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 88: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 89: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 90: uint64(0x00008000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 91: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 92: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 93: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 94: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 95: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 96: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 97: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(10)),
+
+ 98: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(11)),
+
+ 99: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(12)),
+
+ 100: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(13)),
+
+ 101: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(14)),
+
+ 102: uint64(0x00001000 |
+
+ 0x00010000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100 |
+
+ int64(15)),
+
+ 103: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 104: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 105: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 106: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 107: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 108: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 109: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 110: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 111: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 112: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 113: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 114: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 115: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 116: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 117: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 118: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 119: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 120: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 121: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 122: uint64(0x00001000 |
+
+ 0x00040000 |
+
+ 0x00000800 |
+
+ 0x00000100),
+
+ 123: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 124: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 125: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 126: uint64(0x00002000 |
+
+ 0x00040000 |
+
+ 0x00000800),
+
+ 127: uint64(0x00000200),
+ },
+ __maplower: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ },
+ __mapupper: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+ 0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+ 0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ },
+} /* table.cpp.c:2243:19 */
+
+var X_CurrentRuneLocale uintptr = 0 /* table.cpp.c:4092:19 */
+
+/// _RuneLocale *
+/// __runes_for_locale(locale_t locale, int *mb_sb_limit)
+/// {
+/// (locale = get_real_locale(locale));
+/// struct xlocale_ctype *c = ((struct xlocale_ctype*)(locale)->components[XLC_CTYPE]);
+/// *mb_sb_limit = c->__mb_sb_limit;
+/// return c->runes;
+/// }
+
+func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */
+ return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5))
+}
+
+type locale_t = uintptr /* alltypes.h:343:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisspace(tls *TLS, c int32) int32 { /* isspace.c:4:5: */
+ return Bool32(c == ' ' || uint32(c)-uint32('\t') < uint32(5))
+}
+
+func X__isspace_l(tls *TLS, c int32, l locale_t) int32 { /* isspace.c:9:5: */
+ return Xisspace(tls, c)
+}
+
+type uintptr_t = uint64 /* alltypes.h:55:24 */
+
+type intptr_t = int64 /* alltypes.h:70:15 */
+
+type int8_t = int8 /* alltypes.h:96:25 */
+
+type int16_t = int16 /* alltypes.h:101:25 */
+
+type int32_t = int32 /* alltypes.h:106:25 */
+
+type int64_t = int64 /* alltypes.h:111:25 */
+
+type intmax_t = int64 /* alltypes.h:116:25 */
+
+type uint8_t = uint8 /* alltypes.h:121:25 */
+
+type uint16_t = uint16 /* alltypes.h:126:25 */
+
+type uint32_t = uint32 /* alltypes.h:131:25 */
+
+type uint64_t = uint64 /* alltypes.h:136:25 */
+
+type uintmax_t = uint64 /* alltypes.h:146:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+type ssize_t = int64 /* alltypes.h:65:15 */
+
+type off_t = int64 /* alltypes.h:162:16 */
+
+type _IO_FILE = struct {
+ flags uint32
+ _ [4]byte
+ rpos uintptr
+ rend uintptr
+ close uintptr
+ wend uintptr
+ wpos uintptr
+ mustbezero_1 uintptr
+ wbase uintptr
+ read uintptr
+ write uintptr
+ seek uintptr
+ buf uintptr
+ buf_size size_t
+ prev uintptr
+ next uintptr
+ fd int32
+ pipe_pid int32
+ lockcount int64
+ mode int32
+ lock int32
+ lbf int32
+ _ [4]byte
+ cookie uintptr
+ off off_t
+ getln_buf uintptr
+ mustbezero_2 uintptr
+ shend uintptr
+ shlim off_t
+ shcnt off_t
+ prev_locked uintptr
+ next_locked uintptr
+ locale uintptr
+} /* alltypes.h:320:9 */
+
+type FILE = _IO_FILE /* alltypes.h:320:25 */
+
+type va_list = uintptr /* alltypes.h:326:27 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+type float_t = float32 /* alltypes.h:29:15 */
+
+type double_t = float64 /* alltypes.h:34:16 */
+
+func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ // var __u struct {__f float32;} at bp, 4
+
+ *(*float32)(unsafe.Pointer(bp)) = __f
+ return *(*uint32)(unsafe.Pointer(bp))
+}
+
+func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var __u struct {__f float64;} at bp, 8
+
+ *(*float64)(unsafe.Pointer(bp)) = __f
+ return *(*uint64)(unsafe.Pointer(bp))
+}
+
+type syscall_arg_t = int64 /* syscall.h:22:14 */
+
+func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */
+ var c int32
+ var x int32
+ var y int64
+ var neg int32 = 0
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c == '+' || c == '-' {
+ neg = Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') >= 10 && pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ if uint32(c-'0') >= 10 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return -0x7fffffffffffffff - int64(1)
+ }
+ for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ x = 10*x + c - '0'
+ }
+ for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ y = int64(10)*y + int64(c) - int64('0')
+ }
+ for ; uint32(c-'0') < 10; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if neg != 0 {
+ return -y
+ }
+ return y
+}
+
+func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var x [128]uint32_t at bp, 512
+
+ var i int32
+ var j int32
+ var k int32
+ var a int32
+ var z int32
+ var lrp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e10 int64 = int64(0)
+ var lnz int32 = 0
+ var gotdig int32 = 0
+ var gotrad int32 = 0
+ var rp int32
+ var e2 int32
+ var emax int32 = -emin - bits + 3
+ var denormal int32 = 0
+ var y float64
+ var frac float64 = float64(0)
+ var bias float64 = float64(0)
+
+ j = 0
+ k = 0
+
+ // Don't let leading zeros consume buffer space
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+ if c == '.' {
+ gotrad = 1
+ for c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }(); c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ lrp--
+ }
+ }
+
+ *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0)
+ for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ gotrad = 1
+ lrp = dc
+ } else if k < 128-3 {
+ dc++
+ if c != '0' {
+ lnz = int32(dc)
+ }
+ if j != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0')
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0')
+ }
+ if PreIncInt32(&j, 1) == 9 {
+ k++
+ j = 0
+ }
+ gotdig = 1
+ } else {
+ dc++
+ if c != '0' {
+ lnz = (128 - 4) * 9
+ *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1)
+ }
+ }
+ }
+ if !(gotrad != 0) {
+ lrp = dc
+ }
+
+ if gotdig != 0 && c|32 == 'e' {
+ e10 = scanexp(tls, f, pok)
+ if e10 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e10 = int64(0)
+ }
+ lrp = lrp + e10
+ } else if c >= 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ if !(gotdig != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ // Handle zero specially to avoid nasty special cases later
+ if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) {
+ return float64(sign) * 0.0
+ }
+
+ // Optimize small integers (w/no exponent) and over/under-flow
+ if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if lrp > int64(-emin/2) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if lrp < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ // Align incomplete final B1B digit
+ if j != 0 {
+ for ; j < 9; j++ {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10)
+ }
+ k++
+ j = 0
+ }
+
+ a = 0
+ z = k
+ e2 = 0
+ rp = int32(lrp)
+
+ // Optimize small to mid-size integers (even in exp. notation)
+ if lnz < 9 && lnz <= rp && rp < 18 {
+ if rp == 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp)))
+ }
+ if rp < 9 {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp])
+ }
+ var bitlim int32 = bits - 3*(rp-9)
+ if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) {
+ return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10])
+ }
+ }
+
+ // Drop trailing zeros
+ for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- {
+ }
+
+ // Align radix point to B1B digit boundary
+ if rp%9 != 0 {
+ var rpm9 int32
+ if rp >= 0 {
+ rpm9 = rp % 9
+ } else {
+ rpm9 = rp%9 + 9
+ }
+ var p10 int32 = _sp10s[8-rpm9]
+ var carry uint32_t = uint32_t(0)
+ for k = a; k != z; k++ {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry
+ carry = uint32_t(1000000000/p10) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry
+ }
+ rp = rp + (9 - rpm9)
+ }
+
+ // Upscale until desired number of bits are left of radix point
+ for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] {
+ var carry uint32_t = uint32_t(0)
+ e2 = e2 - 29
+ for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) {
+ var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry)
+ if tmp > uint64(1000000000) {
+ carry = uint32_t(tmp / uint64(1000000000))
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000))
+ } else {
+ carry = uint32_t(0)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp)
+ }
+ if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ z = k
+ }
+ if k == a {
+ break
+ }
+ }
+ if carry != 0 {
+ rp = rp + 9
+ a = (a - 1) & (128 - 1)
+ if a == z {
+ z = (z - 1) & (128 - 1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4))
+ }
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry
+ }
+ }
+
+ // Downscale until exactly number of bits are left of radix point
+ for {
+ var carry uint32_t = uint32_t(0)
+ var sh int32 = 1
+ for i = 0; i < 2; i++ {
+ k = (a + i) & (128 - 1)
+ if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] {
+ i = 2
+ break
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] {
+ break
+ }
+ }
+ if i == 2 && rp == 9*2 {
+ break
+ }
+ // FIXME: find a way to compute optimal sh
+ if rp > 9+9*2 {
+ sh = 9
+ }
+ e2 = e2 + sh
+ for k = a; k != z; k = (k + 1) & (128 - 1) {
+ var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1)
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry
+ carry = uint32_t(int32(1000000000)>>sh) * tmp
+ if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) {
+ a = (a + 1) & (128 - 1)
+ i--
+ rp = rp - 9
+ }
+ }
+ if carry != 0 {
+ if (z+1)&(128-1) != a {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry
+ z = (z + 1) & (128 - 1)
+ } else {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1)
+ }
+ }
+ }
+
+ // Assemble desired bits into floating point variable
+ for y = float64(AssignInt32(&i, 0)); i < 2; i++ {
+ if (a+i)&(128-1) == z {
+ *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0)
+ }
+ y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)))
+ }
+
+ y = y * float64(sign)
+
+ // Limit precision for denormal results
+ if bits > 53+e2-emin {
+ bits = 53 + e2 - emin
+ if bits < 0 {
+ bits = 0
+ }
+ denormal = 1
+ }
+
+ // Calculate bias term to force rounding, move out lower bits
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y)
+ frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits))
+ y = y - frac
+ y = y + bias
+ }
+
+ // Process tail of decimal input so it can affect rounding
+ if (a+i)&(128-1) != z {
+ var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))
+ if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) {
+ frac = frac + 0.25*float64(sign)
+ } else if t > uint32_t(500000000) {
+ frac = frac + 0.75*float64(sign)
+ } else if t == uint32_t(500000000) {
+ if (a+i+1)&(128-1) == z {
+ frac = frac + 0.5*float64(sign)
+ } else {
+ frac = frac + 0.75*float64(sign)
+ }
+ }
+ if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) {
+ frac += 1
+ }
+ }
+
+ y = y + frac
+ y = y - bias
+
+ if (e2+53)&0x7fffffff > emax-5 {
+ if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 {
+ if denormal != 0 && bits == 53+e2-emin {
+ denormal = 0
+ }
+ y = y * 0.5
+ e2++
+ }
+ if e2+53 > emax || denormal != 0 && frac != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+ }
+
+ return Xscalbnl(tls, y, e2)
+}
+
+var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */
+var _sp10s = [8]int32{10, 100, 1000, 10000,
+ 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */
+
+func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */
+ var x uint32_t = uint32_t(0)
+ var y float64 = float64(0)
+ var scale float64 = float64(1)
+ var bias float64 = float64(0)
+ var gottail int32 = 0
+ var gotrad int32 = 0
+ var gotdig int32 = 0
+ var rp int64 = int64(0)
+ var dc int64 = int64(0)
+ var e2 int64 = int64(0)
+ var d int32
+ var c int32
+
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+
+ // Skip leading zeros
+ for ; c == '0'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ gotdig = 1
+ }
+
+ if c == '.' {
+ gotrad = 1
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ // Count zeros after the radix point before significand
+ rp = int64(0)
+ __1:
+ if !(c == '0') {
+ goto __3
+ }
+ gotdig = 1
+ goto __2
+ __2:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ rp--
+ goto __1
+ goto __3
+ __3:
+ }
+
+ for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() {
+ if c == '.' {
+ if gotrad != 0 {
+ break
+ }
+ rp = dc
+ gotrad = 1
+ } else {
+ gotdig = 1
+ if c > '9' {
+ d = c | 32 + 10 - 'a'
+ } else {
+ d = c - '0'
+ }
+ if dc < int64(8) {
+ x = x*uint32_t(16) + uint32_t(d)
+ } else if dc < int64(53/4+1) {
+ y = y + float64(d)*AssignDivFloat64(&scale, float64(16))
+ } else if d != 0 && !(gottail != 0) {
+ y = y + 0.5*scale
+ gottail = 1
+ }
+ dc++
+ }
+ }
+ if !(gotdig != 0) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if gotrad != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ }
+ return float64(sign) * 0.0
+ }
+ if !(gotrad != 0) {
+ rp = dc
+ }
+ for dc < int64(8) {
+ x = x * uint32_t(16)
+ dc++
+ }
+ if c|32 == 'p' {
+ e2 = scanexp(tls, f, pok)
+ if e2 == -0x7fffffffffffffff-int64(1) {
+ if pok != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ } else {
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ e2 = int64(0)
+ }
+ } else {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ e2 = e2 + (int64(4)*rp - int64(32))
+
+ if !(x != 0) {
+ return float64(sign) * 0.0
+ }
+ if e2 > int64(-emin) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308
+ }
+ if e2 < int64(emin-2*53) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308
+ }
+
+ for x < 0x80000000 {
+ if y >= 0.5 {
+ x = x + (x + uint32_t(1))
+ y = y + (y - float64(1))
+ } else {
+ x = x + x
+ y = y + y
+ }
+ e2--
+ }
+
+ if int64(bits) > int64(32)+e2-int64(emin) {
+ bits = int32(int64(32) + e2 - int64(emin))
+ if bits < 0 {
+ bits = 0
+ }
+ }
+
+ if bits < 53 {
+ bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign))
+ }
+
+ if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) {
+ x++
+ y = float64(0)
+ }
+
+ y = bias + float64(sign)*float64(x) + float64(sign)*y
+ y = y - bias
+
+ if !(y != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ }
+
+ return Xscalbnl(tls, y, int32(e2))
+}
+
+func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */
+ var sign int32 = 1
+ var i size_t
+ var bits int32
+ var emin int32
+ var c int32
+
+ switch prec {
+ case 0:
+ bits = 24
+ emin = -125 - bits
+ break
+ case 1:
+ bits = 53
+ emin = -1021 - bits
+ break
+ case 2:
+ bits = 53
+ emin = -1021 - bits
+ break
+ default:
+ return float64(0)
+ }
+
+ for __isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0 {
+ }
+
+ if c == '+' || c == '-' {
+ sign = sign - 2*Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+
+ for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 41 /* "infinity" */ + uintptr(i)))); i++ {
+ if i < uint64(7) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 {
+ if i != uint64(8) {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if pok != 0 {
+ for ; i > uint64(3); i-- {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ }
+ }
+ return float64(float32(sign) * X__builtin_inff(tls))
+ }
+ if !(i != 0) {
+ for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 50 /* "nan" */ + uintptr(i)))); i++ {
+ if i < uint64(2) {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ }
+ }
+ }
+ if i == uint64(3) {
+ if func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }() != '(' {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ for i = uint64(1); ; i++ {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' {
+ continue
+ }
+ if c == ')' {
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+ for PostDecUint64(&i, 1) != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+ return float64(X__builtin_nanf(tls, ts+54))
+ }
+
+ if i != 0 {
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ X__shlim(tls, f, int64(0))
+ return float64(0)
+ }
+
+ if c == '0' {
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if c|32 == 'x' {
+ return hexfloat(tls, f, bits, emin, sign, pok)
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ c = '0'
+ }
+
+ return decfloat(tls, f, c, bits, emin, sign, pok)
+}
+
+// Lookup table for digit values. -1==255>=36 -> invalid
+var table = [257]uint8{Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24),
+ uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+ Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1),
+} /* intscan.c:7:28 */
+
+func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */
+ var val uintptr
+ var c int32
+ var neg int32
+ var x uint32
+ var y uint64
+ var bs int32
+ val = uintptr(unsafe.Pointer(&table)) + uintptr(1)
+ neg = 0
+ if !(base > uint32(36) || base == uint32(1)) {
+ goto __1
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__1:
+ ;
+__2:
+ if !(__isspace(tls, AssignInt32(&c, func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }())) != 0) {
+ goto __3
+ }
+ goto __2
+__3:
+ ;
+ if !(c == '+' || c == '-') {
+ goto __4
+ }
+ neg = -Bool32(c == '-')
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+__4:
+ ;
+ if !((base == uint32(0) || base == uint32(16)) && c == '0') {
+ goto __5
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(c|32 == 'x') {
+ goto __7
+ }
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) {
+ goto __9
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(pok != 0) {
+ goto __10
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ goto __11
+__10:
+ X__shlim(tls, f, int64(0))
+__11:
+ ;
+ return uint64(0)
+__9:
+ ;
+ base = uint32(16)
+ goto __8
+__7:
+ if !(base == uint32(0)) {
+ goto __12
+ }
+ base = uint32(8)
+__12:
+ ;
+__8:
+ ;
+ goto __6
+__5:
+ if !(base == uint32(0)) {
+ goto __13
+ }
+ base = uint32(10)
+__13:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) {
+ goto __14
+ }
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ X__shlim(tls, f, int64(0))
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return uint64(0)
+__14:
+ ;
+__6:
+ ;
+ if !(base == uint32(10)) {
+ goto __15
+ }
+ x = uint32(0)
+__17:
+ if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) {
+ goto __19
+ }
+ x = x*uint32(10) + uint32(c-'0')
+ goto __18
+__18:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __17
+ goto __19
+__19:
+ ;
+ y = uint64(x)
+__20:
+ if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) {
+ goto __22
+ }
+ y = y*uint64(10) + uint64(c-'0')
+ goto __21
+__21:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __20
+ goto __22
+__22:
+ ;
+ if !(uint32(c-'0') >= 10) {
+ goto __23
+ }
+ goto done
+__23:
+ ;
+ goto __16
+__15:
+ if !!(base&(base-uint32(1)) != 0) {
+ goto __24
+ }
+ bs = int32(*(*int8)(unsafe.Pointer(ts + 55 + uintptr(uint32(0x17)*base>>5&uint32(7)))))
+ x = uint32(0)
+__26:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) {
+ goto __28
+ }
+ x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __27
+__27:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __26
+ goto __28
+__28:
+ ;
+ y = uint64(x)
+__29:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) {
+ goto __31
+ }
+ y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __30
+__30:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __29
+ goto __31
+__31:
+ ;
+ goto __25
+__24:
+ x = uint32(0)
+__32:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) {
+ goto __34
+ }
+ x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __33
+__33:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __32
+ goto __34
+__34:
+ ;
+ y = uint64(x)
+__35:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) {
+ goto __37
+ }
+ y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))
+ goto __36
+__36:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __35
+ goto __37
+__37:
+ ;
+__25:
+ ;
+__16:
+ ;
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __38
+ }
+__39:
+ if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) {
+ goto __41
+ }
+ goto __40
+__40:
+ c = func() int32 {
+ if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend {
+ return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1))))
+ }
+ return X__shgetc(tls, f)
+ }()
+ goto __39
+ goto __41
+__41:
+ ;
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ y = lim
+ if !(lim&uint64(1) != 0) {
+ goto __42
+ }
+ neg = 0
+__42:
+ ;
+__38:
+ ;
+done:
+ if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) {
+ (*FILE)(unsafe.Pointer(f)).rpos--
+ } else {
+ }
+ if !(y >= lim) {
+ goto __43
+ }
+ if !(!(lim&uint64(1) != 0) && !(neg != 0)) {
+ goto __44
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim - uint64(1)
+ goto __45
+__44:
+ if !(y > lim) {
+ goto __46
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34
+ return lim
+__46:
+ ;
+__45:
+ ;
+__43:
+ ;
+ return y ^ uint64(neg) - uint64(neg)
+}
+
+// The shcnt field stores the number of bytes read so far, offset by
+// the value of buf-rpos at the last function call (__shlim or __shgetc),
+// so that between calls the inline shcnt macro can add rpos-buf to get
+// the actual count.
+
+func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */
+ (*FILE)(unsafe.Pointer(f)).shlim = lim
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1
+ // If lim is nonzero, rend must be a valid pointer.
+ if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+}
+
+func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */
+ var c int32
+ var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 {
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos
+ (*FILE)(unsafe.Pointer(f)).shlim = int64(-1)
+ return -1
+ }
+ cnt++
+ if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt)
+ } else {
+ (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend
+ }
+ (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt
+ if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf {
+ *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c)
+ }
+ return c
+}
+
+func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */
+ return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24
+}
+
+func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */
+ return Xcopysign(tls, x, y)
+}
+
+func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */
+ return Xfabs(tls, x)
+}
+
+func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */
+ return Xfmod(tls, x, y)
+}
+
+var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */
+
+func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) {
+ *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x
+ return r
+ }()
+ var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff))
+ var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63)
+ var y double_t
+
+ if e >= 0x3ff+52 {
+ return x
+ }
+ if s != 0 {
+ y = x - toint + toint
+ } else {
+ y = x + toint - toint
+ }
+ if y == float64(0) {
+ if s != 0 {
+ return -Float64FromFloat64(0.0)
+ }
+ return float64(0)
+ }
+ return y
+}
+
+func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ // var u struct {f float64;} at bp, 8
+
+ var y double_t = x
+
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ y = y * 0x1p1023
+ n = n - 1023
+ if n > 1023 {
+ n = 1023
+ }
+ }
+ } else if n < -1022 {
+ // make sure final n < -53 to avoid double
+ // rounding in the subnormal range
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ y = y * (float64(0x1p-1022) * 0x1p53)
+ n = n + (1022 - 53)
+ if n < -1022 {
+ n = -1022
+ }
+ }
+ }
+ *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52
+ x = y * *(*float64)(unsafe.Pointer(bp))
+ return x
+}
+
+func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */
+ return Xscalbn(tls, x, n)
+}
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type max_align_t = struct {
+ __ll int64
+ __ld float64
+} /* alltypes.h:41:54 */
+
+type imaxdiv_t = struct {
+ quot intmax_t
+ rem intmax_t
+} /* inttypes.h:14:40 */
+
+type pid_t = int32 /* alltypes.h:235:13 */
+
+type uid_t = uint32 /* alltypes.h:245:18 */
+
+type gid_t = uint32 /* alltypes.h:250:18 */
+
+type iovec = struct {
+ iov_base uintptr
+ iov_len size_t
+} /* alltypes.h:355:1 */
+
+type socklen_t = uint32 /* alltypes.h:361:18 */
+
+type sa_family_t = uint16 /* alltypes.h:366:24 */
+
+type msghdr = struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+} /* socket.h:22:1 */
+
+type cmsghdr = struct {
+ cmsg_len socklen_t
+ __pad1 int32
+ cmsg_level int32
+ cmsg_type int32
+} /* socket.h:44:1 */
+
+type linger = struct {
+ l_onoff int32
+ l_linger int32
+} /* socket.h:74:1 */
+
+type sockaddr = struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+} /* socket.h:367:1 */
+
+type sockaddr_storage = struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+} /* socket.h:372:1 */
+
+type in_port_t = uint16_t /* in.h:12:18 */
+type in_addr_t = uint32_t /* in.h:13:18 */
+type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */
+
+type sockaddr_in = struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+} /* in.h:16:1 */
+
+type in6_addr = struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+} /* in.h:23:1 */
+
+type sockaddr_in6 = struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+} /* in.h:34:1 */
+
+type ipv6_mreq = struct {
+ ipv6mr_multiaddr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipv6mr_interface uint32
+} /* in.h:42:1 */
+
+type ip_opts = struct {
+ ip_dst struct{ s_addr in_addr_t }
+ ip_opts [40]int8
+} /* in.h:229:1 */
+
+type ip_mreq = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+} /* in.h:247:1 */
+
+type ip_mreqn = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_address struct{ s_addr in_addr_t }
+ imr_ifindex int32
+} /* in.h:252:1 */
+
+type ip_mreq_source = struct {
+ imr_multiaddr struct{ s_addr in_addr_t }
+ imr_interface struct{ s_addr in_addr_t }
+ imr_sourceaddr struct{ s_addr in_addr_t }
+} /* in.h:258:1 */
+
+type ip_msfilter = struct {
+ imsf_multiaddr struct{ s_addr in_addr_t }
+ imsf_interface struct{ s_addr in_addr_t }
+ imsf_fmode uint32_t
+ imsf_numsrc uint32_t
+ imsf_slist [1]struct{ s_addr in_addr_t }
+} /* in.h:264:1 */
+
+type group_req = struct {
+ gr_interface uint32_t
+ _ [4]byte
+ gr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:275:1 */
+
+type group_source_req = struct {
+ gsr_interface uint32_t
+ _ [4]byte
+ gsr_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gsr_source struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:280:1 */
+
+type group_filter = struct {
+ gf_interface uint32_t
+ _ [4]byte
+ gf_group struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+ gf_fmode uint32_t
+ gf_numsrc uint32_t
+ gf_slist [1]struct {
+ ss_family sa_family_t
+ __ss_padding [118]int8
+ __ss_align uint64
+ }
+} /* in.h:286:1 */
+
+type in_pktinfo = struct {
+ ipi_ifindex int32
+ ipi_spec_dst struct{ s_addr in_addr_t }
+ ipi_addr struct{ s_addr in_addr_t }
+} /* in.h:297:1 */
+
+type in6_pktinfo = struct {
+ ipi6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ ipi6_ifindex uint32
+} /* in.h:303:1 */
+
+type ip6_mtuinfo = struct {
+ ip6m_addr struct {
+ sin6_family sa_family_t
+ sin6_port in_port_t
+ sin6_flowinfo uint32_t
+ sin6_addr struct {
+ __in6_union struct {
+ _ [0]uint32
+ __s6_addr [16]uint8_t
+ }
+ }
+ sin6_scope_id uint32_t
+ }
+ ip6m_mtu uint32_t
+} /* in.h:308:1 */
+
+type addrinfo = struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+} /* netdb.h:16:1 */
+
+// Legacy functions follow (marked OBsolete in SUS)
+
+type netent = struct {
+ n_name uintptr
+ n_aliases uintptr
+ n_addrtype int32
+ n_net uint32_t
+} /* netdb.h:62:1 */
+
+type hostent = struct {
+ h_name uintptr
+ h_aliases uintptr
+ h_addrtype int32
+ h_length int32
+ h_addr_list uintptr
+} /* netdb.h:69:1 */
+
+type servent = struct {
+ s_name uintptr
+ s_aliases uintptr
+ s_port int32
+ _ [4]byte
+ s_proto uintptr
+} /* netdb.h:78:1 */
+
+type protoent = struct {
+ p_name uintptr
+ p_aliases uintptr
+ p_proto int32
+ _ [4]byte
+} /* netdb.h:85:1 */
+
+type aibuf = struct {
+ ai struct {
+ ai_flags int32
+ ai_family int32
+ ai_socktype int32
+ ai_protocol int32
+ ai_addrlen socklen_t
+ _ [4]byte
+ ai_addr uintptr
+ ai_canonname uintptr
+ ai_next uintptr
+ }
+ sa struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+ }
+ lock [1]int32
+ slot int16
+ ref int16
+ _ [4]byte
+} /* lookup.h:10:1 */
+
+type sa = struct {
+ sin struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ _ [12]byte
+} /* lookup.h:10:1 */
+
+type address = struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+} /* lookup.h:20:1 */
+
+type service = struct {
+ port uint16_t
+ proto uint8
+ socktype uint8
+} /* lookup.h:27:1 */
+
+type resolvconf = struct {
+ ns [3]struct {
+ family int32
+ scopeid uint32
+ addr [16]uint8_t
+ sortkey int32
+ }
+ nns uint32
+ attempts uint32
+ ndots uint32
+ timeout uint32
+} /* lookup.h:34:1 */
+
+func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */
+ var cnt size_t
+ cnt = uint64(1)
+__1:
+ if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) {
+ goto __3
+ }
+ goto __2
+__2:
+ cnt++
+ p = (*addrinfo)(unsafe.Pointer(p)).ai_next
+ goto __1
+ goto __3
+__3:
+ ;
+ var b uintptr = p - uintptr(uint64(uintptr(0)))
+ b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot)
+ //TODO LOCK(b->lock);
+ if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) {
+ Xfree(tls, b)
+ }
+ //TODO else UNLOCK(b->lock);
+}
+
+type time_t = int64 /* alltypes.h:85:16 */
+
+type clockid_t = int32 /* alltypes.h:214:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int64
+} /* alltypes.h:229:1 */
+
+type pthread_t = uintptr /* alltypes.h:273:26 */
+
+type pthread_once_t = int32 /* alltypes.h:279:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:284:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:289:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */
+
+type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:349:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:349:71 */
+
+type pthread_attr_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:372:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [10]int32
+ }
+} /* alltypes.h:377:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:387:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [14]int32
+ }
+} /* alltypes.h:397:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ }
+} /* alltypes.h:402:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int64
+ }
+ __reserved3 int32
+ _ [4]byte
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:209:14 */
+
+type clock_t = int64 /* alltypes.h:219:14 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ _ [4]byte
+ tm_gmtoff int64
+ tm_zone uintptr
+} /* time.h:38:1 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int64
+ }
+} /* time.h:80:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* pthread.h:206:1 */
+
+type useconds_t = uint32 /* alltypes.h:260:18 */
+
+func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */
+ bp := tls.Alloc(1608)
+ defer tls.Free(1608)
+
+ // var ports [2]service at bp, 8
+
+ // var addrs [48]address at bp+8, 1344
+
+ // var canon [256]int8 at bp+1352, 256
+
+ var outcanon uintptr
+ var nservs int32
+ var naddrs int32
+ var nais int32
+ var canon_len int32
+ var i int32
+ var j int32
+ var k int32
+ var family int32 = 0
+ var flags int32 = 0
+ var proto int32 = 0
+ var socktype int32 = 0
+ var out uintptr
+
+ if !(host != 0) && !(serv != 0) {
+ return -2
+ }
+
+ if hint != 0 {
+ family = (*addrinfo)(unsafe.Pointer(hint)).ai_family
+ flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags
+ proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol
+ socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype
+
+ var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400
+ if flags&mask != flags {
+ return -1
+ }
+
+ switch family {
+ case 2:
+ fallthrough
+ case 10:
+ fallthrough
+ case 0:
+ break
+ fallthrough
+ default:
+ return -6
+ }
+ }
+
+ if flags&0x20 != 0 {
+ Xabort(tls) //TODO-
+ // /* Define the "an address is configured" condition for address
+ // * families via ability to create a socket for the family plus
+ // * routability of the loopback address for the family. */
+ // static const struct sockaddr_in lo4 = {
+ // .sin_family = AF_INET, .sin_port = 65535,
+ // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN
+ // ? 0x7f000001 : 0x0100007f
+ // };
+ // static const struct sockaddr_in6 lo6 = {
+ // .sin6_family = AF_INET6, .sin6_port = 65535,
+ // .sin6_addr = IN6ADDR_LOOPBACK_INIT
+ // };
+ // int tf[2] = { AF_INET, AF_INET6 };
+ // const void *ta[2] = { &lo4, &lo6 };
+ // socklen_t tl[2] = { sizeof lo4, sizeof lo6 };
+ // for (i=0; i<2; i++) {
+ // if (family==tf[1-i]) continue;
+ // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM,
+ // IPPROTO_UDP);
+ // if (s>=0) {
+ // int cs;
+ // pthread_setcancelstate(
+ // PTHREAD_CANCEL_DISABLE, &cs);
+ // int r = connect(s, ta[i], tl[i]);
+ // pthread_setcancelstate(cs, 0);
+ // close(s);
+ // if (!r) continue;
+ // }
+ // switch (errno) {
+ // case EADDRNOTAVAIL:
+ // case EAFNOSUPPORT:
+ // case EHOSTUNREACH:
+ // case ENETDOWN:
+ // case ENETUNREACH:
+ // break;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+ // if (family == tf[i]) return EAI_NONAME;
+ // family = tf[1-i];
+ // }
+ }
+
+ nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags)
+ if nservs < 0 {
+ return nservs
+ }
+
+ naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags)
+ if naddrs < 0 {
+ return naddrs
+ }
+
+ nais = nservs * naddrs
+ canon_len = int32(Xstrlen(tls, bp+1352))
+ out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1))
+ if !(out != 0) {
+ return -10
+ }
+
+ if canon_len != 0 {
+ outcanon = out + uintptr(nais)*88
+ Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1))
+ } else {
+ outcanon = uintptr(0)
+ }
+
+ for k = AssignInt32(&i, 0); i < naddrs; i++ {
+ j = 0
+ __1:
+ if !(j < nservs) {
+ goto __3
+ }
+ {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k)
+ //TODO out[k].ai = (struct addrinfo){
+ //TODO .ai_family = addrs[i].family,
+ //TODO .ai_socktype = ports[j].socktype,
+ //TODO .ai_protocol = ports[j].proto,
+ //TODO .ai_addrlen = addrs[i].family == AF_INET
+ //TODO ? sizeof(struct sockaddr_in)
+ //TODO : sizeof(struct sockaddr_in6),
+ //TODO .ai_addr = (void *)&out[k].sa,
+ //TODO .ai_canonname = outcanon };
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto)
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 {
+ if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 {
+ return uint32(unsafe.Sizeof(sockaddr_in{}))
+ }
+ return uint32(unsafe.Sizeof(sockaddr_in6{}))
+ }()
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48
+ (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon
+ if k != 0 {
+ (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88
+ }
+ switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family {
+ case 2:
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2)
+ (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4))
+ break
+ case 10:
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port)
+ (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid
+ Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16))
+ break
+ }
+
+ }
+ goto __2
+ __2:
+ j++
+ k++
+ goto __1
+ goto __3
+ __3:
+ }
+ (*aibuf)(unsafe.Pointer(out)).ref = int16(nais)
+ *(*uintptr)(unsafe.Pointer(res)) = out
+ return 0
+}
+
+type ucred = struct {
+ pid pid_t
+ uid uid_t
+ gid gid_t
+} /* socket.h:57:1 */
+
+type mmsghdr = struct {
+ msg_hdr struct {
+ msg_name uintptr
+ msg_namelen socklen_t
+ _ [4]byte
+ msg_iov uintptr
+ msg_iovlen int32
+ __pad1 int32
+ msg_control uintptr
+ msg_controllen socklen_t
+ __pad2 int32
+ msg_flags int32
+ _ [4]byte
+ }
+ msg_len uint32
+ _ [4]byte
+} /* socket.h:63:1 */
+
+func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh)
+ _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyaddr_r(tls, a, l, af, _sh,
+ _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh
+}
+
+var _sh uintptr /* gethostbyaddr.c:9:24: */
+
+func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */
+ return Xgethostbyname2(tls, name, 2)
+}
+
+func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var size size_t = uint64(63)
+ // var res uintptr at bp, 8
+
+ var err int32
+ for ok := true; ok; ok = err == 34 {
+ Xfree(tls, _sh1)
+ _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1)))
+ if !(_sh1 != 0) {
+ *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3
+ return uintptr(0)
+ }
+ err = Xgethostbyname2_r(tls, name, af, _sh1,
+ _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls))
+ }
+ if err != 0 {
+ return uintptr(0)
+ }
+ return _sh1
+}
+
+var _sh1 uintptr /* gethostbyname2.c:10:24: */
+
+func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */
+ bp := tls.Alloc(1600)
+ defer tls.Free(1600)
+
+ // var addrs [48]address at bp, 1344
+
+ // var canon [256]int8 at bp+1344, 256
+
+ var i int32
+ var cnt int32
+ var align size_t
+ var need size_t
+
+ *(*uintptr)(unsafe.Pointer(res)) = uintptr(0)
+ cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02)
+ if cnt < 0 {
+ switch cnt {
+ case -2:
+ *(*int32)(unsafe.Pointer(err)) = 1
+ return 2
+ fallthrough
+ case -3:
+ *(*int32)(unsafe.Pointer(err)) = 2
+ return 11
+ fallthrough
+ default:
+ fallthrough
+ case -4:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return 74
+ fallthrough
+ case -10:
+ fallthrough
+ case -11:
+ *(*int32)(unsafe.Pointer(err)) = 3
+ return *(*int32)(unsafe.Pointer(X___errno_location(tls)))
+ }
+ }
+
+ (*hostent)(unsafe.Pointer(h)).h_addrtype = af
+ (*hostent)(unsafe.Pointer(h)).h_length = func() int32 {
+ if af == 10 {
+ return 16
+ }
+ return 4
+ }()
+
+ // Align buffer
+ align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))
+
+ need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))
+ need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ need = need + (Xstrlen(tls, name) + uint64(1))
+ need = need + (Xstrlen(tls, bp+1344) + uint64(1))
+ need = need + align
+
+ if need > buflen {
+ return 34
+ }
+
+ buf += uintptr(align)
+ (*hostent)(unsafe.Pointer(h)).h_aliases = buf
+ buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))
+ (*hostent)(unsafe.Pointer(h)).h_addr_list = buf
+ buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0))))
+
+ for i = 0; i < cnt; i++ {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf
+ buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length)
+ Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length))
+ }
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0)
+
+ (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf)
+ Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344)
+ buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))
+
+ if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf
+ Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name)
+ buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))
+ } else {
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0)
+ }
+
+ *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0)
+
+ *(*uintptr)(unsafe.Pointer(res)) = h
+ return 0
+}
+
+type if_nameindex = struct {
+ if_index uint32
+ _ [4]byte
+ if_name uintptr
+} /* if.h:12:1 */
+
+type ifaddr = struct {
+ ifa_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ ifa_ifu struct {
+ ifu_broadaddr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ }
+ ifa_ifp uintptr
+ ifa_next uintptr
+} /* if.h:51:1 */
+
+type ifmap = struct {
+ mem_start uint64
+ mem_end uint64
+ base_addr uint16
+ irq uint8
+ dma uint8
+ port uint8
+ _ [3]byte
+} /* if.h:64:1 */
+
+type ifreq = struct {
+ ifr_ifrn struct{ ifrn_name [16]int8 }
+ ifr_ifru struct {
+ _ [0]uint64
+ ifru_addr struct {
+ sa_family sa_family_t
+ sa_data [14]int8
+ }
+ _ [8]byte
+ }
+} /* if.h:76:1 */
+
+type ifconf = struct {
+ ifc_len int32
+ _ [4]byte
+ ifc_ifcu struct{ ifcu_buf uintptr }
+} /* if.h:116:1 */
+
+type ns_sect = uint32 /* nameser.h:37:3 */
+
+type __ns_msg = struct {
+ _msg uintptr
+ _eom uintptr
+ _id uint16_t
+ _flags uint16_t
+ _counts [4]uint16_t
+ _ [4]byte
+ _sections [4]uintptr
+ _sect ns_sect
+ _rrnum int32
+ _msg_ptr uintptr
+} /* nameser.h:39:9 */
+
+type ns_msg = __ns_msg /* nameser.h:46:3 */
+
+type _ns_flagdata = struct {
+ mask int32
+ shift int32
+} /* nameser.h:48:1 */
+
+type __ns_rr = struct {
+ name [1025]int8
+ _ [1]byte
+ __type uint16_t
+ rr_class uint16_t
+ _ [2]byte
+ ttl uint32_t
+ rdlength uint16_t
+ _ [2]byte
+ rdata uintptr
+} /* nameser.h:59:9 */
+
+type ns_rr = __ns_rr /* nameser.h:66:3 */
+
+type ns_flag = uint32 /* nameser.h:87:3 */
+
+type ns_opcode = uint32 /* nameser.h:96:3 */
+
+type ns_rcode = uint32 /* nameser.h:115:3 */
+
+type ns_update_operation = uint32 /* nameser.h:121:3 */
+
+type ns_tsig_key1 = struct {
+ name [1025]int8
+ alg [1025]int8
+ _ [6]byte
+ data uintptr
+ len int32
+ _ [4]byte
+} /* nameser.h:123:1 */
+
+type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */
+
+type ns_tcp_tsig_state1 = struct {
+ counter int32
+ _ [4]byte
+ key uintptr
+ ctx uintptr
+ sig [512]uint8
+ siglen int32
+ _ [4]byte
+} /* nameser.h:130:1 */
+
+type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */
+
+type ns_type = uint32 /* nameser.h:200:3 */
+
+type ns_class = uint32 /* nameser.h:219:3 */
+
+type ns_key_types = uint32 /* nameser.h:226:3 */
+
+type ns_cert_types = uint32 /* nameser.h:234:3 */
+
+type HEADER = struct {
+ _ [0]uint32
+ id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */
+ qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */
+ nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */
+} /* nameser.h:353:3 */
+
+// unused; purely for broken apps
+type __res_state = struct {
+ retrans int32
+ retry int32
+ options uint64
+ nscount int32
+ nsaddr_list [3]struct {
+ sin_family sa_family_t
+ sin_port in_port_t
+ sin_addr struct{ s_addr in_addr_t }
+ sin_zero [8]uint8_t
+ }
+ id uint16
+ _ [2]byte
+ dnsrch [7]uintptr
+ defdname [256]int8
+ pfcode uint64
+ ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */
+ _ [4]byte
+ sort_list [10]struct {
+ addr struct{ s_addr in_addr_t }
+ mask uint32_t
+ }
+ qhook uintptr
+ rhook uintptr
+ res_h_errno int32
+ _vcsock int32
+ _flags uint32
+ _ [4]byte
+ _u struct {
+ _ [0]uint64
+ pad [52]int8
+ _ [4]byte
+ }
+} /* resolv.h:26:9 */
+
+// unused; purely for broken apps
+type res_state = uintptr /* resolv.h:62:3 */
+
+type res_sym = struct {
+ number int32
+ _ [4]byte
+ name uintptr
+ humanname uintptr
+} /* resolv.h:70:1 */
+
+func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */
+ p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0)
+ for ok := true; ok; ok = x != 0 {
+ *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10))
+ x = x / uint32(10)
+ }
+ return p
+}
+
+func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ Xsprintf(tls, s, ts+64,
+ VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip)))))
+}
+
+func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */
+ var i int32
+ for i = 15; i >= 0; i-- {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4]
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.')
+ }
+ Xstrcpy(tls, s, ts+89)
+}
+
+var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 98)) /* getnameinfo.c:36:20 */
+
+func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */
+ bp := tls.Alloc(556)
+ defer tls.Free(556)
+
+ // var line [512]int8 at bp+16, 512
+
+ var p uintptr
+ var z uintptr
+ var _buf [1032]uint8
+ _ = _buf
+ // var atmp [16]uint8 at bp, 16
+
+ // var iplit address at bp+528, 28
+
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var f uintptr = Xfopen(tls, ts+115, ts+126)
+ if !(f != 0) {
+ return
+ }
+ if family == 2 {
+ Xmemcpy(tls, bp+uintptr(12), a, uint64(4))
+ Xmemcpy(tls, bp, ts+129, uint64(12))
+ a = bp /* &atmp[0] */
+ }
+ for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 {
+ if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+
+ for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 {
+ continue
+ }
+
+ if (*address)(unsafe.Pointer(bp+528)).family == 2 {
+ Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4))
+ Xmemcpy(tls, bp+528+8, ts+129, uint64(12))
+ (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0)
+ }
+
+ if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid {
+ continue
+ }
+
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if (int64(z)-int64(p))/1 < int64(256) {
+ Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ break
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+}
+
+func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */
+ Xabort(tls) //TODO-
+ // unsigned long svport;
+ // char line[128], *p, *z;
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) return;
+ // while (fgets(line, sizeof line, f)) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // for (p=line; *p && !isspace(*p); p++);
+ // if (!*p) continue;
+ // *p++ = 0;
+ // svport = strtoul(p, &z, 10);
+
+ // if (svport != port || z==p) continue;
+ // if (dgram && strncmp(z, "/udp", 4)) continue;
+ // if (!dgram && strncmp(z, "/tcp", 4)) continue;
+ // if (p-line > 32) continue;
+
+ // memcpy(buf, line, p-line);
+ // break;
+ // }
+ // __fclose_ca(f);
+}
+
+var Xh_errno int32 /* h_errno.c:4:5: */
+
+func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */
+ return uintptr(unsafe.Pointer(&Xh_errno))
+}
+
+func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */
+ bp := tls.Alloc(40)
+ defer tls.Free(40)
+
+ var s uintptr = s0
+ var d uintptr = dest
+ *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)}
+ // var z uintptr at bp+32, 8
+
+ var i int32
+
+ for i = 0; i < 4; i++ {
+ *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0)
+ if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10))
+ }() != 0) {
+ return 0
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) {
+ break
+ }
+ s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1)
+ }
+ if i == 4 {
+ return 0
+ }
+ switch i {
+ case 0:
+ *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff)
+ AssignShrPtrUint64(bp, int(24))
+ fallthrough
+ case 1:
+ *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff)
+ AssignShrPtrUint64(bp+1*8, int(16))
+ fallthrough
+ case 2:
+ *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff)
+ AssignShrPtrUint64(bp+2*8, int(8))
+ }
+ for i = 0; i < 4; i++ {
+ if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)))
+ }
+ return 1
+}
+
+func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */
+ bp := tls.Alloc(276)
+ defer tls.Free(276)
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var max int32
+ var best int32
+ // var buf [100]int8 at bp+176, 100
+
+ switch af {
+ case 2:
+ if socklen_t(Xsnprintf(tls, s, uint64(l), ts+142, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l {
+ return s
+ }
+ break
+ case 10:
+ if Xmemcmp(tls, a, ts+129, uint64(12)) != 0 {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+154,
+ VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ } else {
+ Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})),
+ ts+178,
+ VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))),
+ 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))),
+ int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15)))))
+ }
+ // Replace longest /(^0|:)[:0]{2,}/ with "::"
+ i = AssignInt32(&best, 0)
+ max = 2
+ for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ {
+ if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' {
+ continue
+ }
+ j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+208))
+ if j > max {
+ best = i
+ max = j
+ }
+ }
+ if max > 3 {
+ *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':'))
+ Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1))
+ }
+ if Xstrlen(tls, bp+176) < size_t(l) {
+ Xstrcpy(tls, s, bp+176)
+ return s
+ }
+ break
+ default:
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return uintptr(0)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28
+ return uintptr(0)
+}
+
+func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */
+ if c-uint32('0') < uint32(10) {
+ return int32(c - uint32('0'))
+ }
+ c = c | uint32(32)
+ if c-uint32('a') < uint32(6) {
+ return int32(c - uint32('a') + uint32(10))
+ }
+ return -1
+}
+
+func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */
+ bp := tls.Alloc(16)
+ defer tls.Free(16)
+
+ // var ip [8]uint16_t at bp, 16
+
+ var a uintptr = a0
+ var i int32
+ var j int32
+ var v int32
+ var d int32
+ var brk int32 = -1
+ var need_v4 int32 = 0
+
+ if af == 2 {
+ for i = 0; i < 4; i++ {
+ for v = AssignInt32(&j, 0); j < 3 && func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10))
+ }() != 0; j++ {
+ v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0'
+ }
+ if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 {
+ return 0
+ }
+ *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v)
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 {
+ return 1
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' {
+ return 0
+ }
+ s += uintptr(j + 1)
+ }
+ return 0
+ } else if af != 10 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97
+ return -1
+ }
+
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' {
+ return 0
+ }
+
+ for i = 0; ; i++ {
+ if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 {
+ brk = i
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0)
+ if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ continue
+ }
+ for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ {
+ v = 16*v + d
+ }
+ if j == 0 {
+ return 0
+ }
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v)
+ if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) {
+ break
+ }
+ if i == 7 {
+ return 0
+ }
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' {
+ if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 {
+ return 0
+ }
+ need_v4 = 1
+ i++
+ break
+ }
+ s += uintptr(j + 1)
+ }
+ if brk >= 0 {
+ Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk)))
+ for j = 0; j < 7-i; j++ {
+ *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0)
+ }
+ }
+ for j = 0; j < 8; j++ {
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8)
+ *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2)))
+ }
+ if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 {
+ return 0
+ }
+ return 1
+}
+
+func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */
+ bp := tls.Alloc(96)
+ defer tls.Free(96)
+
+ // var a4 in_addr at bp, 4
+
+ // var a6 in6_addr at bp+68, 16
+
+ if X__inet_aton(tls, name, bp) > 0 {
+ if family == 10 { // wrong family
+ return -2
+ }
+ Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 2
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(0)
+ return 1
+ }
+ // var tmp [64]int8 at bp+4, 64
+
+ var p uintptr = Xstrchr(tls, name, '%')
+ // var z uintptr at bp+88, 8
+
+ var scopeid uint64 = uint64(0)
+ if p != 0 && (int64(p)-int64(name))/1 < int64(64) {
+ Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1))
+ *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0)
+ name = bp + 4 /* &tmp[0] */
+ }
+
+ if Xinet_pton(tls, 10, name, bp+68) <= 0 {
+ return 0
+ }
+ if family == 2 { // wrong family
+ return -2
+ }
+
+ Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{})))
+ (*address)(unsafe.Pointer(buf)).family = 10
+ if p != 0 {
+ if func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1)))))
+ }
+ return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10))
+ }() != 0 {
+ scopeid = Xstrtoull(tls, p, bp+88, 10)
+ } else {
+ *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1)
+ }
+ if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 {
+ Xabort(tls) //TODO-
+ // if (!IN6_IS_ADDR_LINKLOCAL(&a6) &&
+ // !IN6_IS_ADDR_MC_LINKLOCAL(&a6))
+ // return EAI_NONAME;
+ // scopeid = if_nametoindex(p);
+ // if (!scopeid) return EAI_NONAME;
+ }
+ if scopeid > uint64(0xffffffff) {
+ return -2
+ }
+ }
+ (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid)
+ return 1
+}
+
+type mode_t = uint32 /* alltypes.h:152:18 */
+
+type flock = struct {
+ l_type int16
+ l_whence int16
+ _ [4]byte
+ l_start off_t
+ l_len off_t
+ l_pid pid_t
+ _ [4]byte
+} /* fcntl.h:24:1 */
+
+func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */
+ var s uintptr
+ //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0;
+ if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) {
+ return 0
+ }
+ for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ {
+ }
+ return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0))
+}
+
+var Xzero_struct_address address /* lookup_name.c:27:16: */
+
+func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */
+ var cnt int32 = 0
+ if name != 0 {
+ return 0
+ }
+ if flags&0x01 != 0 {
+ //TODO if (family != AF_INET6)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET };
+ if family != 10 {
+ var x = Xzero_struct_address
+ x.family = 2
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ //TODO if (family != AF_INET)
+ //TODO buf[cnt++] = (struct address){ .family = AF_INET6 };
+ if family != 2 {
+ var x = Xzero_struct_address
+ x.family = 10
+ *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x
+ }
+ } else {
+ Xabort(tls) //TODO-
+ // if (family != AF_INET6)
+ // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } };
+ // if (family != AF_INET)
+ // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } };
+ }
+ return cnt
+}
+
+func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */
+ return X__lookup_ipliteral(tls, buf, name, family)
+}
+
+func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */
+ bp := tls.Alloc(512)
+ defer tls.Free(512)
+
+ // var line [512]int8 at bp, 512
+
+ var l size_t = Xstrlen(tls, name)
+ var cnt int32 = 0
+ var badfam int32 = 0
+ var _buf [1032]uint8
+ _ = _buf
+ //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf);
+ var _f FILE
+ _ = _f
+ var f uintptr = Xfopen(tls, ts+115, ts+126)
+ if !(f != 0) {
+ switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) {
+ case 2:
+ fallthrough
+ case 20:
+ fallthrough
+ case 13:
+ return 0
+ fallthrough
+ default:
+ return -11
+ }
+ }
+ for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 {
+ var p uintptr
+ var z uintptr
+
+ if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n')
+ *(*int8)(unsafe.Pointer(p)) = int8(0)
+ }
+ for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ {
+ }
+ if !(p != 0) {
+ continue
+ }
+
+ // Isolate IP address to parse
+ for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ {
+ }
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0)
+ switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) {
+ case 1:
+ cnt++
+ break
+ case 0:
+ continue
+ default:
+ badfam = -2
+ continue
+ }
+
+ // Extract first name as canonical name
+ for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ {
+ }
+ for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ {
+ }
+ *(*int8)(unsafe.Pointer(z)) = int8(0)
+ if is_valid_hostname(tls, p) != 0 {
+ Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1)))
+ }
+ }
+ //TODO __fclose_ca(f);
+ Xfclose(tls, f)
+ if cnt != 0 {
+ return cnt
+ }
+ return badfam
+}
+
+type dpc_ctx = struct {
+ addrs uintptr
+ canon uintptr
+ cnt int32
+ _ [4]byte
+} /* lookup_name.c:112:1 */
+
+func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */
+ return -1 //TODO-
+ Xabort(tls)
+ return int32(0) //TODO-
+ // char search[256];
+ // struct resolvconf conf;
+ // size_t l, dots;
+ // char *p, *z;
+
+ // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1;
+
+ // /* Count dots, suppress search when >=ndots or name ends in
+ // * a dot, which is an explicit request for global scope. */
+ // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++;
+ // if (dots >= conf.ndots || name[l-1]=='.') *search = 0;
+
+ // /* Strip final dot for canon, fail if multiple trailing dots. */
+ // if (name[l-1]=='.') l--;
+ // if (!l || name[l-1]=='.') return EAI_NONAME;
+
+ // /* This can never happen; the caller already checked length. */
+ // if (l >= 256) return EAI_NONAME;
+
+ // /* Name with search domain appended is setup in canon[]. This both
+ // * provides the desired default canonical name (if the requested
+ // * name is not a CNAME record) and serves as a buffer for passing
+ // * the full requested name to name_from_dns. */
+ // memcpy(canon, name, l);
+ // canon[l] = '.';
+
+ // for (p=search; *p; p=z) {
+ // for (; isspace(*p); p++);
+ // for (z=p; *z && !isspace(*z); z++);
+ // if (z==p) break;
+ // if (z-p < 256 - l - 1) {
+ // memcpy(canon+l+1, p, z-p);
+ // canon[z-p+1+l] = 0;
+ // int cnt = name_from_dns(buf, canon, canon, family, &conf);
+ // if (cnt) return cnt;
+ // }
+ // }
+
+ // canon[l] = 0;
+ // return name_from_dns(buf, canon, name, family, &conf);
+}
+
+type policy = struct {
+ addr [16]uint8
+ len uint8
+ mask uint8
+ prec uint8
+ label uint8
+} /* lookup_name.c:237:14 */
+
+var defpolicy = [6]policy{
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 211)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 228)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 244)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 260)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)},
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 276)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)},
+ // Last rule must match all addresses to stop loop.
+ {addr: *(*[16]uint8)(unsafe.Pointer(ts + 292)), prec: uint8(40), label: uint8(1)},
+} /* lookup_name.c:241:3 */
+
+func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */
+ var i int32
+ for i = 0; ; i++ {
+ if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 {
+ continue
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) !=
+ int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) {
+ continue
+ }
+ return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20
+ }
+ return uintptr(0)
+}
+
+func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */
+ return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label)
+}
+
+func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff {
+ return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 {
+ return 2
+ }
+ if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 {
+ return 2
+ }
+ if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 {
+ return 5
+ }
+ return 14
+}
+
+func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */
+ // FIXME: The common prefix length should be limited to no greater
+ // than the nominal length of the prefix portion of the source
+ // address. However the definition of the source prefix length is
+ // not clear and thus this limiting is not yet implemented.
+ var i uint32
+ for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ {
+ }
+ return int32(i)
+}
+
+func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */
+ var a uintptr = _a
+ var b uintptr = _b
+ return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey
+}
+
+func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */
+ bp := tls.Alloc(92)
+ defer tls.Free(92)
+
+ var cnt int32 = 0
+ var i int32
+ var j int32
+ _ = j
+
+ *(*int8)(unsafe.Pointer(canon)) = int8(0)
+ if name != 0 {
+ // reject empty name and check len so it fits into temp bufs
+ var l size_t = Xstrnlen(tls, name, uint64(255))
+ if l-uint64(1) >= uint64(254) {
+ return -2
+ }
+ Xmemcpy(tls, canon, name, l+uint64(1))
+ }
+
+ // Procedurally, a request for v6 addresses with the v4-mapped
+ // flag set is like a request for unspecified family, followed
+ // by filtering of the results.
+ if flags&0x08 != 0 {
+ if family == 10 {
+ family = 0
+ } else {
+ flags = flags - 0x08
+ }
+ }
+
+ // Try each backend until there's at least one result.
+ cnt = name_from_null(tls, buf, name, family, flags)
+ if !(cnt != 0) {
+ cnt = name_from_numeric(tls, buf, name, family)
+ }
+ if !(cnt != 0) && !(flags&0x04 != 0) {
+ cnt = name_from_hosts(tls, buf, canon, name, family)
+ if !(cnt != 0) {
+ cnt = name_from_dns_search(tls, buf, canon, name, family)
+ }
+ }
+ if cnt <= 0 {
+ if cnt != 0 {
+ return cnt
+ }
+ return -2
+ }
+
+ // Filter/transform results for v4-mapped lookup, if requested.
+ if flags&0x08 != 0 {
+ Xabort(tls) //TODO-
+ // if (!(flags & AI_ALL)) {
+ // /* If any v6 results exist, remove v4 results. */
+ // for (i=0; i<cnt && buf[i].family != AF_INET6; i++);
+ // if (i<cnt) {
+ // for (j=0; i<cnt; i++) {
+ // if (buf[i].family == AF_INET6)
+ // buf[j++] = buf[i];
+ // }
+ // cnt = i = j;
+ // }
+ // }
+ // /* Translate any remaining v4 results to v6 */
+ // for (i=0; i<cnt; i++) {
+ // if (buf[i].family != AF_INET) continue;
+ // memcpy(buf[i].addr+12, buf[i].addr, 4);
+ // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12);
+ // buf[i].family = AF_INET6;
+ // }
+ }
+
+ // No further processing is needed if there are fewer than 2
+ // results or if there are only IPv4 results.
+ if cnt < 2 || family == 2 {
+ return cnt
+ }
+ for i = 0; i < cnt; i++ {
+ if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 {
+ break
+ }
+ }
+ if i == cnt {
+ return cnt
+ }
+ var cs int32
+ _ = cs
+ //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+
+ // The following implements a subset of RFC 3484/6724 destination
+ // address selection by generating a single 31-bit sort key for
+ // each address. Rules 3, 4, and 7 are omitted for having
+ // excessive runtime and code size cost and dubious benefit.
+ // So far the label/precedence table cannot be customized.
+ for i = 0; i < cnt; i++ {
+ var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family
+ var key int32 = 0
+ *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{}
+ *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{}
+ *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)}
+ var sa1 uintptr
+ var da uintptr
+ // var salen socklen_t at bp+88, 4
+
+ var dalen socklen_t
+ if family == 10 {
+ Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16))
+ da = bp /* &da6 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ sa1 = bp + 28 /* &sa6 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{}))
+ } else {
+ Xmemcpy(tls, bp+28+8,
+ ts+129, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+8,
+ ts+129, uint64(12))
+ Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4))
+ Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4))
+ da = bp + 56 /* &da4 */
+ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ sa1 = bp + 72 /* &sa4 */
+ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{}))
+ }
+ var dpolicy uintptr = policyof(tls, bp+8)
+ var dscope int32 = scopeof(tls, bp+8)
+ var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label)
+ var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec)
+ var prefixlen int32 = 0
+ var fd int32 = Xsocket(tls, family, 2|02000000, 17)
+ if fd >= 0 {
+ if !(Xconnect(tls, fd, da, dalen) != 0) {
+ key = key | 0x40000000
+ if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) {
+ if family == 2 {
+ Xmemcpy(tls,
+ bp+28+8+uintptr(12),
+ bp+72+4, uint64(4))
+ }
+ if dscope == scopeof(tls, bp+28+8) {
+ key = key | 0x20000000
+ }
+ if dlabel == labelof(tls, bp+28+8) {
+ key = key | 0x10000000
+ }
+ prefixlen = prefixmatch(tls, bp+28+8,
+ bp+8)
+ }
+ }
+ Xclose(tls, fd)
+ }
+ key = key | dprec<<20
+ key = key | (15-dscope)<<16
+ key = key | prefixlen<<8
+ key = key | (48-i)<<0
+ (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key
+ }
+ Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct {
+ f func(*TLS, uintptr, uintptr) int32
+ }{addrcmp})))
+
+ //TODO pthread_setcancelstate(cs, 0);
+
+ return cnt
+}
+
+func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ var line [128]int8
+ _ = line
+ var cnt int32 = 0
+ var p uintptr
+ _ = p
+ *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 54 /* "" */
+ var port uint64 = uint64(0)
+
+ switch socktype {
+ case 1:
+ switch proto {
+ case 0:
+ proto = 6
+ fallthrough
+ case 6:
+ break
+ default:
+ return -8
+ }
+ break
+ case 2:
+ switch proto {
+ case 0:
+ proto = 17
+ fallthrough
+ case 17:
+ break
+ default:
+ return -8
+ }
+ fallthrough
+ case 0:
+ break
+ default:
+ if name != 0 {
+ return -8
+ }
+ (*service)(unsafe.Pointer(buf)).port = uint16_t(0)
+ (*service)(unsafe.Pointer(buf)).proto = uint8(proto)
+ (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype)
+ return 1
+ }
+
+ if name != 0 {
+ if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) {
+ return -8
+ }
+ port = Xstrtoul(tls, name, bp, 10)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) {
+ if port > uint64(65535) {
+ return -8
+ }
+ if proto != 17 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6)
+ }
+ if proto != 6 {
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port)
+ (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2)
+ (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17)
+ }
+ return cnt
+ }
+
+ if flags&0x400 != 0 {
+ return -2
+ }
+
+ var l size_t = Xstrlen(tls, name)
+ _ = l
+
+ Xabort(tls) //TODO-
+ // unsigned char _buf[1032];
+ // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf);
+ // if (!f) switch (errno) {
+ // case ENOENT:
+ // case ENOTDIR:
+ // case EACCES:
+ // return EAI_SERVICE;
+ // default:
+ // return EAI_SYSTEM;
+ // }
+
+ Xabort(tls) //TODO-
+ // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) {
+ // if ((p=strchr(line, '#'))) *p++='\n', *p=0;
+
+ // /* Find service name */
+ // for(p=line; (p=strstr(p, name)); p++) {
+ // if (p>line && !isspace(p[-1])) continue;
+ // if (p[l] && !isspace(p[l])) continue;
+ // break;
+ // }
+ // if (!p) continue;
+
+ // /* Skip past canonical name at beginning of line */
+ // for (p=line; *p && !isspace(*p); p++);
+
+ // port = strtoul(p, &z, 10);
+ // if (port > 65535 || z==p) continue;
+ // if (!strncmp(z, "/udp", 4)) {
+ // if (proto == IPPROTO_TCP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_DGRAM;
+ // buf[cnt++].proto = IPPROTO_UDP;
+ // }
+ // if (!strncmp(z, "/tcp", 4)) {
+ // if (proto == IPPROTO_UDP) continue;
+ // buf[cnt].port = port;
+ // buf[cnt].socktype = SOCK_STREAM;
+ // buf[cnt++].proto = IPPROTO_TCP;
+ // }
+ // }
+ // __fclose_ca(f);
+ // return cnt > 0 ? cnt : EAI_SERVICE;
+ Xabort(tls)
+ return int32(0) //TODO-
+}
+
+func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */
+ *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1
+ if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase {
+ (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0))
+ }
+ (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0)))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 {
+ *(*uint32)(unsafe.Pointer(f)) |= uint32(32)
+ return -1
+ }
+ (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size))
+ if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 {
+ return -1
+ }
+ return 0
+}
+
+func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */
+ X__builtin_abort(tls) //TODO-
+ // __stdio_exit_needed();
+}
+
+// This function assumes it will never be called if there is already
+// data buffered for reading.
+
+func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */
+ bp := tls.Alloc(1)
+ defer tls.Free(1)
+
+ // var c uint8 at bp, 1
+
+ if !(X__toread(tls, f) != 0) && (*struct {
+ f func(*TLS, uintptr, uintptr, size_t) size_t
+ })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) {
+ return int32(*(*uint8)(unsafe.Pointer(bp)))
+ }
+ return -1
+}
+
+func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y float64 = X__floatscan(tls, bp, prec, 1)
+ var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1
+ if p != 0 {
+ *(*uintptr)(unsafe.Pointer(p)) = func() uintptr {
+ if cnt != 0 {
+ return s + uintptr(cnt)
+ }
+ return s
+ }()
+ }
+ return y
+}
+
+func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */
+ return float32(strtox(tls, s, p, 0))
+}
+
+func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */
+ return strtox(tls, s, p, 1)
+}
+
+func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */
+ return strtox(tls, s, p, 2)
+}
+
+func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */
+ bp := tls.Alloc(232)
+ defer tls.Free(232)
+
+ // var f FILE at bp, 232
+
+ (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s)
+ (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1)
+ X__shlim(tls, bp, int64(0))
+ var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim)
+ if p != 0 {
+ var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1)
+ *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt)
+ }
+ return y
+}
+
+func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */
+ return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))
+}
+
+func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */
+ return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1))))
+}
+
+func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */
+ return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)))
+}
+
+func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */
+ return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1))))
+}
+
+func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */
+ return intmax_t(Xstrtoll(tls, s, p, base))
+}
+
+func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */
+ return uintmax_t(Xstrtoull(tls, s, p, base))
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
+
+func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */
+ var p uintptr = Xmemchr(tls, s, 0, n)
+ if p != 0 {
+ return uint64((int64(p) - int64(s)) / 1)
+ }
+ return n
+}
+
+func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */
+ bp := tls.Alloc(32)
+ defer tls.Free(32)
+
+ var a uintptr = s
+ *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)}
+
+ if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) {
+ return uint64(0)
+ }
+ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) {
+ for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+ }
+
+ for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ {
+ }
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ {
+ }
+ return size_t((int64(s) - int64(a)) / 1)
+}
+
+func init() {
+ *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.cpp.c:4092:41:
+}
+
+var ts1 = "RuneMagi\x00NONE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data
diff --git a/vendor/modernc.org/libc/musl_windows_386.go b/vendor/modernc.org/libc/musl_windows_386.go
new file mode 100644
index 00000000..24c5b240
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_windows_386.go
@@ -0,0 +1,1078 @@
+// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_windows_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/multibyte/wcrtomb.c src/multibyte/wcsrtombs.c src/multibyte/wcstombs.c src/string/strchrnul.c src/string/strdup.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type size_t = uint32 /* <builtin>:9:23 */
+
+type wchar_t = uint16 /* <builtin>:15:24 */
+
+type va_list = uintptr /* <builtin>:50:27 */
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:366:9 */
+
+type locale_t = uintptr /* alltypes.h:366:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisspace(tls *TLS, c int32) int32 { /* isspace.c:4:5: */
+ return Bool32(c == ' ' || uint32(c)-uint32('\t') < uint32(5))
+}
+
+func X__isspace_l(tls *TLS, c int32, l locale_t) int32 { /* isspace.c:9:5: */
+ return Xisspace(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type ssize_t = int32 /* alltypes.h:88:15 */
+
+type intptr_t = int32 /* alltypes.h:93:15 */
+
+type off_t = int64 /* alltypes.h:185:16 */
+
+type pid_t = int32 /* alltypes.h:258:13 */
+
+type uid_t = uint32 /* alltypes.h:268:18 */
+
+type gid_t = uint32 /* alltypes.h:273:18 */
+
+type useconds_t = uint32 /* alltypes.h:283:18 */
+
+func X__putenv(tls *TLS, s uintptr, l size_t, r uintptr) int32 { /* putenv.c:8:5: */
+ var i size_t
+ var newenv uintptr
+ var tmp uintptr
+ //TODO for (char **e = __environ; *e; e++, i++)
+ var e uintptr
+ i = size_t(0)
+ if !(Environ() != 0) {
+ goto __1
+ }
+ //TODO for (char **e = __environ; *e; e++, i++)
+ e = Environ()
+__2:
+ if !(*(*uintptr)(unsafe.Pointer(e)) != 0) {
+ goto __4
+ }
+ if !!(Xstrncmp(tls, s, *(*uintptr)(unsafe.Pointer(e)), l+size_t(1)) != 0) {
+ goto __5
+ }
+ tmp = *(*uintptr)(unsafe.Pointer(e))
+ *(*uintptr)(unsafe.Pointer(e)) = s
+ X__env_rm_add(tls, tmp, r)
+ return 0
+__5:
+ ;
+ goto __3
+__3:
+ e += 4
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+__1:
+ ;
+ if !(Environ() == _soldenv) {
+ goto __6
+ }
+ newenv = Xrealloc(tls, _soldenv, uint32(unsafe.Sizeof(uintptr(0)))*(i+size_t(2)))
+ if !!(newenv != 0) {
+ goto __8
+ }
+ goto oom
+__8:
+ ;
+ goto __7
+__6:
+ newenv = Xmalloc(tls, uint32(unsafe.Sizeof(uintptr(0)))*(i+size_t(2)))
+ if !!(newenv != 0) {
+ goto __9
+ }
+ goto oom
+__9:
+ ;
+ if !(i != 0) {
+ goto __10
+ }
+ Xmemcpy(tls, newenv, Environ(), uint32(unsafe.Sizeof(uintptr(0)))*i)
+__10:
+ ;
+ Xfree(tls, _soldenv)
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i)*4)) = s
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i+size_t(1))*4)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(EnvironP())) = AssignPtrUintptr(uintptr(unsafe.Pointer(&_soldenv)), newenv)
+ if !(r != 0) {
+ goto __11
+ }
+ X__env_rm_add(tls, uintptr(0), r)
+__11:
+ ;
+ return 0
+oom:
+ Xfree(tls, r)
+ return -1
+}
+
+var _soldenv uintptr /* putenv.c:22:14: */
+
+func Xputenv(tls *TLS, s uintptr) int32 { /* putenv.c:43:5: */
+ var l size_t = size_t((int32(X__strchrnul(tls, s, '=')) - int32(s)) / 1)
+ if !(l != 0) || !(int32(*(*int8)(unsafe.Pointer(s + uintptr(l)))) != 0) {
+ return Xunsetenv(tls, s)
+ }
+ return X__putenv(tls, s, l, uintptr(0))
+}
+
+func X__env_rm_add(tls *TLS, old uintptr, new uintptr) { /* setenv.c:5:6: */
+ //TODO for (size_t i=0; i < env_alloced_n; i++)
+ var i size_t = size_t(0)
+ for ; i < _senv_alloced_n; i++ {
+ if *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*4)) == old {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*4)) = new
+ Xfree(tls, old)
+ return
+ } else if !(int32(*(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*4))) != 0) && new != 0 {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*4)) = new
+ new = uintptr(0)
+ }
+ }
+ if !(new != 0) {
+ return
+ }
+ var t uintptr = Xrealloc(tls, _senv_alloced, uint32(unsafe.Sizeof(uintptr(0)))*(_senv_alloced_n+size_t(1)))
+ if !(t != 0) {
+ return
+ }
+ *(*uintptr)(unsafe.Pointer(AssignPtrUintptr(uintptr(unsafe.Pointer(&_senv_alloced)), t) + uintptr(PostIncUint32(&_senv_alloced_n, 1))*4)) = new
+}
+
+var _senv_alloced uintptr /* setenv.c:7:14: */
+var _senv_alloced_n size_t /* setenv.c:8:16: */
+
+func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) int32 { /* setenv.c:26:5: */
+ var s uintptr
+ var l1 size_t
+ var l2 size_t
+
+ if !(var1 != 0) || !(int32(AssignUint32(&l1, size_t((int32(X__strchrnul(tls, var1, '='))-int32(var1))/1))) != 0) || *(*int8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if !(overwrite != 0) && Xgetenv(tls, var1) != 0 {
+ return 0
+ }
+
+ l2 = Xstrlen(tls, value)
+ s = Xmalloc(tls, l1+l2+size_t(2))
+ if !(s != 0) {
+ return -1
+ }
+ Xmemcpy(tls, s, var1, l1)
+ *(*int8)(unsafe.Pointer(s + uintptr(l1))) = int8('=')
+ Xmemcpy(tls, s+uintptr(l1)+uintptr(1), value, l2+size_t(1))
+ return X__putenv(tls, s, l1, s)
+}
+
+func Xunsetenv(tls *TLS, name uintptr) int32 { /* unsetenv.c:9:5: */
+ var l size_t = size_t((int32(X__strchrnul(tls, name, '=')) - int32(name)) / 1)
+ if !(l != 0) || *(*int8)(unsafe.Pointer(name + uintptr(l))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if Environ() != 0 {
+ var e uintptr = Environ()
+ var eo uintptr = e
+ for ; *(*uintptr)(unsafe.Pointer(e)) != 0; e += 4 {
+ //TODO if (!strncmp(name, *e, l) && l[*e] == '=')
+ if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == '=' {
+ X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(e)), uintptr(0))
+ } else if eo != e {
+ *(*uintptr)(unsafe.Pointer(PostIncUintptr(&eo, 4))) = *(*uintptr)(unsafe.Pointer(e))
+ } else {
+ eo += 4
+ }
+ }
+ if eo != e {
+ *(*uintptr)(unsafe.Pointer(eo)) = uintptr(0)
+ }
+ }
+ return 0
+}
+
+type wint_t = uint32 /* alltypes.h:221:18 */
+
+type wctype_t = uint32 /* alltypes.h:226:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:360:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:360:63 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ tm_gmtoff int32
+ tm_zone uintptr
+} /* wchar.h:138:1 */
+
+type uintptr_t = uint32 /* alltypes.h:78:24 */
+
+type int8_t = int8 /* alltypes.h:119:25 */
+
+type int16_t = int16 /* alltypes.h:124:25 */
+
+type int32_t = int32 /* alltypes.h:129:25 */
+
+type int64_t = int64 /* alltypes.h:134:25 */
+
+type intmax_t = int64 /* alltypes.h:139:25 */
+
+type uint8_t = uint8 /* alltypes.h:144:25 */
+
+type uint16_t = uint16 /* alltypes.h:149:25 */
+
+type uint32_t = uint32 /* alltypes.h:154:25 */
+
+type uint64_t = uint64 /* alltypes.h:159:25 */
+
+type uintmax_t = uint64 /* alltypes.h:169:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+// Upper 6 state bits are a negative integer offset to bound-check next byte
+// equivalent to: ( (b-0x80) | (b+offset) ) & ~0x3f
+
+// Interval [a,b). Either a must be 80 or b must be c0, lower 3 bits clear.
+
+// Arbitrary encoding for representing code units instead of characters.
+
+// Get inline definition of MB_CUR_MAX.
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits int8
+ frac_digits int8
+ p_cs_precedes int8
+ p_sep_by_space int8
+ n_cs_precedes int8
+ n_sep_by_space int8
+ p_sign_posn int8
+ n_sign_posn int8
+ int_p_cs_precedes int8
+ int_p_sep_by_space int8
+ int_n_cs_precedes int8
+ int_n_sep_by_space int8
+ int_p_sign_posn int8
+ int_n_sign_posn int8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]int8
+ next uintptr
+} /* alltypes.h:366:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads int8
+ threaded int8
+ secure int8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int64 /* alltypes.h:108:16 */
+
+type clockid_t = int32 /* alltypes.h:237:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+} /* alltypes.h:252:1 */
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [1]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int32
+ pending uintptr
+ }
+ timer_id int32
+ locale locale_t
+ killlock [1]int32
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ dtv_copy uintptr
+} /* alltypes.h:296:9 */
+
+type pthread_t = uintptr /* alltypes.h:296:26 */
+
+type pthread_once_t = int32 /* alltypes.h:302:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:307:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:312:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:317:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:322:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:327:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:332:40 */
+
+type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:372:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:372:71 */
+
+type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:395:147 */
+
+type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:400:157 */
+
+type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:410:112 */
+
+type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:420:139 */
+
+type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:425:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [4]int32
+ __reserved3 int32
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:232:14 */
+
+type clock_t = int32 /* alltypes.h:242:14 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int32
+ __12 uint32 /* int : 32 */
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct{ sival_int int32 }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [44]int8
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:296:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = int32 /* signal.h:51:13 */
+type gregset_t = [19]int32 /* signal.h:51:21 */
+type _fpstate = struct {
+ cw uint32
+ sw uint32
+ tag uint32
+ ipoff uint32
+ cssel uint32
+ dataoff uint32
+ datasel uint32
+ _st [8]struct {
+ significand [4]uint16
+ exponent uint16
+ }
+ status uint32
+} /* signal.h:52:9 */
+
+type fpregset_t = uintptr /* signal.h:58:3 */
+type sigcontext = struct {
+ gs uint16
+ __gsh uint16
+ fs uint16
+ __fsh uint16
+ es uint16
+ __esh uint16
+ ds uint16
+ __dsh uint16
+ edi uint32
+ esi uint32
+ ebp uint32
+ esp uint32
+ ebx uint32
+ edx uint32
+ ecx uint32
+ eax uint32
+ trapno uint32
+ err uint32
+ eip uint32
+ cs uint16
+ __csh uint16
+ eflags uint32
+ esp_at_signal uint32
+ ss uint16
+ __ssh uint16
+ fpstate uintptr
+ oldmask uint32
+ cr2 uint32
+} /* signal.h:59:1 */
+
+type mcontext_t = struct {
+ gregs gregset_t
+ fpregs fpregset_t
+ oldmask uint32
+ cr2 uint32
+} /* signal.h:73:3 */
+
+type __ucontext = struct {
+ uc_flags uint32
+ uc_link uintptr
+ uc_stack stack_t
+ uc_mcontext mcontext_t
+ uc_sigmask sigset_t
+ __fpregs_mem [28]uint32
+} /* signal.h:86:9 */
+
+type ucontext_t = __ucontext /* signal.h:93:3 */
+
+type sigval = struct{ sival_int int32 } /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ __si_fields struct {
+ _ [0]uint32
+ __pad [116]int8
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+type mode_t = uint32 /* alltypes.h:175:18 */
+
+type syscall_arg_t = int32 /* syscall.h:22:14 */
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:2:19: */
+ panic(`arch/i386/atomic_arch.h:4:2: assembler statements not supported`)
+ return t
+}
+
+func a_and(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:29:20: */
+ panic(`arch/i386/atomic_arch.h:31:2: assembler statements not supported`)
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:37:20: */
+ panic(`arch/i386/atomic_arch.h:39:2: assembler statements not supported`)
+}
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:87:19: */
+ var r int32
+ panic(`arch/i386/atomic_arch.h:90:2: assembler statements not supported`)
+ return r
+}
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:96:19: */
+ var r int32
+ panic(`arch/i386/atomic_arch.h:99:2: assembler statements not supported`)
+ return r
+}
+
+func a_clz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:104:19: */
+ panic(`arch/i386/atomic_arch.h:106:2: assembler statements not supported`)
+ return int32(x)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+
+ *(*struct{ v uint64_t })(unsafe.Pointer(bp)) = func() (r struct{ v uint64_t }) {
+ *(*uint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = v
+ return r
+ }()
+ if *(*uint32_t)(unsafe.Pointer(bp)) != 0 {
+ a_or(tls, p, int32(*(*uint32_t)(unsafe.Pointer(bp))))
+ }
+ if *(*uint32_t)(unsafe.Pointer(bp + 1*4)) != 0 {
+ a_or(tls, p+uintptr(1)*4, int32(*(*uint32_t)(unsafe.Pointer(bp + 1*4))))
+ }
+}
+
+type a_cas_p_undefined_but_pointer_not_32bit = [1]int8 /* atomic.h:229:14 */
+
+type __timer = struct {
+ timerid int32
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */
+ var self uintptr
+ panic(`arch/i386/pthread_arch.h:4:2: assembler statements not supported`)
+ return self
+}
+
+func Xwcrtomb(tls *TLS, s uintptr, wc wchar_t, st uintptr) size_t { /* wcrtomb.c:6:8: */
+ if !(s != 0) {
+ return size_t(1)
+ }
+ if uint32(wc) < uint32(0x80) {
+ *(*int8)(unsafe.Pointer(s)) = int8(wc)
+ return size_t(1)
+ } else if func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1 {
+ if !(uint32(wc)-uint32(0xdf80) < uint32(0x80)) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint32FromInt32(-1)
+ }
+ *(*int8)(unsafe.Pointer(s)) = int8(wc)
+ return size_t(1)
+ } else if uint32(wc) < uint32(0x800) {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0xc0 | int32(wc)>>6)
+ *(*int8)(unsafe.Pointer(s)) = int8(0x80 | int32(wc)&0x3f)
+ return size_t(2)
+ } else if uint32(wc) < uint32(0xd800) || uint32(wc)-uint32(0xe000) < uint32(0x2000) {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0xe0 | int32(wc)>>12)
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0x80 | int32(wc)>>6&0x3f)
+ *(*int8)(unsafe.Pointer(s)) = int8(0x80 | int32(wc)&0x3f)
+ return size_t(3)
+ } else if uint32(wc)-uint32(0x10000) < uint32(0x100000) {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0xf0 | int32(wc)>>18)
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0x80 | int32(wc)>>12&0x3f)
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0x80 | int32(wc)>>6&0x3f)
+ *(*int8)(unsafe.Pointer(s)) = int8(0x80 | int32(wc)&0x3f)
+ return size_t(4)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint32FromInt32(-1)
+}
+
+func Xwcsrtombs(tls *TLS, s uintptr, ws uintptr, n size_t, st uintptr) size_t { /* wcsrtombs.c:3:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var ws2 uintptr
+ // var buf [4]int8 at bp, 4
+
+ var N size_t = n
+ var l size_t
+ if !(s != 0) {
+ n = size_t(0)
+ ws2 = *(*uintptr)(unsafe.Pointer(ws))
+ for ; *(*wchar_t)(unsafe.Pointer(ws2)) != 0; ws2 += 2 {
+ if uint32(*(*wchar_t)(unsafe.Pointer(ws2))) >= 0x80 {
+ l = Xwcrtomb(tls, bp, *(*wchar_t)(unsafe.Pointer(ws2)), uintptr(0))
+ if !(l+size_t(1) != 0) {
+ return Uint32FromInt32(-1)
+ }
+ n = n + l
+ } else {
+ n++
+ }
+ }
+ return n
+ }
+ for n >= size_t(4) {
+ if uint32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))-1 >= 0x7f {
+ if !(int32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))) != 0) {
+ *(*int8)(unsafe.Pointer(s)) = int8(0)
+ *(*uintptr)(unsafe.Pointer(ws)) = uintptr(0)
+ return N - n
+ }
+ l = Xwcrtomb(tls, s, *(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0))
+ if !(l+size_t(1) != 0) {
+ return Uint32FromInt32(-1)
+ }
+ s += uintptr(l)
+ n = n - l
+ } else {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))
+ n--
+ }
+ *(*uintptr)(unsafe.Pointer(ws)) += 2
+ }
+ for n != 0 {
+ if uint32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))-1 >= 0x7f {
+ if !(int32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))) != 0) {
+ *(*int8)(unsafe.Pointer(s)) = int8(0)
+ *(*uintptr)(unsafe.Pointer(ws)) = uintptr(0)
+ return N - n
+ }
+ l = Xwcrtomb(tls, bp, *(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0))
+ if !(l+size_t(1) != 0) {
+ return Uint32FromInt32(-1)
+ }
+ if l > n {
+ return N - n
+ }
+ Xwcrtomb(tls, s, *(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0))
+ s += uintptr(l)
+ n = n - l
+ } else {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))
+ n--
+ }
+ *(*uintptr)(unsafe.Pointer(ws)) += 2
+ }
+ return N
+}
+
+func Xwcstombs(tls *TLS, s uintptr, ws uintptr, n size_t) size_t { /* wcstombs.c:4:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+ *(*uintptr)(unsafe.Pointer(bp)) = ws
+
+ //TODO return wcsrtombs(s, &(const wchar_t *){ws}, n, 0);
+ return Xwcsrtombs(tls, s, bp, n, uintptr(0))
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func X__strchrnul(tls *TLS, s uintptr, c int32) uintptr { /* strchrnul.c:10:6: */
+ c = int32(uint8(c))
+ if !(c != 0) {
+ return s + uintptr(Xstrlen(tls, s))
+ }
+ var w uintptr
+ for ; uintptr_t(s)%uintptr_t(unsafe.Sizeof(size_t(0))) != 0; s++ {
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c {
+ return s
+ }
+ }
+ var k size_t = Uint32(Uint32FromInt32(-1)) / size_t(255) * size_t(c)
+ for w = s; !((*(*uint32)(unsafe.Pointer(w))-Uint32(Uint32FromInt32(-1))/size_t(255)) & ^*(*uint32)(unsafe.Pointer(w)) & (Uint32(Uint32FromInt32(-1))/size_t(255)*size_t(255/2+1)) != 0) && !((*(*uint32)(unsafe.Pointer(w))^k-Uint32(Uint32FromInt32(-1))/size_t(255)) & ^(*(*uint32)(unsafe.Pointer(w))^k) & (Uint32(Uint32FromInt32(-1))/size_t(255)*size_t(255/2+1)) != 0); w += 4 {
+ }
+ s = w
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c; s++ {
+ }
+ return s
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+size_t(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+size_t(1))
+}
diff --git a/vendor/modernc.org/libc/musl_windows_amd64.go b/vendor/modernc.org/libc/musl_windows_amd64.go
new file mode 100644
index 00000000..fd7eb8b0
--- /dev/null
+++ b/vendor/modernc.org/libc/musl_windows_amd64.go
@@ -0,0 +1,1101 @@
+// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_windows_amd64.go -pkgname libc -static-locals-prefix _s -Iarch\x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/multibyte/wcrtomb.c src/multibyte/wcsrtombs.c src/multibyte/wcstombs.c src/string/strchrnul.c src/string/strdup.c', DO NOT EDIT.
+
+package libc
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+// musl as a whole is licensed under the following standard MIT license:
+//
+// ----------------------------------------------------------------------
+// Copyright © 2005-2020 Rich Felker, et al.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ----------------------------------------------------------------------
+//
+// Authors/contributors include:
+//
+// A. Wilcox
+// Ada Worcester
+// Alex Dowad
+// Alex Suykov
+// Alexander Monakov
+// Andre McCurdy
+// Andrew Kelley
+// Anthony G. Basile
+// Aric Belsito
+// Arvid Picciani
+// Bartosz Brachaczek
+// Benjamin Peterson
+// Bobby Bingham
+// Boris Brezillon
+// Brent Cook
+// Chris Spiegel
+// Clément Vasseur
+// Daniel Micay
+// Daniel Sabogal
+// Daurnimator
+// David Carlier
+// David Edelsohn
+// Denys Vlasenko
+// Dmitry Ivanov
+// Dmitry V. Levin
+// Drew DeVault
+// Emil Renner Berthing
+// Fangrui Song
+// Felix Fietkau
+// Felix Janda
+// Gianluca Anzolin
+// Hauke Mehrtens
+// He X
+// Hiltjo Posthuma
+// Isaac Dunham
+// Jaydeep Patil
+// Jens Gustedt
+// Jeremy Huntwork
+// Jo-Philipp Wich
+// Joakim Sindholt
+// John Spencer
+// Julien Ramseier
+// Justin Cormack
+// Kaarle Ritvanen
+// Khem Raj
+// Kylie McClain
+// Leah Neukirchen
+// Luca Barbato
+// Luka Perkov
+// M Farkas-Dyck (Strake)
+// Mahesh Bodapati
+// Markus Wichmann
+// Masanori Ogino
+// Michael Clark
+// Michael Forney
+// Mikhail Kremnyov
+// Natanael Copa
+// Nicholas J. Kain
+// orc
+// Pascal Cuoq
+// Patrick Oppenlander
+// Petr Hosek
+// Petr Skocik
+// Pierre Carrier
+// Reini Urban
+// Rich Felker
+// Richard Pennington
+// Ryan Fairfax
+// Samuel Holland
+// Segev Finer
+// Shiz
+// sin
+// Solar Designer
+// Stefan Kristiansson
+// Stefan O'Rear
+// Szabolcs Nagy
+// Timo Teräs
+// Trutz Behn
+// Valentin Ochs
+// Will Dietz
+// William Haddon
+// William Pitcock
+//
+// Portions of this software are derived from third-party works licensed
+// under terms compatible with the above MIT license:
+//
+// The TRE regular expression implementation (src/regex/reg* and
+// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+// under a 2-clause BSD license (license text in the source files). The
+// included version has been heavily modified by Rich Felker in 2012, in
+// the interests of size, simplicity, and namespace cleanliness.
+//
+// Much of the math library code (src/math/* and src/complex/*) is
+// Copyright © 1993,2004 Sun Microsystems or
+// Copyright © 2003-2011 David Schultz or
+// Copyright © 2003-2009 Steven G. Kargl or
+// Copyright © 2003-2009 Bruce D. Evans or
+// Copyright © 2008 Stephen L. Moshier or
+// Copyright © 2017-2018 Arm Limited
+// and labelled as such in comments in the individual source files. All
+// have been licensed under extremely permissive terms.
+//
+// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
+// The Android Open Source Project and is licensed under a two-clause BSD
+// license. It was taken from Bionic libc, used on Android.
+//
+// The AArch64 memcpy and memset code (src/string/aarch64/*) are
+// Copyright © 1999-2019, Arm Limited.
+//
+// The implementation of DES for crypt (src/crypt/crypt_des.c) is
+// Copyright © 1994 David Burren. It is licensed under a BSD license.
+//
+// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+// originally written by Solar Designer and placed into the public
+// domain. The code also comes with a fallback permissive license for use
+// in jurisdictions that may not recognize the public domain.
+//
+// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+// Valentin Ochs and is licensed under an MIT-style license.
+//
+// The x86_64 port was written by Nicholas J. Kain and is licensed under
+// the standard MIT terms.
+//
+// The mips and microblaze ports were originally written by Richard
+// Pennington for use in the ellcc project. The original code was adapted
+// by Rich Felker for build system and code conventions during upstream
+// integration. It is licensed under the standard MIT terms.
+//
+// The mips64 port was contributed by Imagination Technologies and is
+// licensed under the standard MIT terms.
+//
+// The powerpc port was also originally written by Richard Pennington,
+// and later supplemented and integrated by John Spencer. It is licensed
+// under the standard MIT terms.
+//
+// All other files which have no copyright comments are original works
+// produced specifically for use as part of this library, written either
+// by Rich Felker, the main author of the library, or by one or more
+// contibutors listed above. Details on authorship of individual files
+// can be found in the git version control history of the project. The
+// omission of copyright and license comments in each file is in the
+// interest of source tree size.
+//
+// In addition, permission is hereby granted for all public header files
+// (include/* and arch/*/bits/*) and crt files intended to be linked into
+// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+// the copyright notice and permission notice otherwise required by the
+// license, and to use these files without any requirement of
+// attribution. These files include substantial contributions from:
+//
+// Bobby Bingham
+// John Spencer
+// Nicholas J. Kain
+// Rich Felker
+// Richard Pennington
+// Stefan Kristiansson
+// Szabolcs Nagy
+//
+// all of whom have explicitly granted such permission.
+//
+// This file previously contained text expressing a belief that most of
+// the files covered by the above exception were sufficiently trivial not
+// to be subject to copyright, resulting in confusion over whether it
+// negated the permissions granted in the license. In the spirit of
+// permissive licensing, and of not having licensing issues being an
+// obstacle to adoption, that text has been removed.
+const ( /* copyright.c:194:1: */
+ __musl__copyright__ = 0
+)
+
+const ( /* pthread_impl.h:58:1: */
+ DT_EXITING = 0
+ DT_JOINABLE = 1
+ DT_DETACHED = 2
+)
+
+type ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type size_t = uint64 /* <builtin>:9:23 */
+
+type wchar_t = uint16 /* <builtin>:15:24 */
+
+type va_list = uintptr /* <builtin>:50:27 */
+
+type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:343:9 */
+
+type locale_t = uintptr /* alltypes.h:343:32 */
+
+func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisalpha(tls, c)
+ }
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+ }() != 0 || func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0)
+}
+
+func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */
+ return Xisalnum(tls, c)
+}
+
+func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */
+ return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26))
+}
+
+func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */
+ return Xisalpha(tls, c)
+}
+
+func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+}
+
+func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */
+ return Xisdigit(tls, c)
+}
+
+func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */
+ return Bool32(uint32(c)-uint32('a') < uint32(26))
+}
+
+func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */
+ return Xislower(tls, c)
+}
+
+func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */
+ return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f))
+}
+
+func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */
+ return Xisprint(tls, c)
+}
+
+func Xisspace(tls *TLS, c int32) int32 { /* isspace.c:4:5: */
+ return Bool32(c == ' ' || uint32(c)-uint32('\t') < uint32(5))
+}
+
+func X__isspace_l(tls *TLS, c int32, l locale_t) int32 { /* isspace.c:9:5: */
+ return Xisspace(tls, c)
+}
+
+func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */
+ return Bool32(func() int32 {
+ if 0 != 0 {
+ return Xisdigit(tls, c)
+ }
+ return Bool32(uint32(c)-uint32('0') < uint32(10))
+ }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6))
+}
+
+func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */
+ return Xisxdigit(tls, c)
+}
+
+type div_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:62:35 */
+type ldiv_t = struct {
+ quot int32
+ rem int32
+} /* stdlib.h:63:36 */
+type lldiv_t = struct {
+ quot int64
+ rem int64
+} /* stdlib.h:64:41 */
+
+type ssize_t = int32 /* alltypes.h:65:15 */
+
+type intptr_t = int32 /* alltypes.h:70:15 */
+
+type off_t = int32 /* alltypes.h:162:16 */
+
+type pid_t = int32 /* alltypes.h:235:13 */
+
+type uid_t = uint32 /* alltypes.h:245:18 */
+
+type gid_t = uint32 /* alltypes.h:250:18 */
+
+type useconds_t = uint32 /* alltypes.h:260:18 */
+
+func X__putenv(tls *TLS, s uintptr, l size_t, r uintptr) int32 { /* putenv.c:8:5: */
+ var i size_t
+ var newenv uintptr
+ var tmp uintptr
+ //TODO for (char **e = __environ; *e; e++, i++)
+ var e uintptr
+ i = uint64(0)
+ if !(Environ() != 0) {
+ goto __1
+ }
+ //TODO for (char **e = __environ; *e; e++, i++)
+ e = Environ()
+__2:
+ if !(*(*uintptr)(unsafe.Pointer(e)) != 0) {
+ goto __4
+ }
+ if !!(Xstrncmp(tls, s, *(*uintptr)(unsafe.Pointer(e)), l+uint64(1)) != 0) {
+ goto __5
+ }
+ tmp = *(*uintptr)(unsafe.Pointer(e))
+ *(*uintptr)(unsafe.Pointer(e)) = s
+ X__env_rm_add(tls, tmp, r)
+ return 0
+__5:
+ ;
+ goto __3
+__3:
+ e += 8
+ i++
+ goto __2
+ goto __4
+__4:
+ ;
+__1:
+ ;
+ if !(Environ() == _soldenv) {
+ goto __6
+ }
+ newenv = Xrealloc(tls, _soldenv, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __8
+ }
+ goto oom
+__8:
+ ;
+ goto __7
+__6:
+ newenv = Xmalloc(tls, uint64(unsafe.Sizeof(uintptr(0)))*(i+uint64(2)))
+ if !!(newenv != 0) {
+ goto __9
+ }
+ goto oom
+__9:
+ ;
+ if !(i != 0) {
+ goto __10
+ }
+ Xmemcpy(tls, newenv, Environ(), uint64(unsafe.Sizeof(uintptr(0)))*i)
+__10:
+ ;
+ Xfree(tls, _soldenv)
+__7:
+ ;
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i)*8)) = s
+ *(*uintptr)(unsafe.Pointer(newenv + uintptr(i+uint64(1))*8)) = uintptr(0)
+ *(*uintptr)(unsafe.Pointer(EnvironP())) = AssignPtrUintptr(uintptr(unsafe.Pointer(&_soldenv)), newenv)
+ if !(r != 0) {
+ goto __11
+ }
+ X__env_rm_add(tls, uintptr(0), r)
+__11:
+ ;
+ return 0
+oom:
+ Xfree(tls, r)
+ return -1
+}
+
+var _soldenv uintptr /* putenv.c:22:14: */
+
+func Xputenv(tls *TLS, s uintptr) int32 { /* putenv.c:43:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, s, '=')) - int64(s)) / 1)
+ if !(l != 0) || !(int32(*(*int8)(unsafe.Pointer(s + uintptr(l)))) != 0) {
+ return Xunsetenv(tls, s)
+ }
+ return X__putenv(tls, s, l, uintptr(0))
+}
+
+func X__env_rm_add(tls *TLS, old uintptr, new uintptr) { /* setenv.c:5:6: */
+ //TODO for (size_t i=0; i < env_alloced_n; i++)
+ var i size_t = uint64(0)
+ for ; i < _senv_alloced_n; i++ {
+ if *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) == old {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ Xfree(tls, old)
+ return
+ } else if !(int32(*(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8))) != 0) && new != 0 {
+ *(*uintptr)(unsafe.Pointer(_senv_alloced + uintptr(i)*8)) = new
+ new = uintptr(0)
+ }
+ }
+ if !(new != 0) {
+ return
+ }
+ var t uintptr = Xrealloc(tls, _senv_alloced, uint64(unsafe.Sizeof(uintptr(0)))*(_senv_alloced_n+uint64(1)))
+ if !(t != 0) {
+ return
+ }
+ *(*uintptr)(unsafe.Pointer(AssignPtrUintptr(uintptr(unsafe.Pointer(&_senv_alloced)), t) + uintptr(PostIncUint64(&_senv_alloced_n, 1))*8)) = new
+}
+
+var _senv_alloced uintptr /* setenv.c:7:14: */
+var _senv_alloced_n size_t /* setenv.c:8:16: */
+
+func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) int32 { /* setenv.c:26:5: */
+ var s uintptr
+ var l1 size_t
+ var l2 size_t
+
+ if !(var1 != 0) || !(int32(AssignUint64(&l1, size_t((int64(X__strchrnul(tls, var1, '='))-int64(var1))/1))) != 0) || *(*int8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if !(overwrite != 0) && Xgetenv(tls, var1) != 0 {
+ return 0
+ }
+
+ l2 = Xstrlen(tls, value)
+ s = Xmalloc(tls, l1+l2+uint64(2))
+ if !(s != 0) {
+ return -1
+ }
+ Xmemcpy(tls, s, var1, l1)
+ *(*int8)(unsafe.Pointer(s + uintptr(l1))) = int8('=')
+ Xmemcpy(tls, s+uintptr(l1)+uintptr(1), value, l2+uint64(1))
+ return X__putenv(tls, s, l1, s)
+}
+
+func Xunsetenv(tls *TLS, name uintptr) int32 { /* unsetenv.c:9:5: */
+ var l size_t = size_t((int64(X__strchrnul(tls, name, '=')) - int64(name)) / 1)
+ if !(l != 0) || *(*int8)(unsafe.Pointer(name + uintptr(l))) != 0 {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22
+ return -1
+ }
+ if Environ() != 0 {
+ var e uintptr = Environ()
+ var eo uintptr = e
+ for ; *(*uintptr)(unsafe.Pointer(e)) != 0; e += 8 {
+ //TODO if (!strncmp(name, *e, l) && l[*e] == '=')
+ if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == '=' {
+ X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(e)), uintptr(0))
+ } else if eo != e {
+ *(*uintptr)(unsafe.Pointer(PostIncUintptr(&eo, 8))) = *(*uintptr)(unsafe.Pointer(e))
+ } else {
+ eo += 8
+ }
+ }
+ if eo != e {
+ *(*uintptr)(unsafe.Pointer(eo)) = uintptr(0)
+ }
+ }
+ return 0
+}
+
+type wint_t = uint32 /* alltypes.h:198:18 */
+
+type wctype_t = uint32 /* alltypes.h:203:23 */
+
+type __mbstate_t = struct {
+ __opaque1 uint32
+ __opaque2 uint32
+} /* alltypes.h:337:9 */
+
+type mbstate_t = __mbstate_t /* alltypes.h:337:63 */
+
+type tm = struct {
+ tm_sec int32
+ tm_min int32
+ tm_hour int32
+ tm_mday int32
+ tm_mon int32
+ tm_year int32
+ tm_wday int32
+ tm_yday int32
+ tm_isdst int32
+ tm_gmtoff int32
+ tm_zone uintptr
+} /* wchar.h:138:1 */
+
+type uintptr_t = uint32 /* alltypes.h:55:24 */
+
+type int8_t = int8 /* alltypes.h:96:25 */
+
+type int16_t = int16 /* alltypes.h:101:25 */
+
+type int32_t = int32 /* alltypes.h:106:25 */
+
+type int64_t = int32 /* alltypes.h:111:25 */
+
+type intmax_t = int32 /* alltypes.h:116:25 */
+
+type uint8_t = uint8 /* alltypes.h:121:25 */
+
+type uint16_t = uint16 /* alltypes.h:126:25 */
+
+type uint32_t = uint32 /* alltypes.h:131:25 */
+
+type uint64_t = uint32 /* alltypes.h:136:25 */
+
+type uintmax_t = uint32 /* alltypes.h:146:25 */
+
+type int_fast8_t = int8_t /* stdint.h:22:16 */
+type int_fast64_t = int64_t /* stdint.h:23:17 */
+
+type int_least8_t = int8_t /* stdint.h:25:17 */
+type int_least16_t = int16_t /* stdint.h:26:17 */
+type int_least32_t = int32_t /* stdint.h:27:17 */
+type int_least64_t = int64_t /* stdint.h:28:17 */
+
+type uint_fast8_t = uint8_t /* stdint.h:30:17 */
+type uint_fast64_t = uint64_t /* stdint.h:31:18 */
+
+type uint_least8_t = uint8_t /* stdint.h:33:18 */
+type uint_least16_t = uint16_t /* stdint.h:34:18 */
+type uint_least32_t = uint32_t /* stdint.h:35:18 */
+type uint_least64_t = uint64_t /* stdint.h:36:18 */
+
+type int_fast16_t = int32_t /* stdint.h:1:17 */
+type int_fast32_t = int32_t /* stdint.h:2:17 */
+type uint_fast16_t = uint32_t /* stdint.h:3:18 */
+type uint_fast32_t = uint32_t /* stdint.h:4:18 */
+
+// Upper 6 state bits are a negative integer offset to bound-check next byte
+// equivalent to: ( (b-0x80) | (b+offset) ) & ~0x3f
+
+// Interval [a,b). Either a must be 80 or b must be c0, lower 3 bits clear.
+
+// Arbitrary encoding for representing code units instead of characters.
+
+// Get inline definition of MB_CUR_MAX.
+
+type lconv = struct {
+ decimal_point uintptr
+ thousands_sep uintptr
+ grouping uintptr
+ int_curr_symbol uintptr
+ currency_symbol uintptr
+ mon_decimal_point uintptr
+ mon_thousands_sep uintptr
+ mon_grouping uintptr
+ positive_sign uintptr
+ negative_sign uintptr
+ int_frac_digits int8
+ frac_digits int8
+ p_cs_precedes int8
+ p_sep_by_space int8
+ n_cs_precedes int8
+ n_sep_by_space int8
+ p_sign_posn int8
+ n_sign_posn int8
+ int_p_cs_precedes int8
+ int_p_sep_by_space int8
+ int_n_cs_precedes int8
+ int_n_sep_by_space int8
+ int_p_sign_posn int8
+ int_n_sign_posn int8
+ _ [2]byte
+} /* locale.h:24:1 */
+
+type _G_fpos64_t = struct {
+ _ [0]uint64
+ __opaque [16]int8
+} /* stdio.h:54:9 */
+
+type fpos_t = _G_fpos64_t /* stdio.h:58:3 */
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+type __locale_map = struct {
+ __map uintptr
+ map_size size_t
+ name [24]int8
+ next uintptr
+} /* alltypes.h:343:9 */
+
+type tls_module = struct {
+ next uintptr
+ image uintptr
+ len size_t
+ size size_t
+ align size_t
+ offset size_t
+} /* libc.h:14:1 */
+
+type __libc = struct {
+ can_do_threads int8
+ threaded int8
+ secure int8
+ need_locks int8
+ threads_minus_1 int32
+ auxv uintptr
+ tls_head uintptr
+ tls_size size_t
+ tls_align size_t
+ tls_cnt size_t
+ page_size size_t
+ global_locale struct{ cat [6]uintptr }
+} /* libc.h:20:1 */
+
+type time_t = int32 /* alltypes.h:85:16 */
+
+type clockid_t = int32 /* alltypes.h:214:13 */
+
+type timespec = struct {
+ tv_sec time_t
+ tv_nsec int32
+} /* alltypes.h:229:1 */
+
+type __pthread = struct {
+ self uintptr
+ dtv uintptr
+ prev uintptr
+ next uintptr
+ sysinfo uintptr_t
+ canary uintptr_t
+ canary2 uintptr_t
+ tid int32
+ errno_val int32
+ detach_state int32
+ cancel int32
+ canceldisable uint8
+ cancelasync uint8
+ tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */
+ _ [1]byte
+ map_base uintptr
+ map_size size_t
+ stack uintptr
+ stack_size size_t
+ guard_size size_t
+ result uintptr
+ cancelbuf uintptr
+ tsd uintptr
+ robust_list struct {
+ head uintptr
+ off int32
+ _ [4]byte
+ pending uintptr
+ }
+ timer_id int32
+ _ [4]byte
+ locale locale_t
+ killlock [1]int32
+ _ [4]byte
+ dlerror_buf uintptr
+ stdio_locks uintptr
+ canary_at_end uintptr_t
+ _ [4]byte
+ dtv_copy uintptr
+} /* alltypes.h:273:9 */
+
+type pthread_t = uintptr /* alltypes.h:273:26 */
+
+type pthread_once_t = int32 /* alltypes.h:279:13 */
+
+type pthread_key_t = uint32 /* alltypes.h:284:18 */
+
+type pthread_spinlock_t = int32 /* alltypes.h:289:13 */
+
+type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */
+
+type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */
+
+type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */
+
+type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */
+
+type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:349:9 */
+
+type sigset_t = __sigset_t /* alltypes.h:349:71 */
+
+type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:372:147 */
+
+type pthread_mutex_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [6]int32
+ _ [24]byte
+ }
+} /* alltypes.h:377:157 */
+
+type pthread_cond_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [12]int32
+ }
+} /* alltypes.h:387:112 */
+
+type pthread_rwlock_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [8]int32
+ _ [32]byte
+ }
+} /* alltypes.h:397:139 */
+
+type pthread_barrier_t = struct {
+ __u struct {
+ _ [0]uint64
+ __i [5]int32
+ _ [20]byte
+ }
+} /* alltypes.h:402:137 */
+
+type sched_param = struct {
+ sched_priority int32
+ __reserved1 int32
+ __reserved2 [2]struct {
+ __reserved1 time_t
+ __reserved2 int32
+ }
+ __reserved3 int32
+} /* sched.h:19:1 */
+
+type timer_t = uintptr /* alltypes.h:209:14 */
+
+type clock_t = int32 /* alltypes.h:219:14 */
+
+type itimerspec = struct {
+ it_interval struct {
+ tv_sec time_t
+ tv_nsec int32
+ }
+ it_value struct {
+ tv_sec time_t
+ tv_nsec int32
+ }
+} /* time.h:80:1 */
+
+type sigevent = struct {
+ sigev_value struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+ }
+ sigev_signo int32
+ sigev_notify int32
+ sigev_notify_function uintptr
+ sigev_notify_attributes uintptr
+ __pad [44]int8
+ _ [4]byte
+} /* time.h:107:1 */
+
+type __ptcb = struct {
+ __f uintptr
+ __x uintptr
+ __next uintptr
+} /* alltypes.h:273:9 */
+
+type sigaltstack = struct {
+ ss_sp uintptr
+ ss_flags int32
+ _ [4]byte
+ ss_size size_t
+} /* signal.h:44:9 */
+
+type stack_t = sigaltstack /* signal.h:44:28 */
+
+type greg_t = int64 /* signal.h:59:19 */
+type gregset_t = [23]int64 /* signal.h:59:27 */
+type _fpstate = struct {
+ cwd uint16
+ swd uint16
+ ftw uint16
+ fop uint16
+ rip uint64
+ rdp uint64
+ mxcsr uint32
+ mxcr_mask uint32
+ _st [8]struct {
+ significand [4]uint16
+ exponent uint16
+ padding [3]uint16
+ }
+ _xmm [16]struct{ element [4]uint32 }
+ padding [24]uint32
+} /* signal.h:60:9 */
+
+type fpregset_t = uintptr /* signal.h:71:3 */
+type sigcontext = struct {
+ r8 uint32
+ r9 uint32
+ r10 uint32
+ r11 uint32
+ r12 uint32
+ r13 uint32
+ r14 uint32
+ r15 uint32
+ rdi uint32
+ rsi uint32
+ rbp uint32
+ rbx uint32
+ rdx uint32
+ rax uint32
+ rcx uint32
+ rsp uint32
+ rip uint32
+ eflags uint32
+ cs uint16
+ gs uint16
+ fs uint16
+ __pad0 uint16
+ err uint32
+ trapno uint32
+ oldmask uint32
+ cr2 uint32
+ fpstate uintptr
+ __reserved1 [8]uint32
+} /* signal.h:72:1 */
+
+type mcontext_t = struct {
+ gregs gregset_t
+ fpregs fpregset_t
+ __reserved1 [8]uint64
+} /* signal.h:84:3 */
+
+type __ucontext = struct {
+ uc_flags uint32
+ _ [4]byte
+ uc_link uintptr
+ uc_stack stack_t
+ uc_mcontext mcontext_t
+ uc_sigmask sigset_t
+ __fpregs_mem [64]uint32
+} /* signal.h:97:9 */
+
+type ucontext_t = __ucontext /* signal.h:104:3 */
+
+type sigval = struct {
+ _ [0]uint64
+ sival_int int32
+ _ [4]byte
+} /* time.h:107:1 */
+
+type siginfo_t = struct {
+ si_signo int32
+ si_errno int32
+ si_code int32
+ _ [4]byte
+ __si_fields struct {
+ _ [0]uint64
+ __pad [116]int8
+ _ [4]byte
+ }
+} /* signal.h:145:3 */
+
+type sigaction = struct {
+ __sa_handler struct{ sa_handler uintptr }
+ sa_mask sigset_t
+ sa_flags int32
+ _ [4]byte
+ sa_restorer uintptr
+} /* signal.h:167:1 */
+
+type sig_t = uintptr /* signal.h:251:14 */
+
+type sig_atomic_t = int32 /* signal.h:269:13 */
+
+type mode_t = uint32 /* alltypes.h:152:18 */
+
+type syscall_arg_t = int32 /* syscall.h:22:14 */
+
+func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:2:19: */
+ panic(`arch\x86_64\atomic_arch.h:4:2: assembler statements not supported`)
+ return t
+}
+
+func a_or(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:46:20: */
+ panic(`arch\x86_64\atomic_arch.h:48:2: assembler statements not supported`)
+}
+
+func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic_arch.h:62:20: */
+ panic(`arch\x86_64\atomic_arch.h:64:2: assembler statements not supported`)
+}
+
+func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:112:19: */
+ panic(`arch\x86_64\atomic_arch.h:114:2: assembler statements not supported`)
+ return int32(x)
+}
+
+func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */
+ return int32(_sdebruijn32[x&-x*uint32_t(0x076be629)>>27])
+}
+
+var _sdebruijn32 = [32]int8{
+ int8(0), int8(1), int8(23), int8(2), int8(29), int8(24), int8(19), int8(3), int8(30), int8(27), int8(25), int8(11), int8(20), int8(8), int8(4), int8(13),
+ int8(31), int8(22), int8(28), int8(18), int8(26), int8(10), int8(7), int8(12), int8(21), int8(17), int8(9), int8(6), int8(16), int8(5), int8(15), int8(14),
+} /* atomic.h:261:20 */
+
+type __timer = struct {
+ timerid int32
+ _ [4]byte
+ thread pthread_t
+} /* pthread_impl.h:64:1 */
+
+func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */
+ var self uintptr
+ panic(`arch\x86_64\pthread_arch.h:4:2: assembler statements not supported`)
+ return self
+}
+
+func Xwcrtomb(tls *TLS, s uintptr, wc wchar_t, st uintptr) size_t { /* wcrtomb.c:6:8: */
+ if !(s != 0) {
+ return uint64(1)
+ }
+ if uint32(wc) < uint32(0x80) {
+ *(*int8)(unsafe.Pointer(s)) = int8(wc)
+ return uint64(1)
+ } else if func() int32 {
+ if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) {
+ return 4
+ }
+ return 1
+ }() == 1 {
+ if !(uint32(wc)-uint32(0xdf80) < uint32(0x80)) {
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint64FromInt32(-1)
+ }
+ *(*int8)(unsafe.Pointer(s)) = int8(wc)
+ return uint64(1)
+ } else if uint32(wc) < uint32(0x800) {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0xc0 | int32(wc)>>6)
+ *(*int8)(unsafe.Pointer(s)) = int8(0x80 | int32(wc)&0x3f)
+ return uint64(2)
+ } else if uint32(wc) < uint32(0xd800) || uint32(wc)-uint32(0xe000) < uint32(0x2000) {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0xe0 | int32(wc)>>12)
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0x80 | int32(wc)>>6&0x3f)
+ *(*int8)(unsafe.Pointer(s)) = int8(0x80 | int32(wc)&0x3f)
+ return uint64(3)
+ } else if uint32(wc)-uint32(0x10000) < uint32(0x100000) {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0xf0 | int32(wc)>>18)
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0x80 | int32(wc)>>12&0x3f)
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(0x80 | int32(wc)>>6&0x3f)
+ *(*int8)(unsafe.Pointer(s)) = int8(0x80 | int32(wc)&0x3f)
+ return uint64(4)
+ }
+ *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84
+ return Uint64FromInt32(-1)
+}
+
+func Xwcsrtombs(tls *TLS, s uintptr, ws uintptr, n size_t, st uintptr) size_t { /* wcsrtombs.c:3:8: */
+ bp := tls.Alloc(4)
+ defer tls.Free(4)
+
+ var ws2 uintptr
+ // var buf [4]int8 at bp, 4
+
+ var N size_t = n
+ var l size_t
+ if !(s != 0) {
+ n = uint64(0)
+ ws2 = *(*uintptr)(unsafe.Pointer(ws))
+ for ; *(*wchar_t)(unsafe.Pointer(ws2)) != 0; ws2 += 2 {
+ if uint32(*(*wchar_t)(unsafe.Pointer(ws2))) >= 0x80 {
+ l = Xwcrtomb(tls, bp, *(*wchar_t)(unsafe.Pointer(ws2)), uintptr(0))
+ if !(l+uint64(1) != 0) {
+ return Uint64FromInt32(-1)
+ }
+ n = n + l
+ } else {
+ n++
+ }
+ }
+ return n
+ }
+ for n >= uint64(4) {
+ if uint32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))-1 >= 0x7f {
+ if !(int32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))) != 0) {
+ *(*int8)(unsafe.Pointer(s)) = int8(0)
+ *(*uintptr)(unsafe.Pointer(ws)) = uintptr(0)
+ return N - n
+ }
+ l = Xwcrtomb(tls, s, *(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0))
+ if !(l+uint64(1) != 0) {
+ return Uint64FromInt32(-1)
+ }
+ s += uintptr(l)
+ n = n - l
+ } else {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))
+ n--
+ }
+ *(*uintptr)(unsafe.Pointer(ws)) += 2
+ }
+ for n != 0 {
+ if uint32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))-1 >= 0x7f {
+ if !(int32(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))) != 0) {
+ *(*int8)(unsafe.Pointer(s)) = int8(0)
+ *(*uintptr)(unsafe.Pointer(ws)) = uintptr(0)
+ return N - n
+ }
+ l = Xwcrtomb(tls, bp, *(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0))
+ if !(l+uint64(1) != 0) {
+ return Uint64FromInt32(-1)
+ }
+ if l > n {
+ return N - n
+ }
+ Xwcrtomb(tls, s, *(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0))
+ s += uintptr(l)
+ n = n - l
+ } else {
+ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8(*(*wchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))))
+ n--
+ }
+ *(*uintptr)(unsafe.Pointer(ws)) += 2
+ }
+ return N
+}
+
+func Xwcstombs(tls *TLS, s uintptr, ws uintptr, n size_t) size_t { /* wcstombs.c:4:8: */
+ bp := tls.Alloc(8)
+ defer tls.Free(8)
+ *(*uintptr)(unsafe.Pointer(bp)) = ws
+
+ //TODO return wcsrtombs(s, &(const wchar_t *){ws}, n, 0);
+ return Xwcsrtombs(tls, s, bp, n, uintptr(0))
+}
+
+// Support signed or unsigned plain-char
+
+// Implementation choices...
+
+// Arbitrary numbers...
+
+// POSIX/SUS requirements follow. These numbers come directly
+// from SUS and have nothing to do with the host system.
+
+func X__strchrnul(tls *TLS, s uintptr, c int32) uintptr { /* strchrnul.c:10:6: */
+ c = int32(uint8(c))
+ if !(c != 0) {
+ return s + uintptr(Xstrlen(tls, s))
+ }
+ var w uintptr
+ for ; uint64(s)%uint64(unsafe.Sizeof(size_t(0))) != 0; s++ {
+ if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c {
+ return s
+ }
+ }
+ var k size_t = Uint64(Uint64FromInt32(-1)) / uint64(255) * size_t(c)
+ for w = s; !((*(*uint64)(unsafe.Pointer(w))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(w)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0) && !((*(*uint64)(unsafe.Pointer(w))^k-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0); w += 8 {
+ }
+ s = w
+ for ; *(*int8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c; s++ {
+ }
+ return s
+}
+
+func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */
+ var l size_t = Xstrlen(tls, s)
+ var d uintptr = Xmalloc(tls, l+uint64(1))
+ if !(d != 0) {
+ return uintptr(0)
+ }
+ return Xmemcpy(tls, d, s, l+uint64(1))
+}
diff --git a/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go b/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go
new file mode 100644
index 00000000..f064e68f
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_darwin_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go b/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go
new file mode 100644
index 00000000..96c1abee
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_darwin_arm64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_freebsd_386.go b/vendor/modernc.org/libc/netdb/capi_freebsd_386.go
new file mode 100644
index 00000000..2b38819b
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_freebsd_386.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_freebsd_amd64.go b/vendor/modernc.org/libc/netdb/capi_freebsd_amd64.go
new file mode 100644
index 00000000..842c76a4
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_freebsd_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_linux_386.go b/vendor/modernc.org/libc/netdb/capi_linux_386.go
new file mode 100644
index 00000000..a3443a06
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_386.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_linux_amd64.go b/vendor/modernc.org/libc/netdb/capi_linux_amd64.go
new file mode 100644
index 00000000..f8e1b5e3
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_linux_arm.go b/vendor/modernc.org/libc/netdb/capi_linux_arm.go
new file mode 100644
index 00000000..c58589a4
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_arm.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_linux_arm64.go b/vendor/modernc.org/libc/netdb/capi_linux_arm64.go
new file mode 100644
index 00000000..aad6e361
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_arm64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_linux_s390x.go b/vendor/modernc.org/libc/netdb/capi_linux_s390x.go
new file mode 100644
index 00000000..872e8f82
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_s390x.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_netbsd_amd64.go b/vendor/modernc.org/libc/netdb/capi_netbsd_amd64.go
new file mode 100644
index 00000000..4aea73b1
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_netbsd_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go b/vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go
new file mode 100644
index 00000000..469ccd5c
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_openbsd_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go b/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go
new file mode 100644
index 00000000..32f1ecca
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go
@@ -0,0 +1,6700 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_darwin_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 28
+ AF_ECMA = 8
+ AF_HYLINK = 15
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 30
+ AF_IPX = 23
+ AF_ISDN = 28
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 40
+ AF_NATM = 31
+ AF_NDRV = 27
+ AF_NETBIOS = 33
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PPP = 34
+ AF_PUP = 4
+ AF_RESERVED_36 = 36
+ AF_ROUTE = 17
+ AF_SIP = 24
+ AF_SNA = 11
+ AF_SYSTEM = 32
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_UTUN = 38
+ AI_ADDRCONFIG = 0x00000400
+ AI_ALL = 0x00000100
+ AI_CANONNAME = 0x00000002
+ AI_DEFAULT = 1536
+ AI_MASK = 5127
+ AI_NUMERICHOST = 0x00000004
+ AI_NUMERICSERV = 0x00001000
+ AI_PASSIVE = 0x00000001
+ AI_UNUSABLE = 0x10000000
+ AI_V4MAPPED = 0x00000800
+ AI_V4MAPPED_CFG = 0x00000200
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CONNECT_DATA_AUTHENTICATED = 0x4
+ CONNECT_DATA_IDEMPOTENT = 0x2
+ CONNECT_RESUME_ON_READ_WRITE = 0x1
+ EAI_ADDRFAMILY = 1
+ EAI_AGAIN = 2
+ EAI_BADFLAGS = 3
+ EAI_BADHINTS = 12
+ EAI_FAIL = 4
+ EAI_FAMILY = 5
+ EAI_MAX = 15
+ EAI_MEMORY = 6
+ EAI_NODATA = 7
+ EAI_NONAME = 8
+ EAI_OVERFLOW = 14
+ EAI_PROTOCOL = 13
+ EAI_SERVICE = 9
+ EAI_SOCKTYPE = 10
+ EAI_SYSTEM = 11
+ FD_SETSIZE = 1024
+ HOST_NOT_FOUND = 1
+ ICMP6_FILTER = 18
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 50
+ INADDR_NONE = 0xffffffff
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 0x000000ff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_HOST = 0x0fffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IPCTL_ACCEPTSOURCEROUTE = 13
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBROADCAST = 9
+ IPCTL_FASTFORWARDING = 14
+ IPCTL_FORWARDING = 1
+ IPCTL_GIF_TTL = 16
+ IPCTL_INTRQDROPS = 11
+ IPCTL_INTRQMAXLEN = 10
+ IPCTL_KEEPFAITH = 15
+ IPCTL_MAXID = 17
+ IPCTL_RTEXPIRE = 5
+ IPCTL_RTMAXCACHE = 7
+ IPCTL_RTMINEXPIRE = 6
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 8
+ IPCTL_STATS = 12
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_USERRESERVED = 5000
+ IPPROTO_3PC = 34
+ IPPROTO_ADFS = 68
+ IPPROTO_AH = 51
+ IPPROTO_AHIP = 61
+ IPPROTO_APES = 99
+ IPPROTO_ARGUS = 13
+ IPPROTO_AX25 = 93
+ IPPROTO_BHA = 49
+ IPPROTO_BLT = 30
+ IPPROTO_BRSATMON = 76
+ IPPROTO_CFTP = 62
+ IPPROTO_CHAOS = 16
+ IPPROTO_CMTP = 38
+ IPPROTO_CPHB = 73
+ IPPROTO_CPNX = 72
+ IPPROTO_DDP = 37
+ IPPROTO_DGP = 86
+ IPPROTO_DIVERT = 254
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_EMCON = 14
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GMTP = 100
+ IPPROTO_GRE = 47
+ IPPROTO_HELLO = 63
+ IPPROTO_HMP = 20
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IDPR = 35
+ IPPROTO_IDRP = 45
+ IPPROTO_IGMP = 2
+ IPPROTO_IGP = 85
+ IPPROTO_IGRP = 88
+ IPPROTO_IL = 40
+ IPPROTO_INLSP = 52
+ IPPROTO_INP = 32
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPCV = 71
+ IPPROTO_IPEIP = 94
+ IPPROTO_IPIP = 4
+ IPPROTO_IPPC = 67
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IRTP = 28
+ IPPROTO_KRYPTOLAN = 65
+ IPPROTO_LARP = 91
+ IPPROTO_LEAF1 = 25
+ IPPROTO_LEAF2 = 26
+ IPPROTO_MAX = 256
+ IPPROTO_MAXID = 52
+ IPPROTO_MEAS = 19
+ IPPROTO_MHRP = 48
+ IPPROTO_MICP = 95
+ IPPROTO_MTP = 92
+ IPPROTO_MUX = 18
+ IPPROTO_ND = 77
+ IPPROTO_NHRP = 54
+ IPPROTO_NONE = 59
+ IPPROTO_NSP = 31
+ IPPROTO_NVPII = 11
+ IPPROTO_OSPFIGP = 89
+ IPPROTO_PGM = 113
+ IPPROTO_PIGP = 9
+ IPPROTO_PIM = 103
+ IPPROTO_PRM = 21
+ IPPROTO_PUP = 12
+ IPPROTO_PVP = 75
+ IPPROTO_RAW = 255
+ IPPROTO_RCCMON = 10
+ IPPROTO_RDP = 27
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_RVD = 66
+ IPPROTO_SATEXPAK = 64
+ IPPROTO_SATMON = 69
+ IPPROTO_SCCSP = 96
+ IPPROTO_SCTP = 132
+ IPPROTO_SDRP = 42
+ IPPROTO_SEP = 33
+ IPPROTO_SRPC = 90
+ IPPROTO_ST = 7
+ IPPROTO_SVMTP = 82
+ IPPROTO_SWIPE = 53
+ IPPROTO_TCF = 87
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_TPXX = 39
+ IPPROTO_TRUNK1 = 23
+ IPPROTO_TRUNK2 = 24
+ IPPROTO_TTP = 84
+ IPPROTO_UDP = 17
+ IPPROTO_VINES = 83
+ IPPROTO_VISA = 70
+ IPPROTO_VMTP = 81
+ IPPROTO_WBEXPAK = 79
+ IPPROTO_WBMON = 78
+ IPPROTO_WSN = 74
+ IPPROTO_XNET = 15
+ IPPROTO_XTP = 36
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_KEEPFAITH = 13
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXDYNROUTES = 49
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXID = 51
+ IPV6CTL_MAXIFDEFROUTERS = 48
+ IPV6CTL_MAXIFPREFIXES = 47
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_NEIGHBORGCTHRESH = 46
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_RTEXPIRE = 25
+ IPV6CTL_RTMAXCACHE = 27
+ IPV6CTL_RTMINEXPIRE = 26
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_TEMPPLTIME = 33
+ IPV6CTL_TEMPVLTIME = 34
+ IPV6CTL_USETEMPADDR = 32
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6PROTO_MAXID = 104
+ IPV6_2292DSTOPTS = 23
+ IPV6_2292HOPLIMIT = 20
+ IPV6_2292HOPOPTS = 22
+ IPV6_2292NEXTHOP = 21
+ IPV6_2292PKTINFO = 19
+ IPV6_2292PKTOPTIONS = 25
+ IPV6_2292RTHDR = 24
+ IPV6_BINDV6ONLY = 27
+ IPV6_BOUND_IF = 125
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_FAITH = 29
+ IPV6_FW_ADD = 30
+ IPV6_FW_DEL = 31
+ IPV6_FW_FLUSH = 32
+ IPV6_FW_GET = 34
+ IPV6_FW_ZERO = 33
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MAX_GROUP_SRC_FILTER = 512
+ IPV6_MAX_MEMBERSHIPS = 4095
+ IPV6_MAX_SOCK_SRC_FILTER = 128
+ IPV6_MIN_MEMBERSHIPS = 31
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_RECVTCLASS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 36
+ IPV6_UNICAST_HOPS = 4
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_ADD_SOURCE_MEMBERSHIP = 70
+ IP_BLOCK_SOURCE = 72
+ IP_BOUND_IF = 25
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 13
+ IP_DROP_SOURCE_MEMBERSHIP = 71
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_FAITH = 22
+ IP_FW_ADD = 40
+ IP_FW_DEL = 41
+ IP_FW_FLUSH = 42
+ IP_FW_GET = 44
+ IP_FW_RESETLOG = 45
+ IP_FW_ZERO = 43
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 21
+ IP_MAX_GROUP_SRC_FILTER = 512
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MAX_SOCK_MUTE_FILTER = 128
+ IP_MAX_SOCK_SRC_FILTER = 128
+ IP_MIN_MEMBERSHIPS = 31
+ IP_MSFILTER = 74
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_IFINDEX = 66
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_MULTICAST_VIF = 14
+ IP_NAT__XXX = 55
+ IP_OLD_FW_ADD = 50
+ IP_OLD_FW_DEL = 51
+ IP_OLD_FW_FLUSH = 52
+ IP_OLD_FW_GET = 54
+ IP_OLD_FW_RESETLOG = 56
+ IP_OLD_FW_ZERO = 53
+ IP_OPTIONS = 1
+ IP_PKTINFO = 26
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVPKTINFO = 26
+ IP_RECVRETOPTS = 6
+ IP_RECVTOS = 27
+ IP_RECVTTL = 24
+ IP_RETOPTS = 8
+ IP_RSVP_OFF = 16
+ IP_RSVP_ON = 15
+ IP_RSVP_VIF_OFF = 18
+ IP_RSVP_VIF_ON = 17
+ IP_STRIPHDR = 23
+ IP_TOS = 3
+ IP_TRAFFIC_MGT_BACKGROUND = 65
+ IP_TTL = 4
+ IP_UNBLOCK_SOURCE = 73
+ KEV_DL_ADDMULTI = 7
+ KEV_DL_AWDL_RESTRICTED = 26
+ KEV_DL_AWDL_UNRESTRICTED = 27
+ KEV_DL_DELMULTI = 8
+ KEV_DL_IFCAP_CHANGED = 19
+ KEV_DL_IFDELEGATE_CHANGED = 25
+ KEV_DL_IF_ATTACHED = 9
+ KEV_DL_IF_DETACHED = 11
+ KEV_DL_IF_DETACHING = 10
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18
+ KEV_DL_ISSUES = 24
+ KEV_DL_LINK_ADDRESS_CHANGED = 16
+ KEV_DL_LINK_OFF = 12
+ KEV_DL_LINK_ON = 13
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30
+ KEV_DL_MASTER_ELECTED = 23
+ KEV_DL_NODE_ABSENCE = 22
+ KEV_DL_NODE_PRESENCE = 21
+ KEV_DL_PROTO_ATTACHED = 14
+ KEV_DL_PROTO_DETACHED = 15
+ KEV_DL_QOS_MODE_CHANGED = 29
+ KEV_DL_RRC_STATE_CHANGED = 28
+ KEV_DL_SIFFLAGS = 1
+ KEV_DL_SIFGENERIC = 6
+ KEV_DL_SIFMEDIA = 5
+ KEV_DL_SIFMETRICS = 2
+ KEV_DL_SIFMTU = 3
+ KEV_DL_SIFPHYS = 4
+ KEV_DL_SUBCLASS = 2
+ KEV_DL_WAKEFLAGS_CHANGED = 17
+ KEV_INET6_ADDR_DELETED = 3
+ KEV_INET6_CHANGED_ADDR = 2
+ KEV_INET6_DEFROUTER = 6
+ KEV_INET6_NEW_LL_ADDR = 4
+ KEV_INET6_NEW_RTADV_ADDR = 5
+ KEV_INET6_NEW_USER_ADDR = 1
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7
+ KEV_INET6_SUBCLASS = 6
+ KEV_INET_ADDR_DELETED = 3
+ KEV_INET_ARPCOLLISION = 7
+ KEV_INET_ARPRTRALIVE = 10
+ KEV_INET_ARPRTRFAILURE = 9
+ KEV_INET_CHANGED_ADDR = 2
+ KEV_INET_NEW_ADDR = 1
+ KEV_INET_PORTINUSE = 8
+ KEV_INET_SIFBRDADDR = 5
+ KEV_INET_SIFDSTADDR = 4
+ KEV_INET_SIFNETMASK = 6
+ KEV_INET_SUBCLASS = 1
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 84
+ MCAST_EXCLUDE = 2
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 80
+ MCAST_JOIN_SOURCE_GROUP = 82
+ MCAST_LEAVE_GROUP = 81
+ MCAST_LEAVE_SOURCE_GROUP = 83
+ MCAST_UNBLOCK_SOURCE = 85
+ MCAST_UNDEFINED = 0
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ NBBY = 8
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NETSVC_MRKNG_LVL_L2 = 1
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2
+ NETSVC_MRKNG_LVL_L3L2_BK = 3
+ NETSVC_MRKNG_UNKNOWN = 0
+ NET_MAXID = 40
+ NET_RT_DUMP = 1
+ NET_RT_DUMP2 = 7
+ NET_RT_FLAGS = 2
+ NET_RT_FLAGS_PRIV = 10
+ NET_RT_IFLIST = 3
+ NET_RT_IFLIST2 = 6
+ NET_RT_MAXID = 11
+ NET_RT_STAT = 4
+ NET_RT_TRASH = 5
+ NET_SERVICE_TYPE_AV = 6
+ NET_SERVICE_TYPE_BE = 0
+ NET_SERVICE_TYPE_BK = 1
+ NET_SERVICE_TYPE_OAM = 7
+ NET_SERVICE_TYPE_RD = 8
+ NET_SERVICE_TYPE_RV = 5
+ NET_SERVICE_TYPE_SIG = 2
+ NET_SERVICE_TYPE_VI = 3
+ NET_SERVICE_TYPE_VO = 4
+ NI_DGRAM = 0x00000010
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 0x00000004
+ NI_NOFQDN = 0x00000001
+ NI_NUMERICHOST = 0x00000002
+ NI_NUMERICSCOPE = 0x00000100
+ NI_NUMERICSERV = 0x00000008
+ NI_WITHSCOPEID = 0x00000020
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 30
+ PF_IPX = 23
+ PF_ISDN = 28
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 40
+ PF_NATM = 31
+ PF_NDRV = 27
+ PF_NETBIOS = 33
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PPP = 34
+ PF_PUP = 4
+ PF_RESERVED_36 = 36
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 24
+ PF_SNA = 11
+ PF_SYSTEM = 32
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_UTUN = 38
+ PF_XTP = 19
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ SAE_ASSOCID_ANY = 0
+ SAE_CONNID_ANY = 0
+ SCM_CREDS = 0x03
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIMESTAMP_MONOTONIC = 0x04
+ SCOPE_DELIMITER = 37
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIN6_LEN = 0
+ SIZE_MAX = 18446744073709551615
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SONPX_SETOPTSHUT = 0x000000001
+ SO_ACCEPTCONN = 0x0002
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DONTROUTE = 0x0010
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x0080
+ SO_LINGER_SEC = 0x1080
+ SO_NETSVC_MARKING_LEVEL = 0x1119
+ SO_NET_SERVICE_TYPE = 0x1116
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x0100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x0400
+ SO_TIMESTAMP_MONOTONIC = 0x0800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x0040
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ TRY_AGAIN = 2
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_I386__ENDIAN_H_ = 0
+ X_I386__PARAM_H_ = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NETDB_H_ = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_NET_NETKEV_H_ = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS__OSBYTEORDERI386_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SA_FAMILY_T = 0
+ X_SIZE_T = 0
+ X_SOCKLEN_T = 0
+ X_SSIZE_T = 0
+ X_SS_MAXSIZE = 128
+ X_STDINT_H_ = 0
+ X_STRUCT_IOVEC = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ Pseudo_AF_HDRCMPLT = 35
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// ++Copyright++ 1980, 1983, 1988, 1993
+// -
+// Copyright (c) 1980, 1983, 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// -
+// Portions Copyright (c) 1993 by Digital Equipment Corporation.
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies, and that
+// the name of Digital Equipment Corporation not be used in advertising or
+// publicity pertaining to distribution of the document or software without
+// specific, written prior permission.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+// SOFTWARE.
+// -
+// --Copyright--
+
+// @(#)netdb.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// 7.18.4 Macros for integer constants
+
+// 7.18.2 Limits of specified-width integer types:
+// These #defines specify the minimum and maximum limits
+// of each of the types declared above.
+//
+// They must have "the same type as would an expression that is an
+// object of the corresponding type converted according to the integer
+// promotion".
+
+// 7.18.2.1 Limits of exact-width integer types
+
+//
+// Note: the literal "most negative int" cannot be written in C --
+// the rules in the standard (section 6.4.4.1 in C99) will give it
+// an unsigned type, so INT32_MIN (and the most negative member of
+// any larger signed type) must be written via a constant expression.
+//
+
+// 7.18.2.2 Limits of minimum-width integer types
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+
+// 7.18.2.5 Limits of greatest-width integer types
+
+// 7.18.3 "Other"
+
+// WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+// it turns out that -fshort-wchar changes the signedness of
+// the type.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2008 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:289:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:293:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:303:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:303:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:309:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:315:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:333:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:420:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:440:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// 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
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:546:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:587:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:678:1 */
+
+// The following two #includes insure htonl and family are defined
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 55-57: Unassigned
+// 101-252: Partly Unassigned
+// 253-254: Experimentation and testing; 255: Reserved (RFC3692)
+// BSD Private, local use, namespace incursion
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:301:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len X__uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:375:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:398:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+
+// These older firewall socket option codes are maintained for backward compatibility.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Defaults and limits for options
+
+// The imo_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:506:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:516:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:526:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:536:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:541:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__msfr_align Uint32_t
+ Fmsfr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:554:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4)
+// This structure is used for
+//
+// 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+// set on the socket. In this case ipi_ifindex will contain the interface
+// index the datagram was received on, ipi_addr is the IP address the
+// datagram was received to.
+//
+// 2) Sending a datagram using a specific interface or IP source address.
+// if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+// ancilliary data of type IP_PKTINFO, this will be used as the source
+// interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+// will be used for the source address.
+//
+// Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+// IP_PKTINFO option silently overrides the bound interface when it is
+// specified during send time.
+type In_pktinfo = struct {
+ Fipi_ifindex uint32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:617:1 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:151:9 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr_t = In6_addr /* in6.h:157:3 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+} /* in6.h:169:1 */
+
+// Equality
+// NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+// does not supply memcmp(). For userland memcmp() is preferred as it is
+// in ANSI standard.
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// 6to4
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Unique Local IPv6 Unicast Addresses (per RFC 4193)
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC 3542 define the following socket options in a manner incompatible
+// with RFC 2292:
+// IPV6_PKTINFO
+// IPV6_HOPLIMIT
+// IPV6_NEXTHOP
+// IPV6_HOPOPTS
+// IPV6_DSTOPTS
+// IPV6_RTHDR
+//
+// To use the new IPv6 Sockets options introduced by RFC 3542
+// the constant __APPLE_USE_RFC_3542 must be defined before
+// including <netinet/in.h>
+//
+// To use the old IPv6 Sockets options from RFC 2292
+// the constant __APPLE_USE_RFC_2292 must be defined before
+// including <netinet/in.h>
+//
+// Note that eventually RFC 3542 is going to be the
+// default and RFC 2292 will be obsolete.
+
+// buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542]
+
+// APPLE: NOTE the value of those 2 options is kept unchanged from
+// previous version of darwin/OS X for binary compatibility reasons
+// and differ from FreeBSD (values 57 and 61). See below.
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// The im6o_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:527:1 */
+
+// IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:535:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:543:1 */
+
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:112:1 */
+
+// Assumption here is that a network number
+// fits in an unsigned long -- probably a poor one.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:127:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:134:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:141:1 */
+
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_canonname uintptr
+ Fai_addr uintptr
+ Fai_next uintptr
+} /* netdb.h:147:1 */
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:159:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go b/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go
new file mode 100644
index 00000000..843dc223
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go
@@ -0,0 +1,6643 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_darwin_arm64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 28
+ AF_ECMA = 8
+ AF_HYLINK = 15
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 30
+ AF_IPX = 23
+ AF_ISDN = 28
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 41
+ AF_NATM = 31
+ AF_NDRV = 27
+ AF_NETBIOS = 33
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PPP = 34
+ AF_PUP = 4
+ AF_RESERVED_36 = 36
+ AF_ROUTE = 17
+ AF_SIP = 24
+ AF_SNA = 11
+ AF_SYSTEM = 32
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_UTUN = 38
+ AF_VSOCK = 40
+ AI_ADDRCONFIG = 0x00000400
+ AI_ALL = 0x00000100
+ AI_CANONNAME = 0x00000002
+ AI_DEFAULT = 1536
+ AI_MASK = 5127
+ AI_NUMERICHOST = 0x00000004
+ AI_NUMERICSERV = 0x00001000
+ AI_PASSIVE = 0x00000001
+ AI_UNUSABLE = 0x10000000
+ AI_V4MAPPED = 0x00000800
+ AI_V4MAPPED_CFG = 0x00000200
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CONNECT_DATA_AUTHENTICATED = 0x4
+ CONNECT_DATA_IDEMPOTENT = 0x2
+ CONNECT_RESUME_ON_READ_WRITE = 0x1
+ EAI_ADDRFAMILY = 1
+ EAI_AGAIN = 2
+ EAI_BADFLAGS = 3
+ EAI_BADHINTS = 12
+ EAI_FAIL = 4
+ EAI_FAMILY = 5
+ EAI_MAX = 15
+ EAI_MEMORY = 6
+ EAI_NODATA = 7
+ EAI_NONAME = 8
+ EAI_OVERFLOW = 14
+ EAI_PROTOCOL = 13
+ EAI_SERVICE = 9
+ EAI_SOCKTYPE = 10
+ EAI_SYSTEM = 11
+ FD_SETSIZE = 1024
+ HOST_NOT_FOUND = 1
+ ICMP6_FILTER = 18
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 50
+ INADDR_NONE = 0xffffffff
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 0x000000ff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_HOST = 0x0fffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IPCTL_ACCEPTSOURCEROUTE = 13
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBROADCAST = 9
+ IPCTL_FASTFORWARDING = 14
+ IPCTL_FORWARDING = 1
+ IPCTL_GIF_TTL = 16
+ IPCTL_INTRQDROPS = 11
+ IPCTL_INTRQMAXLEN = 10
+ IPCTL_KEEPFAITH = 15
+ IPCTL_MAXID = 17
+ IPCTL_RTEXPIRE = 5
+ IPCTL_RTMAXCACHE = 7
+ IPCTL_RTMINEXPIRE = 6
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 8
+ IPCTL_STATS = 12
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_USERRESERVED = 5000
+ IPPROTO_3PC = 34
+ IPPROTO_ADFS = 68
+ IPPROTO_AH = 51
+ IPPROTO_AHIP = 61
+ IPPROTO_APES = 99
+ IPPROTO_ARGUS = 13
+ IPPROTO_AX25 = 93
+ IPPROTO_BHA = 49
+ IPPROTO_BLT = 30
+ IPPROTO_BRSATMON = 76
+ IPPROTO_CFTP = 62
+ IPPROTO_CHAOS = 16
+ IPPROTO_CMTP = 38
+ IPPROTO_CPHB = 73
+ IPPROTO_CPNX = 72
+ IPPROTO_DDP = 37
+ IPPROTO_DGP = 86
+ IPPROTO_DIVERT = 254
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_EMCON = 14
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GMTP = 100
+ IPPROTO_GRE = 47
+ IPPROTO_HELLO = 63
+ IPPROTO_HMP = 20
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IDPR = 35
+ IPPROTO_IDRP = 45
+ IPPROTO_IGMP = 2
+ IPPROTO_IGP = 85
+ IPPROTO_IGRP = 88
+ IPPROTO_IL = 40
+ IPPROTO_INLSP = 52
+ IPPROTO_INP = 32
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPCV = 71
+ IPPROTO_IPEIP = 94
+ IPPROTO_IPIP = 4
+ IPPROTO_IPPC = 67
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IRTP = 28
+ IPPROTO_KRYPTOLAN = 65
+ IPPROTO_LARP = 91
+ IPPROTO_LEAF1 = 25
+ IPPROTO_LEAF2 = 26
+ IPPROTO_MAX = 256
+ IPPROTO_MAXID = 52
+ IPPROTO_MEAS = 19
+ IPPROTO_MHRP = 48
+ IPPROTO_MICP = 95
+ IPPROTO_MTP = 92
+ IPPROTO_MUX = 18
+ IPPROTO_ND = 77
+ IPPROTO_NHRP = 54
+ IPPROTO_NONE = 59
+ IPPROTO_NSP = 31
+ IPPROTO_NVPII = 11
+ IPPROTO_OSPFIGP = 89
+ IPPROTO_PGM = 113
+ IPPROTO_PIGP = 9
+ IPPROTO_PIM = 103
+ IPPROTO_PRM = 21
+ IPPROTO_PUP = 12
+ IPPROTO_PVP = 75
+ IPPROTO_RAW = 255
+ IPPROTO_RCCMON = 10
+ IPPROTO_RDP = 27
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_RVD = 66
+ IPPROTO_SATEXPAK = 64
+ IPPROTO_SATMON = 69
+ IPPROTO_SCCSP = 96
+ IPPROTO_SCTP = 132
+ IPPROTO_SDRP = 42
+ IPPROTO_SEP = 33
+ IPPROTO_SRPC = 90
+ IPPROTO_ST = 7
+ IPPROTO_SVMTP = 82
+ IPPROTO_SWIPE = 53
+ IPPROTO_TCF = 87
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_TPXX = 39
+ IPPROTO_TRUNK1 = 23
+ IPPROTO_TRUNK2 = 24
+ IPPROTO_TTP = 84
+ IPPROTO_UDP = 17
+ IPPROTO_VINES = 83
+ IPPROTO_VISA = 70
+ IPPROTO_VMTP = 81
+ IPPROTO_WBEXPAK = 79
+ IPPROTO_WBMON = 78
+ IPPROTO_WSN = 74
+ IPPROTO_XNET = 15
+ IPPROTO_XTP = 36
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_KEEPFAITH = 13
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXDYNROUTES = 49
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXID = 51
+ IPV6CTL_MAXIFDEFROUTERS = 48
+ IPV6CTL_MAXIFPREFIXES = 47
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_NEIGHBORGCTHRESH = 46
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_RTEXPIRE = 25
+ IPV6CTL_RTMAXCACHE = 27
+ IPV6CTL_RTMINEXPIRE = 26
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_TEMPPLTIME = 33
+ IPV6CTL_TEMPVLTIME = 34
+ IPV6CTL_ULA_USETEMPADDR = 51
+ IPV6CTL_USETEMPADDR = 32
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6PROTO_MAXID = 104
+ IPV6_2292DSTOPTS = 23
+ IPV6_2292HOPLIMIT = 20
+ IPV6_2292HOPOPTS = 22
+ IPV6_2292NEXTHOP = 21
+ IPV6_2292PKTINFO = 19
+ IPV6_2292PKTOPTIONS = 25
+ IPV6_2292RTHDR = 24
+ IPV6_ADDR_MC_FLAGS_PREFIX = 0x20
+ IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10
+ IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 48
+ IPV6_BINDV6ONLY = 27
+ IPV6_BOUND_IF = 125
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_FAITH = 29
+ IPV6_FW_ADD = 30
+ IPV6_FW_DEL = 31
+ IPV6_FW_FLUSH = 32
+ IPV6_FW_GET = 34
+ IPV6_FW_ZERO = 33
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MAX_GROUP_SRC_FILTER = 512
+ IPV6_MAX_MEMBERSHIPS = 4095
+ IPV6_MAX_SOCK_SRC_FILTER = 128
+ IPV6_MIN_MEMBERSHIPS = 31
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_RECVTCLASS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 36
+ IPV6_UNICAST_HOPS = 4
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_ADD_SOURCE_MEMBERSHIP = 70
+ IP_BLOCK_SOURCE = 72
+ IP_BOUND_IF = 25
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DONTFRAG = 28
+ IP_DROP_MEMBERSHIP = 13
+ IP_DROP_SOURCE_MEMBERSHIP = 71
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_FAITH = 22
+ IP_FW_ADD = 40
+ IP_FW_DEL = 41
+ IP_FW_FLUSH = 42
+ IP_FW_GET = 44
+ IP_FW_RESETLOG = 45
+ IP_FW_ZERO = 43
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 21
+ IP_MAX_GROUP_SRC_FILTER = 512
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MAX_SOCK_MUTE_FILTER = 128
+ IP_MAX_SOCK_SRC_FILTER = 128
+ IP_MIN_MEMBERSHIPS = 31
+ IP_MSFILTER = 74
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_IFINDEX = 66
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_MULTICAST_VIF = 14
+ IP_NAT__XXX = 55
+ IP_OLD_FW_ADD = 50
+ IP_OLD_FW_DEL = 51
+ IP_OLD_FW_FLUSH = 52
+ IP_OLD_FW_GET = 54
+ IP_OLD_FW_RESETLOG = 56
+ IP_OLD_FW_ZERO = 53
+ IP_OPTIONS = 1
+ IP_PKTINFO = 26
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVPKTINFO = 26
+ IP_RECVRETOPTS = 6
+ IP_RECVTOS = 27
+ IP_RECVTTL = 24
+ IP_RETOPTS = 8
+ IP_RSVP_OFF = 16
+ IP_RSVP_ON = 15
+ IP_RSVP_VIF_OFF = 18
+ IP_RSVP_VIF_ON = 17
+ IP_STRIPHDR = 23
+ IP_TOS = 3
+ IP_TRAFFIC_MGT_BACKGROUND = 65
+ IP_TTL = 4
+ IP_UNBLOCK_SOURCE = 73
+ KEV_DL_ADDMULTI = 7
+ KEV_DL_AWDL_RESTRICTED = 26
+ KEV_DL_AWDL_UNRESTRICTED = 27
+ KEV_DL_DELMULTI = 8
+ KEV_DL_IFCAP_CHANGED = 19
+ KEV_DL_IFDELEGATE_CHANGED = 25
+ KEV_DL_IF_ATTACHED = 9
+ KEV_DL_IF_DETACHED = 11
+ KEV_DL_IF_DETACHING = 10
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18
+ KEV_DL_ISSUES = 24
+ KEV_DL_LINK_ADDRESS_CHANGED = 16
+ KEV_DL_LINK_OFF = 12
+ KEV_DL_LINK_ON = 13
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30
+ KEV_DL_NODE_ABSENCE = 22
+ KEV_DL_NODE_PRESENCE = 21
+ KEV_DL_PRIMARY_ELECTED = 23
+ KEV_DL_PROTO_ATTACHED = 14
+ KEV_DL_PROTO_DETACHED = 15
+ KEV_DL_QOS_MODE_CHANGED = 29
+ KEV_DL_RRC_STATE_CHANGED = 28
+ KEV_DL_SIFFLAGS = 1
+ KEV_DL_SIFGENERIC = 6
+ KEV_DL_SIFMEDIA = 5
+ KEV_DL_SIFMETRICS = 2
+ KEV_DL_SIFMTU = 3
+ KEV_DL_SIFPHYS = 4
+ KEV_DL_SUBCLASS = 2
+ KEV_DL_WAKEFLAGS_CHANGED = 17
+ KEV_INET6_ADDR_DELETED = 3
+ KEV_INET6_CHANGED_ADDR = 2
+ KEV_INET6_DEFROUTER = 6
+ KEV_INET6_NEW_LL_ADDR = 4
+ KEV_INET6_NEW_RTADV_ADDR = 5
+ KEV_INET6_NEW_USER_ADDR = 1
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7
+ KEV_INET6_SUBCLASS = 6
+ KEV_INET_ADDR_DELETED = 3
+ KEV_INET_ARPCOLLISION = 7
+ KEV_INET_ARPRTRALIVE = 10
+ KEV_INET_ARPRTRFAILURE = 9
+ KEV_INET_CHANGED_ADDR = 2
+ KEV_INET_NEW_ADDR = 1
+ KEV_INET_PORTINUSE = 8
+ KEV_INET_SIFBRDADDR = 5
+ KEV_INET_SIFDSTADDR = 4
+ KEV_INET_SIFNETMASK = 6
+ KEV_INET_SUBCLASS = 1
+ LITTLE_ENDIAN = 1234
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ MCAST_BLOCK_SOURCE = 84
+ MCAST_EXCLUDE = 2
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 80
+ MCAST_JOIN_SOURCE_GROUP = 82
+ MCAST_LEAVE_GROUP = 81
+ MCAST_LEAVE_SOURCE_GROUP = 83
+ MCAST_UNBLOCK_SOURCE = 85
+ MCAST_UNDEFINED = 0
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_NOSIGNAL = 0x80000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ NBBY = 8
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NETSVC_MRKNG_LVL_L2 = 1
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2
+ NETSVC_MRKNG_LVL_L3L2_BK = 3
+ NETSVC_MRKNG_UNKNOWN = 0
+ NET_MAXID = 41
+ NET_RT_DUMP = 1
+ NET_RT_DUMP2 = 7
+ NET_RT_FLAGS = 2
+ NET_RT_FLAGS_PRIV = 10
+ NET_RT_IFLIST = 3
+ NET_RT_IFLIST2 = 6
+ NET_RT_MAXID = 11
+ NET_RT_STAT = 4
+ NET_RT_TRASH = 5
+ NET_SERVICE_TYPE_AV = 6
+ NET_SERVICE_TYPE_BE = 0
+ NET_SERVICE_TYPE_BK = 1
+ NET_SERVICE_TYPE_OAM = 7
+ NET_SERVICE_TYPE_RD = 8
+ NET_SERVICE_TYPE_RV = 5
+ NET_SERVICE_TYPE_SIG = 2
+ NET_SERVICE_TYPE_VI = 3
+ NET_SERVICE_TYPE_VO = 4
+ NI_DGRAM = 0x00000010
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 0x00000004
+ NI_NOFQDN = 0x00000001
+ NI_NUMERICHOST = 0x00000002
+ NI_NUMERICSCOPE = 0x00000100
+ NI_NUMERICSERV = 0x00000008
+ NI_WITHSCOPEID = 0x00000020
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 30
+ PF_IPX = 23
+ PF_ISDN = 28
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 41
+ PF_NATM = 31
+ PF_NDRV = 27
+ PF_NETBIOS = 33
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PPP = 34
+ PF_PUP = 4
+ PF_RESERVED_36 = 36
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 24
+ PF_SNA = 11
+ PF_SYSTEM = 32
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_UTUN = 38
+ PF_VSOCK = 40
+ PF_XTP = 19
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ SAE_ASSOCID_ANY = 0
+ SAE_CONNID_ANY = 0
+ SCM_CREDS = 0x03
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIMESTAMP_MONOTONIC = 0x04
+ SCOPE_DELIMITER = 37
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIN6_LEN = 0
+ SIZE_MAX = 18446744073709551615
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SONPX_SETOPTSHUT = 0x000000001
+ SO_ACCEPTCONN = 0x0002
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DONTROUTE = 0x0010
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x0080
+ SO_LINGER_SEC = 0x1080
+ SO_NETSVC_MARKING_LEVEL = 0x1119
+ SO_NET_SERVICE_TYPE = 0x1116
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x0100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x0400
+ SO_TIMESTAMP_MONOTONIC = 0x0800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x0040
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ TRY_AGAIN = 2
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM__ENDIAN_H_ = 0
+ X_ARM__PARAM_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__PARAM_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NETDB_H_ = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_NET_NETKEV_H_ = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SA_FAMILY_T = 0
+ X_SIZE_T = 0
+ X_SOCKLEN_T = 0
+ X_SSIZE_T = 0
+ X_SS_MAXSIZE = 128
+ X_STDINT_H_ = 0
+ X_STRUCT_IOVEC = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ Pseudo_AF_HDRCMPLT = 35
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+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 */
+
+// Copyright (c) 2000-2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// ++Copyright++ 1980, 1983, 1988, 1993
+// -
+// Copyright (c) 1980, 1983, 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// -
+// Portions Copyright (c) 1993 by Digital Equipment Corporation.
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies, and that
+// the name of Digital Equipment Corporation not be used in advertising or
+// publicity pertaining to distribution of the document or software without
+// specific, written prior permission.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+// SOFTWARE.
+// -
+// --Copyright--
+
+// @(#)netdb.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// 7.18.4 Macros for integer constants
+
+// 7.18.2 Limits of specified-width integer types:
+// These #defines specify the minimum and maximum limits
+// of each of the types declared above.
+//
+// They must have "the same type as would an expression that is an
+// object of the corresponding type converted according to the integer
+// promotion".
+
+// 7.18.2.1 Limits of exact-width integer types
+
+//
+// Note: the literal "most negative int" cannot be written in C --
+// the rules in the standard (section 6.4.4.1 in C99) will give it
+// an unsigned type, so INT32_MIN (and the most negative member of
+// any larger signed type) must be written via a constant expression.
+//
+
+// 7.18.2.2 Limits of minimum-width integer types
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+
+// 7.18.2.5 Limits of greatest-width integer types
+
+// 7.18.3 "Other"
+
+// WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+// it turns out that -fshort-wchar changes the signedness of
+// the type.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// When adding new socket-options, you need to make sure MPTCP supports these as well!
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:293:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:297:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:313:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:319:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:337:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:425:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:445:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// 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
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:552:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:600:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:691:1 */
+
+// The following two #includes insure htonl and family are defined
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 55-57: Unassigned
+// 101-252: Partly Unassigned
+// 253-254: Experimentation and testing; 255: Reserved (RFC3692)
+// BSD Private, local use, namespace incursion
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:301:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len X__uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:375:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:398:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+
+// These older firewall socket option codes are maintained for backward compatibility.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Defaults and limits for options
+
+// The imo_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:507:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:517:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:527:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:537:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:542:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__msfr_align Uint32_t
+ Fmsfr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:555:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4)
+// This structure is used for
+//
+// 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+// set on the socket. In this case ipi_ifindex will contain the interface
+// index the datagram was received on, ipi_addr is the IP address the
+// datagram was received to.
+//
+// 2) Sending a datagram using a specific interface or IP source address.
+// if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+// ancilliary data of type IP_PKTINFO, this will be used as the source
+// interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+// will be used for the source address.
+//
+// Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+// IP_PKTINFO option silently overrides the bound interface when it is
+// specified during send time.
+type In_pktinfo = struct {
+ Fipi_ifindex uint32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:618:1 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:152:9 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr_t = In6_addr /* in6.h:158:3 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+} /* in6.h:170:1 */
+
+// Equality
+// NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+// does not supply memcmp(). For userland memcmp() is preferred as it is
+// in ANSI standard.
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// 6to4
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Unique Local IPv6 Unicast Addresses (per RFC 4193)
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC 3542 define the following socket options in a manner incompatible
+// with RFC 2292:
+// IPV6_PKTINFO
+// IPV6_HOPLIMIT
+// IPV6_NEXTHOP
+// IPV6_HOPOPTS
+// IPV6_DSTOPTS
+// IPV6_RTHDR
+//
+// To use the new IPv6 Sockets options introduced by RFC 3542
+// the constant __APPLE_USE_RFC_3542 must be defined before
+// including <netinet/in.h>
+//
+// To use the old IPv6 Sockets options from RFC 2292
+// the constant __APPLE_USE_RFC_2292 must be defined before
+// including <netinet/in.h>
+//
+// Note that eventually RFC 3542 is going to be the
+// default and RFC 2292 will be obsolete.
+
+// buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542]
+
+// APPLE: NOTE the value of those 2 options is kept unchanged from
+// previous version of darwin/OS X for binary compatibility reasons
+// and differ from FreeBSD (values 57 and 61). See below.
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// The im6o_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:541:1 */
+
+// IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:549:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:557:1 */
+
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:112:1 */
+
+// Assumption here is that a network number
+// fits in an unsigned long -- probably a poor one.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:127:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:134:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:141:1 */
+
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_canonname uintptr
+ Fai_addr uintptr
+ Fai_next uintptr
+} /* netdb.h:147:1 */
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:159:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_freebsd_386.go b/vendor/modernc.org/libc/netdb/netdb_freebsd_386.go
new file mode 100644
index 00000000..df61f9fe
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_freebsd_386.go
@@ -0,0 +1,713 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_freebsd_386.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AI_ADDRCONFIG = 0x00000400
+ AI_ALL = 0x00000100
+ AI_CANONNAME = 0x00000002
+ AI_DEFAULT = 1536
+ AI_MASK = 3343
+ AI_NUMERICHOST = 0x00000004
+ AI_NUMERICSERV = 0x00000008
+ AI_PASSIVE = 0x00000001
+ AI_V4MAPPED = 0x00000800
+ AI_V4MAPPED_CFG = 0x00000200
+ EAI_AGAIN = 2
+ EAI_BADFLAGS = 3
+ EAI_BADHINTS = 12
+ EAI_FAIL = 4
+ EAI_FAMILY = 5
+ EAI_MAX = 15
+ EAI_MEMORY = 6
+ EAI_NONAME = 8
+ EAI_OVERFLOW = 14
+ EAI_PROTOCOL = 13
+ EAI_SERVICE = 9
+ EAI_SOCKTYPE = 10
+ EAI_SYSTEM = 11
+ HOST_NOT_FOUND = 1
+ IPPORT_RESERVED = 1024
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 0x00000010
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 0x00000004
+ NI_NOFQDN = 0x00000001
+ NI_NUMERICHOST = 0x00000002
+ NI_NUMERICSCOPE = 0x00000020
+ NI_NUMERICSERV = 0x00000008
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ SCOPE_DELIMITER = 37
+ TRY_AGAIN = 2
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_NETDB_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_PATH_SERVICES_DB = "/var/db/services.db"
+ X_SIZE_T_DECLARED = 0
+ X_SOCKLEN_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINT32_T_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: (BSD-3-Clause AND ISC)
+//
+// Copyright (c) 1980, 1983, 1988, 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.
+//
+// -
+// Portions Copyright (c) 1993 by Digital Equipment Corporation.
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies, and that
+// the name of Digital Equipment Corporation not be used in advertising or
+// publicity pertaining to distribution of the document or software without
+// specific, written prior permission.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+// SOFTWARE.
+// -
+// --Copyright--
+
+// @(#)netdb.h 8.1 (Berkeley) 6/2/93
+// From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type In_addr_t = X__uint32_t /* netdb.h:66:20 */
+
+type In_port_t = X__uint16_t /* netdb.h:71:20 */
+
+type Socklen_t = X__socklen_t /* netdb.h:81:21 */
+
+type Uint32_t = X__uint32_t /* netdb.h:86:20 */
+
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:106:1 */
+
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:115:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ Fs_proto uintptr
+} /* netdb.h:122:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+} /* netdb.h:129:1 */
+
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ Fai_canonname uintptr
+ Fai_addr uintptr
+ Fai_next uintptr
+} /* netdb.h:135:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_freebsd_amd64.go b/vendor/modernc.org/libc/netdb/netdb_freebsd_amd64.go
new file mode 100644
index 00000000..5ec53ab5
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_freebsd_amd64.go
@@ -0,0 +1,721 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_freebsd_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AI_ADDRCONFIG = 0x00000400
+ AI_ALL = 0x00000100
+ AI_CANONNAME = 0x00000002
+ AI_DEFAULT = 1536
+ AI_MASK = 3343
+ AI_NUMERICHOST = 0x00000004
+ AI_NUMERICSERV = 0x00000008
+ AI_PASSIVE = 0x00000001
+ AI_V4MAPPED = 0x00000800
+ AI_V4MAPPED_CFG = 0x00000200
+ EAI_AGAIN = 2
+ EAI_BADFLAGS = 3
+ EAI_BADHINTS = 12
+ EAI_FAIL = 4
+ EAI_FAMILY = 5
+ EAI_MAX = 15
+ EAI_MEMORY = 6
+ EAI_NONAME = 8
+ EAI_OVERFLOW = 14
+ EAI_PROTOCOL = 13
+ EAI_SERVICE = 9
+ EAI_SOCKTYPE = 10
+ EAI_SYSTEM = 11
+ HOST_NOT_FOUND = 1
+ IPPORT_RESERVED = 1024
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 0x00000010
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 0x00000004
+ NI_NOFQDN = 0x00000001
+ NI_NUMERICHOST = 0x00000002
+ NI_NUMERICSCOPE = 0x00000020
+ NI_NUMERICSERV = 0x00000008
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ SCOPE_DELIMITER = 37
+ TRY_AGAIN = 2
+ X_FILE_OFFSET_BITS = 64
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_NETDB_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_PATH_SERVICES_DB = "/var/db/services.db"
+ X_SIZE_T_DECLARED = 0
+ X_SOCKLEN_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINT32_T_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: (BSD-3-Clause AND ISC)
+//
+// Copyright (c) 1980, 1983, 1988, 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.
+//
+// -
+// Portions Copyright (c) 1993 by Digital Equipment Corporation.
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies, and that
+// the name of Digital Equipment Corporation not be used in advertising or
+// publicity pertaining to distribution of the document or software without
+// specific, written prior permission.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+// SOFTWARE.
+// -
+// --Copyright--
+
+// @(#)netdb.h 8.1 (Berkeley) 6/2/93
+// From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type In_addr_t = X__uint32_t /* netdb.h:66:20 */
+
+type In_port_t = X__uint16_t /* netdb.h:71:20 */
+
+type Socklen_t = X__socklen_t /* netdb.h:81:21 */
+
+type Uint32_t = X__uint32_t /* netdb.h:86:20 */
+
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:106:1 */
+
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:115:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:122:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:129:1 */
+
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_canonname uintptr
+ Fai_addr uintptr
+ Fai_next uintptr
+} /* netdb.h:135:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_linux_386.go b/vendor/modernc.org/libc/netdb/netdb_linux_386.go
new file mode 100644
index 00000000..fc6570d4
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_linux_386.go
@@ -0,0 +1,3028 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_386.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ AI_ADDRCONFIG = 0x0020
+ AI_ALL = 0x0010
+ AI_CANONNAME = 0x0002
+ AI_NUMERICHOST = 0x0004
+ AI_NUMERICSERV = 0x0400
+ AI_PASSIVE = 0x0001
+ AI_V4MAPPED = 0x0008
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ EAI_AGAIN = -3
+ EAI_BADFLAGS = -1
+ EAI_FAIL = -4
+ EAI_FAMILY = -6
+ EAI_MEMORY = -10
+ EAI_NONAME = -2
+ EAI_OVERFLOW = -12
+ EAI_SERVICE = -8
+ EAI_SOCKTYPE = -7
+ EAI_SYSTEM = -11
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ HOST_NOT_FOUND = 1
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPPORT_RESERVED1 = 1024
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 16
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 8
+ NI_NOFQDN = 4
+ NI_NUMERICHOST = 1
+ NI_NUMERICSERV = 2
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ SO_RCVBUF = 8
+ SO_RCVBUFFORCE = 33
+ SO_RCVLOWAT = 18
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
+ SO_REUSEADDR = 2
+ SO_REUSEPORT = 15
+ SO_RXQ_OVFL = 40
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ SO_SNDBUFFORCE = 32
+ SO_SNDLOWAT = 19
+ 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
+ TRY_AGAIN = 2
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_ILP32 = 1
+ X_LINUX_POSIX_TYPES_H = 0
+ X_NETDB_H = 1
+ X_NETINET_IN_H = 1
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_NSSWITCH_CONF = "/etc/nsswitch.conf"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RPC_NETDB_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 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
+// 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/>.
+
+// All data returned by the network data base library are supplied in
+// host order and returned in network order (suitable for use in
+// system calls).
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 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
+// 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 uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* 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_align uint32
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+// 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.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// Instruct lower device to use last 4-bytes of skb data as FCS
+
+// Structure used to manipulate the SO_LINGER option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* 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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+} /* in.h:345:1 */
+
+// Define uintN_t types.
+// 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/>.
+
+// This is necessary to make this include file properly replace the
+// Sun version.
+// @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC
+// Copyright (c) 2010, Oracle America, Inc.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of the "Oracle America, Inc." 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 COPYRIGHT HOLDERS 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
+// COPYRIGHT HOLDER 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.
+
+// Cleaned up for GNU C library roland@gnu.ai.mit.edu:
+// added multiple inclusion protection and use of <sys/cdefs.h>.
+// In GNU this file is #include'd by <netdb.h>.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+} /* netdb.h:46:1 */
+
+// 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
+// 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/>.
+
+// Description of data base entry for a single network. NOTE: here a
+// poor assumption is made. The network number is expected to fit
+// into an unsigned long int variable.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:26:1 */
+
+// Description of data base entry for a single host.
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:98:1 */
+
+// Description of data base entry for a single service.
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ Fs_proto uintptr
+} /* netdb.h:255:1 */
+
+// Description of data base entry for a single service.
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+} /* netdb.h:324:1 */
+
+// Extension from POSIX.1:2001.
+// Structure to contain information about address of a service provider.
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:565:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_linux_amd64.go b/vendor/modernc.org/libc/netdb/netdb_linux_amd64.go
new file mode 100644
index 00000000..42f1fff3
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_linux_amd64.go
@@ -0,0 +1,3065 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ AI_ADDRCONFIG = 0x0020
+ AI_ALL = 0x0010
+ AI_CANONNAME = 0x0002
+ AI_NUMERICHOST = 0x0004
+ AI_NUMERICSERV = 0x0400
+ AI_PASSIVE = 0x0001
+ AI_V4MAPPED = 0x0008
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ EAI_AGAIN = -3
+ EAI_BADFLAGS = -1
+ EAI_FAIL = -4
+ EAI_FAMILY = -6
+ EAI_MEMORY = -10
+ EAI_NONAME = -2
+ EAI_OVERFLOW = -12
+ EAI_SERVICE = -8
+ EAI_SOCKTYPE = -7
+ EAI_SYSTEM = -11
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ HOST_NOT_FOUND = 1
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPPORT_RESERVED1 = 1024
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 16
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 8
+ NI_NOFQDN = 4
+ NI_NUMERICHOST = 1
+ NI_NUMERICSERV = 2
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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
+ TRY_AGAIN = 2
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LP64 = 1
+ X_NETDB_H = 1
+ X_NETINET_IN_H = 1
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_NSSWITCH_CONF = "/etc/nsswitch.conf"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RPC_NETDB_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// All data returned by the network data base library are supplied in
+// host order and returned in network order (suitable for use in
+// system calls).
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 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
+// 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 uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* 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_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:345:1 */
+
+// Define uintN_t types.
+// 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/>.
+
+// This is necessary to make this include file properly replace the
+// Sun version.
+// @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC
+// Copyright (c) 2010, Oracle America, Inc.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of the "Oracle America, Inc." 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 COPYRIGHT HOLDERS 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
+// COPYRIGHT HOLDER 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.
+
+// Cleaned up for GNU C library roland@gnu.ai.mit.edu:
+// added multiple inclusion protection and use of <sys/cdefs.h>.
+// In GNU this file is #include'd by <netdb.h>.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:46:1 */
+
+// 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
+// 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/>.
+
+// Description of data base entry for a single network. NOTE: here a
+// poor assumption is made. The network number is expected to fit
+// into an unsigned long int variable.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:26:1 */
+
+// Description of data base entry for a single host.
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:98:1 */
+
+// Description of data base entry for a single service.
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:255:1 */
+
+// Description of data base entry for a single service.
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:324:1 */
+
+// Extension from POSIX.1:2001.
+// Structure to contain information about address of a service provider.
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:565:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_linux_arm.go b/vendor/modernc.org/libc/netdb/netdb_linux_arm.go
new file mode 100644
index 00000000..9301fcd8
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_linux_arm.go
@@ -0,0 +1,3144 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_arm.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ AI_ADDRCONFIG = 0x0020
+ AI_ALL = 0x0010
+ AI_CANONNAME = 0x0002
+ AI_NUMERICHOST = 0x0004
+ AI_NUMERICSERV = 0x0400
+ AI_PASSIVE = 0x0001
+ AI_V4MAPPED = 0x0008
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ EAI_AGAIN = -3
+ EAI_BADFLAGS = -1
+ EAI_FAIL = -4
+ EAI_FAMILY = -6
+ EAI_MEMORY = -10
+ EAI_NONAME = -2
+ EAI_OVERFLOW = -12
+ EAI_SERVICE = -8
+ EAI_SOCKTYPE = -7
+ EAI_SYSTEM = -11
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ HOST_NOT_FOUND = 1
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPPORT_RESERVED1 = 1024
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 16
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 8
+ NI_NOFQDN = 4
+ NI_NUMERICHOST = 1
+ NI_NUMERICSERV = 2
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ SO_RCVBUF = 8
+ SO_RCVBUFFORCE = 33
+ SO_RCVLOWAT = 18
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
+ SO_REUSEADDR = 2
+ SO_REUSEPORT = 15
+ SO_RXQ_OVFL = 40
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ SO_SNDBUFFORCE = 32
+ SO_SNDLOWAT = 19
+ 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
+ TRY_AGAIN = 2
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_NETDB_H = 1
+ X_NETINET_IN_H = 1
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_NSSWITCH_CONF = "/etc/nsswitch.conf"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RPC_NETDB_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 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
+// 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/>.
+
+// All data returned by the network data base library are supplied in
+// host order and returned in network order (suitable for use in
+// system calls).
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 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
+// 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 uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint32
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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
+
+// 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.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// Instruct lower device to use last 4-bytes of skb data as FCS
+
+// Structure used to manipulate the SO_LINGER option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* 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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]uint8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+} /* in.h:345:1 */
+
+// Define uintN_t types.
+// 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/>.
+
+// This is necessary to make this include file properly replace the
+// Sun version.
+// @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC
+// Copyright (c) 2010, Oracle America, Inc.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of the "Oracle America, Inc." 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 COPYRIGHT HOLDERS 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
+// COPYRIGHT HOLDER 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.
+
+// Cleaned up for GNU C library roland@gnu.ai.mit.edu:
+// added multiple inclusion protection and use of <sys/cdefs.h>.
+// In GNU this file is #include'd by <netdb.h>.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+} /* netdb.h:46:1 */
+
+// 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
+// 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/>.
+
+// Description of data base entry for a single network. NOTE: here a
+// poor assumption is made. The network number is expected to fit
+// into an unsigned long int variable.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:26:1 */
+
+// Description of data base entry for a single host.
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:98:1 */
+
+// Description of data base entry for a single service.
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ Fs_proto uintptr
+} /* netdb.h:255:1 */
+
+// Description of data base entry for a single service.
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+} /* netdb.h:324:1 */
+
+// Extension from POSIX.1:2001.
+// Structure to contain information about address of a service provider.
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:565:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_linux_arm64.go b/vendor/modernc.org/libc/netdb/netdb_linux_arm64.go
new file mode 100644
index 00000000..869851d1
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_linux_arm64.go
@@ -0,0 +1,3175 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_arm64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ AI_ADDRCONFIG = 0x0020
+ AI_ALL = 0x0010
+ AI_CANONNAME = 0x0002
+ AI_NUMERICHOST = 0x0004
+ AI_NUMERICSERV = 0x0400
+ AI_PASSIVE = 0x0001
+ AI_V4MAPPED = 0x0008
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ EAI_AGAIN = -3
+ EAI_BADFLAGS = -1
+ EAI_FAIL = -4
+ EAI_FAMILY = -6
+ EAI_MEMORY = -10
+ EAI_NONAME = -2
+ EAI_OVERFLOW = -12
+ EAI_SERVICE = -8
+ EAI_SOCKTYPE = -7
+ EAI_SYSTEM = -11
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ HOST_NOT_FOUND = 1
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPPORT_RESERVED1 = 1024
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 16
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 8
+ NI_NOFQDN = 4
+ NI_NUMERICHOST = 1
+ NI_NUMERICSERV = 2
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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
+ TRY_AGAIN = 2
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LP64 = 1
+ X_NETDB_H = 1
+ X_NETINET_IN_H = 1
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_NSSWITCH_CONF = "/etc/nsswitch.conf"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RPC_NETDB_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// All data returned by the network data base library are supplied in
+// host order and returned in network order (suitable for use in
+// system calls).
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 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
+// 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 uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]uint8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:345:1 */
+
+// Define uintN_t types.
+// 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/>.
+
+// This is necessary to make this include file properly replace the
+// Sun version.
+// @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC
+// Copyright (c) 2010, Oracle America, Inc.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of the "Oracle America, Inc." 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 COPYRIGHT HOLDERS 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
+// COPYRIGHT HOLDER 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.
+
+// Cleaned up for GNU C library roland@gnu.ai.mit.edu:
+// added multiple inclusion protection and use of <sys/cdefs.h>.
+// In GNU this file is #include'd by <netdb.h>.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:46:1 */
+
+// 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
+// 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/>.
+
+// Description of data base entry for a single network. NOTE: here a
+// poor assumption is made. The network number is expected to fit
+// into an unsigned long int variable.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:26:1 */
+
+// Description of data base entry for a single host.
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:98:1 */
+
+// Description of data base entry for a single service.
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:255:1 */
+
+// Description of data base entry for a single service.
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:324:1 */
+
+// Extension from POSIX.1:2001.
+// Structure to contain information about address of a service provider.
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:565:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_linux_s390x.go b/vendor/modernc.org/libc/netdb/netdb_linux_s390x.go
new file mode 100644
index 00000000..eb3e6ed3
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_linux_s390x.go
@@ -0,0 +1,3061 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_s390x.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ AI_ADDRCONFIG = 0x0020
+ AI_ALL = 0x0010
+ AI_CANONNAME = 0x0002
+ AI_NUMERICHOST = 0x0004
+ AI_NUMERICSERV = 0x0400
+ AI_PASSIVE = 0x0001
+ AI_V4MAPPED = 0x0008
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 4321
+ EAI_AGAIN = -3
+ EAI_BADFLAGS = -1
+ EAI_FAIL = -4
+ EAI_FAMILY = -6
+ EAI_MEMORY = -10
+ EAI_NONAME = -2
+ EAI_OVERFLOW = -12
+ EAI_SERVICE = -8
+ EAI_SOCKTYPE = -7
+ EAI_SYSTEM = -11
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ HOST_NOT_FOUND = 1
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPPORT_RESERVED1 = 1024
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 16
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 8
+ NI_NOFQDN = 4
+ NI_NUMERICHOST = 1
+ NI_NUMERICSERV = 2
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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
+ TRY_AGAIN = 2
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LP64 = 1
+ X_NETDB_H = 1
+ X_NETINET_IN_H = 1
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_NSSWITCH_CONF = "/etc/nsswitch.conf"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RPC_NETDB_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// All data returned by the network data base library are supplied in
+// host order and returned in network order (suitable for use in
+// system calls).
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 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
+// 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 uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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
+// S390 version
+//
+
+// 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
+
+// Socket-level I/O control calls.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]uint8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:345:1 */
+
+// Define uintN_t types.
+// 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/>.
+
+// This is necessary to make this include file properly replace the
+// Sun version.
+// @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC
+// Copyright (c) 2010, Oracle America, Inc.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of the "Oracle America, Inc." 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 COPYRIGHT HOLDERS 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
+// COPYRIGHT HOLDER 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.
+
+// Cleaned up for GNU C library roland@gnu.ai.mit.edu:
+// added multiple inclusion protection and use of <sys/cdefs.h>.
+// In GNU this file is #include'd by <netdb.h>.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+type Rpcent = struct {
+ Fr_name uintptr
+ Fr_aliases uintptr
+ Fr_number int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:46:1 */
+
+// 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
+// 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/>.
+
+// Description of data base entry for a single network. NOTE: here a
+// poor assumption is made. The network number is expected to fit
+// into an unsigned long int variable.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:26:1 */
+
+// Description of data base entry for a single host.
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:98:1 */
+
+// Description of data base entry for a single service.
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:255:1 */
+
+// Description of data base entry for a single service.
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:324:1 */
+
+// Extension from POSIX.1:2001.
+// Structure to contain information about address of a service provider.
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:565:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_netbsd_amd64.go b/vendor/modernc.org/libc/netdb/netdb_netbsd_amd64.go
new file mode 100644
index 00000000..216e52de
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_netbsd_amd64.go
@@ -0,0 +1,1018 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_netbsd_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AI_ADDRCONFIG = 0x00000400
+ AI_CANONNAME = 0x00000002
+ AI_MASK = 3087
+ AI_NUMERICHOST = 0x00000004
+ AI_NUMERICSERV = 0x00000008
+ AI_PASSIVE = 0x00000001
+ AI_SRV = 0x00000800
+ EAI_ADDRFAMILY = 1
+ EAI_AGAIN = 2
+ EAI_BADFLAGS = 3
+ EAI_BADHINTS = 12
+ EAI_FAIL = 4
+ EAI_FAMILY = 5
+ EAI_MAX = 15
+ EAI_MEMORY = 6
+ EAI_NODATA = 7
+ EAI_NONAME = 8
+ EAI_OVERFLOW = 14
+ EAI_PROTOCOL = 13
+ EAI_SERVICE = 9
+ EAI_SOCKTYPE = 10
+ EAI_SYSTEM = 11
+ HOST_NOT_FOUND = 1
+ 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
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 0x00000010
+ NI_MAXHOST = 1025
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 0x00000004
+ NI_NOFQDN = 0x00000001
+ NI_NUMERICHOST = 0x00000002
+ NI_NUMERICSCOPE = 0x00000040
+ NI_NUMERICSERV = 0x00000008
+ NI_WITHSCOPEID = 0x00000020
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PRIX16 = "X"
+ PRIX32 = "X"
+ PRIX64 = "lX"
+ PRIX8 = "X"
+ PRIXFAST16 = "X"
+ PRIXFAST32 = "X"
+ PRIXFAST64 = "lX"
+ PRIXFAST8 = "X"
+ PRIXLEAST16 = "X"
+ PRIXLEAST32 = "X"
+ PRIXLEAST64 = "lX"
+ PRIXLEAST8 = "X"
+ PRIXMAX = "lX"
+ PRIXPTR = "lX"
+ PRId16 = "d"
+ PRId32 = "d"
+ PRId64 = "ld"
+ PRId8 = "d"
+ PRIdFAST16 = "d"
+ PRIdFAST32 = "d"
+ PRIdFAST64 = "ld"
+ PRIdFAST8 = "d"
+ PRIdLEAST16 = "d"
+ PRIdLEAST32 = "d"
+ PRIdLEAST64 = "ld"
+ PRIdLEAST8 = "d"
+ PRIdMAX = "ld"
+ PRIdPTR = "ld"
+ PRIi16 = "i"
+ PRIi32 = "i"
+ PRIi64 = "li"
+ PRIi8 = "i"
+ PRIiFAST16 = "i"
+ PRIiFAST32 = "i"
+ PRIiFAST64 = "li"
+ PRIiFAST8 = "i"
+ PRIiLEAST16 = "i"
+ PRIiLEAST32 = "i"
+ PRIiLEAST64 = "li"
+ PRIiLEAST8 = "i"
+ PRIiMAX = "li"
+ PRIiPTR = "li"
+ PRIo16 = "o"
+ PRIo32 = "o"
+ PRIo64 = "lo"
+ PRIo8 = "o"
+ PRIoFAST16 = "o"
+ PRIoFAST32 = "o"
+ PRIoFAST64 = "lo"
+ PRIoFAST8 = "o"
+ PRIoLEAST16 = "o"
+ PRIoLEAST32 = "o"
+ PRIoLEAST64 = "lo"
+ PRIoLEAST8 = "o"
+ PRIoMAX = "lo"
+ PRIoPTR = "lo"
+ PRIu16 = "u"
+ PRIu32 = "u"
+ PRIu64 = "lu"
+ PRIu8 = "u"
+ PRIuFAST16 = "u"
+ PRIuFAST32 = "u"
+ PRIuFAST64 = "lu"
+ PRIuFAST8 = "u"
+ PRIuLEAST16 = "u"
+ PRIuLEAST32 = "u"
+ PRIuLEAST64 = "lu"
+ PRIuLEAST8 = "u"
+ PRIuMAX = "lu"
+ PRIuPTR = "lu"
+ PRIx16 = "x"
+ PRIx32 = "x"
+ PRIx64 = "lx"
+ PRIx8 = "x"
+ PRIxFAST16 = "x"
+ PRIxFAST32 = "x"
+ PRIxFAST64 = "lx"
+ PRIxFAST8 = "x"
+ PRIxLEAST16 = "x"
+ PRIxLEAST32 = "x"
+ PRIxLEAST64 = "lx"
+ PRIxLEAST8 = "x"
+ PRIxMAX = "lx"
+ PRIxPTR = "lx"
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SCNd16 = "hd"
+ SCNd32 = "d"
+ SCNd64 = "ld"
+ SCNd8 = "hhd"
+ SCNdFAST16 = "d"
+ SCNdFAST32 = "d"
+ SCNdFAST64 = "ld"
+ SCNdFAST8 = "d"
+ SCNdLEAST16 = "hd"
+ SCNdLEAST32 = "d"
+ SCNdLEAST64 = "ld"
+ SCNdLEAST8 = "hhd"
+ SCNdMAX = "ld"
+ SCNdPTR = "ld"
+ SCNi16 = "hi"
+ SCNi32 = "i"
+ SCNi64 = "li"
+ SCNi8 = "hhi"
+ SCNiFAST16 = "i"
+ SCNiFAST32 = "i"
+ SCNiFAST64 = "li"
+ SCNiFAST8 = "i"
+ SCNiLEAST16 = "hi"
+ SCNiLEAST32 = "i"
+ SCNiLEAST64 = "li"
+ SCNiLEAST8 = "hhi"
+ SCNiMAX = "li"
+ SCNiPTR = "li"
+ SCNo16 = "ho"
+ SCNo32 = "o"
+ SCNo64 = "lo"
+ SCNo8 = "hho"
+ SCNoFAST16 = "o"
+ SCNoFAST32 = "o"
+ SCNoFAST64 = "lo"
+ SCNoFAST8 = "o"
+ SCNoLEAST16 = "ho"
+ SCNoLEAST32 = "o"
+ SCNoLEAST64 = "lo"
+ SCNoLEAST8 = "hho"
+ SCNoMAX = "lo"
+ SCNoPTR = "lo"
+ SCNu16 = "hu"
+ SCNu32 = "u"
+ SCNu64 = "lu"
+ SCNu8 = "hhu"
+ SCNuFAST16 = "u"
+ SCNuFAST32 = "u"
+ SCNuFAST64 = "lu"
+ SCNuFAST8 = "u"
+ SCNuLEAST16 = "hu"
+ SCNuLEAST32 = "u"
+ SCNuLEAST64 = "lu"
+ SCNuLEAST8 = "hhu"
+ SCNuMAX = "lu"
+ SCNuPTR = "lu"
+ SCNx16 = "hx"
+ SCNx32 = "x"
+ SCNx64 = "lx"
+ SCNx8 = "hhx"
+ SCNxFAST16 = "x"
+ SCNxFAST32 = "x"
+ SCNxFAST64 = "lx"
+ SCNxFAST8 = "x"
+ SCNxLEAST16 = "hx"
+ SCNxLEAST32 = "x"
+ SCNxLEAST64 = "lx"
+ SCNxLEAST8 = "hhx"
+ SCNxMAX = "lx"
+ SCNxPTR = "lx"
+ SCOPE_DELIMITER = 37
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ TRY_AGAIN = 2
+ 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_INT_CONST_H_ = 0
+ X_AMD64_INT_FMTIO_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_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_FILE_OFFSET_BITS = 64
+ X_INTTYPES_H_ = 0
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_NETDB_H_ = 0
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_PATH_SERVICES_CDB = "/var/db/services.cdb"
+ X_PATH_SERVICES_DB = "/var/db/services.db"
+ 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_LIMITS_H_ = 0
+ X_SYS_COMMON_INT_MWGWTYPES_H_ = 0
+ X_SYS_COMMON_INT_TYPES_H_ = 0
+ X_SYS_INTTYPES_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_X86_64_CDEFS_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: endian_machdep.h,v 1.4 2006/01/30 21:52:38 dsl 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.
+
+// $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
+
+// $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 */
+
+// $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: inttypes.h,v 1.11 2015/01/16 18:35:59 christos 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: 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: inttypes.h,v 1.6 2013/04/22 21:26:48 joerg Exp $
+
+// -
+// Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus J. 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.
+
+// 7.8 Format conversion of integer types
+
+// $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 Int8_t = X__int8_t /* stdint.h:39:18 */
+
+type Uint8_t = X__uint8_t /* stdint.h:44:19 */
+
+type Int16_t = X__int16_t /* stdint.h:49:19 */
+
+type Uint16_t = X__uint16_t /* stdint.h:54:20 */
+
+type Int32_t = X__int32_t /* stdint.h:59:19 */
+
+type Uint32_t = X__uint32_t /* stdint.h:64:20 */
+
+type Int64_t = X__int64_t /* stdint.h:69:19 */
+
+type Uint64_t = X__uint64_t /* stdint.h:74:20 */
+
+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 Imaxdiv_t = struct {
+ Fquot Intmax_t
+ Frem Intmax_t
+} /* inttypes.h:60:3 */
+
+type Locale_t = uintptr /* inttypes.h:66:25 */
+
+// Data types
+type Socklen_t = X__socklen_t /* netdb.h:102:21 */
+
+// %
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:148:1 */
+
+// %
+// Assumption here is that a network number
+// fits in an unsigned long -- probably a poor one.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net Uint32_t
+} /* netdb.h:161:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:176:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:183:1 */
+
+// Note: ai_addrlen used to be a size_t, per RFC 2553.
+// In XNS5.2, and subsequently in POSIX-2001 and
+// draft-ietf-ipngwg-rfc2553bis-02.txt it was changed to a socklen_t.
+// To accommodate for this while preserving binary compatibility with the
+// old interface, we prepend or append 32 bits of padding, depending on
+// the (LP64) architecture's endianness.
+//
+// This should be deleted the next time the libc major number is
+// incremented.
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen X__socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_canonname uintptr
+ Fai_addr uintptr
+ Fai_next uintptr
+} /* netdb.h:202:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go b/vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go
new file mode 100644
index 00000000..ff758d6d
--- /dev/null
+++ b/vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go
@@ -0,0 +1,1478 @@
+// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_openbsd_amd64.go -pkgname netdb', DO NOT EDIT.
+
+package netdb
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AI_ADDRCONFIG = 64
+ AI_CANONNAME = 2
+ AI_EXT = 8
+ AI_FQDN = 32
+ AI_MASK = 119
+ AI_NUMERICHOST = 4
+ AI_NUMERICSERV = 16
+ AI_PASSIVE = 1
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ EAI_ADDRFAMILY = -9
+ EAI_AGAIN = -3
+ EAI_BADFLAGS = -1
+ EAI_BADHINTS = -12
+ EAI_FAIL = -4
+ EAI_FAMILY = -6
+ EAI_MEMORY = -10
+ EAI_NODATA = -5
+ EAI_NONAME = -2
+ EAI_OVERFLOW = -14
+ EAI_PROTOCOL = -13
+ EAI_SERVICE = -8
+ EAI_SOCKTYPE = -7
+ EAI_SYSTEM = -11
+ ERRSET_FAIL = 2
+ ERRSET_INVAL = 3
+ ERRSET_NODATA = 5
+ ERRSET_NOMEMORY = 1
+ ERRSET_NONAME = 4
+ ERRSET_SUCCESS = 0
+ HOST_NOT_FOUND = 1
+ ICMP6_FILTER = 18
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IN_RFC3021_NSHIFT = 31
+ IPCTL_ARPDOWN = 40
+ IPCTL_ARPQUEUE = 41
+ IPCTL_ARPQUEUED = 36
+ IPCTL_ARPTIMEOUT = 39
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBCAST = 6
+ IPCTL_ENCDEBUG = 12
+ IPCTL_FORWARDING = 1
+ IPCTL_IFQUEUE = 30
+ IPCTL_IPPORT_FIRSTAUTO = 7
+ IPCTL_IPPORT_HIFIRSTAUTO = 9
+ IPCTL_IPPORT_HILASTAUTO = 10
+ IPCTL_IPPORT_LASTAUTO = 8
+ IPCTL_IPPORT_MAXQUEUE = 11
+ IPCTL_IPSEC_ALLOCATIONS = 18
+ IPCTL_IPSEC_AUTH_ALGORITHM = 26
+ IPCTL_IPSEC_BYTES = 20
+ IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT = 15
+ IPCTL_IPSEC_ENC_ALGORITHM = 25
+ IPCTL_IPSEC_EXPIRE_ACQUIRE = 14
+ IPCTL_IPSEC_FIRSTUSE = 24
+ IPCTL_IPSEC_IPCOMP_ALGORITHM = 29
+ IPCTL_IPSEC_REQUIRE_PFS = 16
+ IPCTL_IPSEC_SOFT_ALLOCATIONS = 17
+ IPCTL_IPSEC_SOFT_BYTES = 19
+ IPCTL_IPSEC_SOFT_FIRSTUSE = 23
+ IPCTL_IPSEC_SOFT_TIMEOUT = 22
+ IPCTL_IPSEC_STATS = 13
+ IPCTL_IPSEC_TIMEOUT = 21
+ IPCTL_MAXID = 42
+ IPCTL_MFORWARDING = 31
+ IPCTL_MRTMFC = 37
+ IPCTL_MRTPROTO = 34
+ IPCTL_MRTSTATS = 35
+ IPCTL_MRTVIF = 38
+ IPCTL_MTUDISC = 27
+ IPCTL_MTUDISCTIMEOUT = 28
+ IPCTL_MULTIPATH = 32
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 5
+ IPCTL_STATS = 33
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_USERRESERVED = 49151
+ IPPROTO_AH = 51
+ IPPROTO_CARP = 112
+ IPPROTO_DIVERT = 258
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GRE = 47
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IGMP = 2
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPIP = 4
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_MAX = 256
+ IPPROTO_MAXID = 259
+ IPPROTO_MOBILE = 55
+ IPPROTO_MPLS = 137
+ IPPROTO_NONE = 59
+ IPPROTO_PFSYNC = 240
+ IPPROTO_PIM = 103
+ IPPROTO_PUP = 12
+ IPPROTO_RAW = 255
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_SCTP = 132
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_UDP = 17
+ IPPROTO_UDPLITE = 136
+ IPSEC6_OUTSA = 56
+ IPSEC_AUTH_LEVEL_DEFAULT = 1
+ IPSEC_ESP_NETWORK_LEVEL_DEFAULT = 1
+ IPSEC_ESP_TRANS_LEVEL_DEFAULT = 1
+ IPSEC_IPCOMP_LEVEL_DEFAULT = 1
+ IPSEC_LEVEL_AVAIL = 0x01
+ IPSEC_LEVEL_BYPASS = 0x00
+ IPSEC_LEVEL_DEFAULT = 1
+ IPSEC_LEVEL_NONE = 0x00
+ IPSEC_LEVEL_REQUIRE = 0x03
+ IPSEC_LEVEL_UNIQUE = 0x04
+ IPSEC_LEVEL_USE = 0x02
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DAD_PENDING = 49
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_IFQUEUE = 51
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXDYNROUTES = 48
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXID = 55
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MFORWARDING = 42
+ IPV6CTL_MRTMFC = 53
+ IPV6CTL_MRTMIF = 52
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_MTUDISCTIMEOUT = 50
+ IPV6CTL_MULTIPATH = 43
+ IPV6CTL_NEIGHBORGCTHRESH = 45
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOIIKEY = 54
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6PROTO_MAXID = 259
+ IPV6_AUTH_LEVEL = 53
+ IPV6_AUTOFLOWLABEL = 59
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_DONTFRAG = 62
+ IPV6_DSTOPTS = 50
+ IPV6_ESP_NETWORK_LEVEL = 55
+ IPV6_ESP_TRANS_LEVEL = 54
+ IPV6_HOPLIMIT = 47
+ IPV6_HOPOPTS = 49
+ IPV6_IPCOMP_LEVEL = 60
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MINHOPCOUNT = 65
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_NEXTHOP = 48
+ IPV6_PATHMTU = 44
+ IPV6_PIPEX = 63
+ IPV6_PKTINFO = 46
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_RECVDSTOPTS = 40
+ IPV6_RECVDSTPORT = 64
+ IPV6_RECVHOPLIMIT = 37
+ IPV6_RECVHOPOPTS = 39
+ IPV6_RECVPATHMTU = 43
+ IPV6_RECVPKTINFO = 36
+ IPV6_RECVRTHDR = 38
+ IPV6_RECVTCLASS = 57
+ IPV6_RTABLE = 0x1021
+ IPV6_RTHDR = 51
+ IPV6_RTHDRDSTOPTS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_TCLASS = 61
+ IPV6_UNICAST_HOPS = 4
+ IPV6_USE_MIN_MTU = 42
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_AUTH_LEVEL = 20
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 13
+ IP_ESP_NETWORK_LEVEL = 22
+ IP_ESP_TRANS_LEVEL = 21
+ IP_HDRINCL = 2
+ IP_IPCOMP_LEVEL = 29
+ IP_IPDEFTTL = 37
+ IP_IPSECFLOWINFO = 36
+ IP_IPSEC_LOCAL_AUTH = 27
+ IP_IPSEC_LOCAL_CRED = 25
+ IP_IPSEC_LOCAL_ID = 23
+ IP_IPSEC_REMOTE_AUTH = 28
+ IP_IPSEC_REMOTE_CRED = 26
+ IP_IPSEC_REMOTE_ID = 24
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MINTTL = 32
+ IP_MIN_MEMBERSHIPS = 15
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_OPTIONS = 1
+ IP_PIPEX = 34
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVDSTPORT = 33
+ IP_RECVIF = 30
+ IP_RECVOPTS = 5
+ IP_RECVRETOPTS = 6
+ IP_RECVRTABLE = 35
+ IP_RECVTTL = 31
+ IP_RETOPTS = 8
+ IP_RTABLE = 0x1021
+ IP_SENDSRCADDR = 7
+ IP_TOS = 3
+ IP_TTL = 4
+ LITTLE_ENDIAN = 1234
+ NETDB_INTERNAL = -1
+ NETDB_SUCCESS = 0
+ NI_DGRAM = 16
+ NI_MAXHOST = 256
+ NI_MAXSERV = 32
+ NI_NAMEREQD = 8
+ NI_NOFQDN = 4
+ NI_NUMERICHOST = 1
+ NI_NUMERICSERV = 2
+ NO_ADDRESS = 4
+ NO_DATA = 4
+ NO_RECOVERY = 3
+ PDP_ENDIAN = 3412
+ RRSET_VALIDATED = 1
+ SCOPE_DELIMITER = 37
+ SIN6_LEN = 0
+ TRY_AGAIN = 2
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_IN_ADDR_DECLARED = 0
+ X_IN_TYPES_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_NETDB_H_ = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_OFF_T_DEFINED_ = 0
+ X_PATH_HEQUIV = "/etc/hosts.equiv"
+ X_PATH_HOSTS = "/etc/hosts"
+ X_PATH_NETWORKS = "/etc/networks"
+ X_PATH_PROTOCOLS = "/etc/protocols"
+ X_PATH_SERVICES = "/etc/services"
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SA_FAMILY_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SOCKLEN_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: netdb.h,v 1.33 2015/01/18 20:29:31 deraadt Exp $
+
+// ++Copyright++ 1980, 1983, 1988, 1993
+// -
+// Copyright (c) 1980, 1983, 1988, 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.
+// -
+// Portions Copyright (c) 1993 by Digital Equipment Corporation.
+//
+// Permission to use, copy, modify, and distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies, and that
+// the name of Digital Equipment Corporation not be used in advertising or
+// publicity pertaining to distribution of the document or software without
+// specific, written prior permission.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+// SOFTWARE.
+// -
+// --Copyright--
+
+// Copyright (c) 1995, 1996, 1997, 1998, 1999 Craig Metz. 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 author nor the names of any 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.
+
+// @(#)netdb.h 8.1 (Berkeley) 6/2/93
+// $From: netdb.h,v 8.7 1996/05/09 05:59:09 vixie Exp $
+
+// $OpenBSD: in.h,v 1.141 2021/06/02 00:09:57 dlg Exp $
+// $NetBSD: in.h,v 1.20 1996/02/13 23:41:47 christos Exp $
+
+// Copyright (c) 1982, 1986, 1990, 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.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// <sys/_endian.h> is pulled in by <sys/types.h>
+
+type Sa_family_t = X__sa_family_t /* in.h:58:23 */ // sockaddr address family type
+
+type In_addr_t = X__in_addr_t /* in.h:63:21 */ // base type for internet address
+type In_port_t = X__in_port_t /* in.h:64:21 */ // IP port type
+
+// Protocols
+
+// Only used internally, so it can be outside the range of valid IP protocols
+
+// From FreeBSD:
+//
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi}{first,last})
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root).
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged.
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// IP Version 4 Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:167:1 */
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+//
+// By byte-swapping the constants, we avoid ever having to byte-swap IP
+// addresses inside the kernel. Unfortunately, user-level programs rely
+// on these macros not doing byte-swapping.
+
+// These ones aren't really net and host fields, but routing needn't know.
+
+// IP Version 4 socket address.
+type Sockaddr_in = struct {
+ Fsin_len U_int8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]Int8_t
+} /* in.h:258:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]Int8_t
+} /* in.h:273:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// source address to use
+
+// Security levels - IPsec, not IPSO
+
+// Defaults and limits for options
+// The imo_membership vector for each socket starts at IP_MIN_MEMBERSHIPS
+// and is dynamically allocated at run-time, bounded by IP_MAX_MEMBERSHIPS,
+// and is reallocated when needed, sized according to a power-of-two increment.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:359:1 */
+
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:364:1 */
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// Buffer lengths for strings containing printable IP addresses
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// $OpenBSD: in6.h,v 1.109 2021/06/02 00:20:50 dlg Exp $
+// $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb2.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+} /* in6.h:81:1 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len U_int8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo U_int32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fsin6_scope_id U_int32_t
+} /* in6.h:106:1 */
+
+// IPv6 route structure
+type Route_in6 = struct {
+ Fro_rt uintptr
+ Fro_tableid U_long
+ Fro_dst struct {
+ Fsin6_len U_int8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo U_int32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fsin6_scope_id U_int32_t
+ }
+ F__ccgo_pad1 [4]byte
+} /* in6.h:150:1 */
+
+// Definition of some useful macros to handle IP6 addresses
+
+// Macros started with IPV6_ADDR is KAME local
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+
+// new socket options introduced in RFC3542
+
+// More new socket options introduced in RFC3542
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:366:1 */
+
+// IPV6_PKTINFO: Packet information(RFC3542 sec 6)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:374:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+// XXX Not allowed here by POSIX, but required by RFC 3542, so go
+// XXX with the code on the pavement.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len U_int8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo U_int32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fsin6_scope_id U_int32_t
+ }
+ Fip6m_mtu U_int32_t
+} /* in6.h:384:1 */
+
+// Argument for IPV6_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+type Socklen_t = X__socklen_t /* in6.h:401:21 */
+
+// Structures returned by network data base library. All addresses are
+// supplied in host order, and returned in network order (suitable for
+// use in system calls).
+type Hostent = struct {
+ Fh_name uintptr
+ Fh_aliases uintptr
+ Fh_addrtype int32
+ Fh_length int32
+ Fh_addr_list uintptr
+} /* netdb.h:108:1 */
+
+// Assumption here is that a network number
+// fits in an in_addr_t -- probably a poor one.
+type Netent = struct {
+ Fn_name uintptr
+ Fn_aliases uintptr
+ Fn_addrtype int32
+ Fn_net In_addr_t
+} /* netdb.h:121:1 */
+
+type Servent = struct {
+ Fs_name uintptr
+ Fs_aliases uintptr
+ Fs_port int32
+ F__ccgo_pad1 [4]byte
+ Fs_proto uintptr
+} /* netdb.h:128:1 */
+
+type Protoent = struct {
+ Fp_name uintptr
+ Fp_aliases uintptr
+ Fp_proto int32
+ F__ccgo_pad1 [4]byte
+} /* netdb.h:135:1 */
+
+// Error return codes from gethostbyname() and gethostbyaddr()
+// (left in extern int h_errno).
+
+// Values for getaddrinfo() and getnameinfo()
+// valid flags for addrinfo
+
+// #define NI_NUMERICSCOPE 32 return the scope number, not the name
+
+// Scope delimit character (KAME hack)
+
+type Addrinfo = struct {
+ Fai_flags int32
+ Fai_family int32
+ Fai_socktype int32
+ Fai_protocol int32
+ Fai_addrlen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fai_addr uintptr
+ Fai_canonname uintptr
+ Fai_next uintptr
+} /* netdb.h:203:1 */
+
+// Flags for getrrsetbyname()
+
+// Return codes for getrrsetbyname()
+
+// Structures used by getrrsetbyname() and freerrset()
+type Rdatainfo = struct {
+ Frdi_length uint32
+ F__ccgo_pad1 [4]byte
+ Frdi_data uintptr
+} /* netdb.h:233:1 */
+
+type Rrsetinfo = struct {
+ Frri_flags uint32
+ Frri_rdclass uint32
+ Frri_rdtype uint32
+ Frri_ttl uint32
+ Frri_nrdatas uint32
+ Frri_nsigs uint32
+ Frri_name uintptr
+ Frri_rdatas uintptr
+ Frri_sigs uintptr
+} /* netdb.h:238:1 */
+
+type Servent_data = struct {
+ Ffp uintptr
+ Faliases uintptr
+ Fmaxaliases int32
+ Fstayopen int32
+ Fline uintptr
+} /* netdb.h:250:1 */
+
+type Protoent_data = struct {
+ Ffp uintptr
+ Faliases uintptr
+ Fmaxaliases int32
+ Fstayopen int32
+ Fline uintptr
+} /* netdb.h:258:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go
new file mode 100644
index 00000000..3c54fe8a
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_darwin_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go b/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go
new file mode 100644
index 00000000..0363e2c8
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_darwin_arm64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go b/vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go
new file mode 100644
index 00000000..7b47f01a
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_freebsd_386.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_freebsd_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_freebsd_amd64.go
new file mode 100644
index 00000000..722fc683
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_freebsd_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_linux_386.go b/vendor/modernc.org/libc/netinet/in/capi_linux_386.go
new file mode 100644
index 00000000..4b077477
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_386.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_linux_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_linux_amd64.go
new file mode 100644
index 00000000..53137ada
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_linux_arm.go b/vendor/modernc.org/libc/netinet/in/capi_linux_arm.go
new file mode 100644
index 00000000..8448f013
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_arm.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_linux_arm64.go b/vendor/modernc.org/libc/netinet/in/capi_linux_arm64.go
new file mode 100644
index 00000000..d4619795
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_arm64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_linux_s390x.go b/vendor/modernc.org/libc/netinet/in/capi_linux_s390x.go
new file mode 100644
index 00000000..a2fbd12b
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_s390x.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_netbsd_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_netbsd_amd64.go
new file mode 100644
index 00000000..9c3c7e58
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_netbsd_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go
new file mode 100644
index 00000000..802774e0
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_openbsd_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go b/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go
new file mode 100644
index 00000000..7087bcd9
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go
@@ -0,0 +1,6392 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_darwin_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 28
+ AF_ECMA = 8
+ AF_HYLINK = 15
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 30
+ AF_IPX = 23
+ AF_ISDN = 28
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 40
+ AF_NATM = 31
+ AF_NDRV = 27
+ AF_NETBIOS = 33
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PPP = 34
+ AF_PUP = 4
+ AF_RESERVED_36 = 36
+ AF_ROUTE = 17
+ AF_SIP = 24
+ AF_SNA = 11
+ AF_SYSTEM = 32
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_UTUN = 38
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CONNECT_DATA_AUTHENTICATED = 0x4
+ CONNECT_DATA_IDEMPOTENT = 0x2
+ CONNECT_RESUME_ON_READ_WRITE = 0x1
+ FD_SETSIZE = 1024
+ ICMP6_FILTER = 18
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 50
+ INADDR_NONE = 0xffffffff
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 0x000000ff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_HOST = 0x0fffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IPCTL_ACCEPTSOURCEROUTE = 13
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBROADCAST = 9
+ IPCTL_FASTFORWARDING = 14
+ IPCTL_FORWARDING = 1
+ IPCTL_GIF_TTL = 16
+ IPCTL_INTRQDROPS = 11
+ IPCTL_INTRQMAXLEN = 10
+ IPCTL_KEEPFAITH = 15
+ IPCTL_MAXID = 17
+ IPCTL_RTEXPIRE = 5
+ IPCTL_RTMAXCACHE = 7
+ IPCTL_RTMINEXPIRE = 6
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 8
+ IPCTL_STATS = 12
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_USERRESERVED = 5000
+ IPPROTO_3PC = 34
+ IPPROTO_ADFS = 68
+ IPPROTO_AH = 51
+ IPPROTO_AHIP = 61
+ IPPROTO_APES = 99
+ IPPROTO_ARGUS = 13
+ IPPROTO_AX25 = 93
+ IPPROTO_BHA = 49
+ IPPROTO_BLT = 30
+ IPPROTO_BRSATMON = 76
+ IPPROTO_CFTP = 62
+ IPPROTO_CHAOS = 16
+ IPPROTO_CMTP = 38
+ IPPROTO_CPHB = 73
+ IPPROTO_CPNX = 72
+ IPPROTO_DDP = 37
+ IPPROTO_DGP = 86
+ IPPROTO_DIVERT = 254
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_EMCON = 14
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GMTP = 100
+ IPPROTO_GRE = 47
+ IPPROTO_HELLO = 63
+ IPPROTO_HMP = 20
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IDPR = 35
+ IPPROTO_IDRP = 45
+ IPPROTO_IGMP = 2
+ IPPROTO_IGP = 85
+ IPPROTO_IGRP = 88
+ IPPROTO_IL = 40
+ IPPROTO_INLSP = 52
+ IPPROTO_INP = 32
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPCV = 71
+ IPPROTO_IPEIP = 94
+ IPPROTO_IPIP = 4
+ IPPROTO_IPPC = 67
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IRTP = 28
+ IPPROTO_KRYPTOLAN = 65
+ IPPROTO_LARP = 91
+ IPPROTO_LEAF1 = 25
+ IPPROTO_LEAF2 = 26
+ IPPROTO_MAX = 256
+ IPPROTO_MAXID = 52
+ IPPROTO_MEAS = 19
+ IPPROTO_MHRP = 48
+ IPPROTO_MICP = 95
+ IPPROTO_MTP = 92
+ IPPROTO_MUX = 18
+ IPPROTO_ND = 77
+ IPPROTO_NHRP = 54
+ IPPROTO_NONE = 59
+ IPPROTO_NSP = 31
+ IPPROTO_NVPII = 11
+ IPPROTO_OSPFIGP = 89
+ IPPROTO_PGM = 113
+ IPPROTO_PIGP = 9
+ IPPROTO_PIM = 103
+ IPPROTO_PRM = 21
+ IPPROTO_PUP = 12
+ IPPROTO_PVP = 75
+ IPPROTO_RAW = 255
+ IPPROTO_RCCMON = 10
+ IPPROTO_RDP = 27
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_RVD = 66
+ IPPROTO_SATEXPAK = 64
+ IPPROTO_SATMON = 69
+ IPPROTO_SCCSP = 96
+ IPPROTO_SCTP = 132
+ IPPROTO_SDRP = 42
+ IPPROTO_SEP = 33
+ IPPROTO_SRPC = 90
+ IPPROTO_ST = 7
+ IPPROTO_SVMTP = 82
+ IPPROTO_SWIPE = 53
+ IPPROTO_TCF = 87
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_TPXX = 39
+ IPPROTO_TRUNK1 = 23
+ IPPROTO_TRUNK2 = 24
+ IPPROTO_TTP = 84
+ IPPROTO_UDP = 17
+ IPPROTO_VINES = 83
+ IPPROTO_VISA = 70
+ IPPROTO_VMTP = 81
+ IPPROTO_WBEXPAK = 79
+ IPPROTO_WBMON = 78
+ IPPROTO_WSN = 74
+ IPPROTO_XNET = 15
+ IPPROTO_XTP = 36
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_KEEPFAITH = 13
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXDYNROUTES = 49
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXID = 51
+ IPV6CTL_MAXIFDEFROUTERS = 48
+ IPV6CTL_MAXIFPREFIXES = 47
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_NEIGHBORGCTHRESH = 46
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_RTEXPIRE = 25
+ IPV6CTL_RTMAXCACHE = 27
+ IPV6CTL_RTMINEXPIRE = 26
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_TEMPPLTIME = 33
+ IPV6CTL_TEMPVLTIME = 34
+ IPV6CTL_USETEMPADDR = 32
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6PROTO_MAXID = 104
+ IPV6_2292DSTOPTS = 23
+ IPV6_2292HOPLIMIT = 20
+ IPV6_2292HOPOPTS = 22
+ IPV6_2292NEXTHOP = 21
+ IPV6_2292PKTINFO = 19
+ IPV6_2292PKTOPTIONS = 25
+ IPV6_2292RTHDR = 24
+ IPV6_BINDV6ONLY = 27
+ IPV6_BOUND_IF = 125
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_FAITH = 29
+ IPV6_FW_ADD = 30
+ IPV6_FW_DEL = 31
+ IPV6_FW_FLUSH = 32
+ IPV6_FW_GET = 34
+ IPV6_FW_ZERO = 33
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MAX_GROUP_SRC_FILTER = 512
+ IPV6_MAX_MEMBERSHIPS = 4095
+ IPV6_MAX_SOCK_SRC_FILTER = 128
+ IPV6_MIN_MEMBERSHIPS = 31
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_RECVTCLASS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 36
+ IPV6_UNICAST_HOPS = 4
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_ADD_SOURCE_MEMBERSHIP = 70
+ IP_BLOCK_SOURCE = 72
+ IP_BOUND_IF = 25
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 13
+ IP_DROP_SOURCE_MEMBERSHIP = 71
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_FAITH = 22
+ IP_FW_ADD = 40
+ IP_FW_DEL = 41
+ IP_FW_FLUSH = 42
+ IP_FW_GET = 44
+ IP_FW_RESETLOG = 45
+ IP_FW_ZERO = 43
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 21
+ IP_MAX_GROUP_SRC_FILTER = 512
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MAX_SOCK_MUTE_FILTER = 128
+ IP_MAX_SOCK_SRC_FILTER = 128
+ IP_MIN_MEMBERSHIPS = 31
+ IP_MSFILTER = 74
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_IFINDEX = 66
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_MULTICAST_VIF = 14
+ IP_NAT__XXX = 55
+ IP_OLD_FW_ADD = 50
+ IP_OLD_FW_DEL = 51
+ IP_OLD_FW_FLUSH = 52
+ IP_OLD_FW_GET = 54
+ IP_OLD_FW_RESETLOG = 56
+ IP_OLD_FW_ZERO = 53
+ IP_OPTIONS = 1
+ IP_PKTINFO = 26
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVPKTINFO = 26
+ IP_RECVRETOPTS = 6
+ IP_RECVTOS = 27
+ IP_RECVTTL = 24
+ IP_RETOPTS = 8
+ IP_RSVP_OFF = 16
+ IP_RSVP_ON = 15
+ IP_RSVP_VIF_OFF = 18
+ IP_RSVP_VIF_ON = 17
+ IP_STRIPHDR = 23
+ IP_TOS = 3
+ IP_TRAFFIC_MGT_BACKGROUND = 65
+ IP_TTL = 4
+ IP_UNBLOCK_SOURCE = 73
+ KEV_DL_ADDMULTI = 7
+ KEV_DL_AWDL_RESTRICTED = 26
+ KEV_DL_AWDL_UNRESTRICTED = 27
+ KEV_DL_DELMULTI = 8
+ KEV_DL_IFCAP_CHANGED = 19
+ KEV_DL_IFDELEGATE_CHANGED = 25
+ KEV_DL_IF_ATTACHED = 9
+ KEV_DL_IF_DETACHED = 11
+ KEV_DL_IF_DETACHING = 10
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18
+ KEV_DL_ISSUES = 24
+ KEV_DL_LINK_ADDRESS_CHANGED = 16
+ KEV_DL_LINK_OFF = 12
+ KEV_DL_LINK_ON = 13
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30
+ KEV_DL_MASTER_ELECTED = 23
+ KEV_DL_NODE_ABSENCE = 22
+ KEV_DL_NODE_PRESENCE = 21
+ KEV_DL_PROTO_ATTACHED = 14
+ KEV_DL_PROTO_DETACHED = 15
+ KEV_DL_QOS_MODE_CHANGED = 29
+ KEV_DL_RRC_STATE_CHANGED = 28
+ KEV_DL_SIFFLAGS = 1
+ KEV_DL_SIFGENERIC = 6
+ KEV_DL_SIFMEDIA = 5
+ KEV_DL_SIFMETRICS = 2
+ KEV_DL_SIFMTU = 3
+ KEV_DL_SIFPHYS = 4
+ KEV_DL_SUBCLASS = 2
+ KEV_DL_WAKEFLAGS_CHANGED = 17
+ KEV_INET6_ADDR_DELETED = 3
+ KEV_INET6_CHANGED_ADDR = 2
+ KEV_INET6_DEFROUTER = 6
+ KEV_INET6_NEW_LL_ADDR = 4
+ KEV_INET6_NEW_RTADV_ADDR = 5
+ KEV_INET6_NEW_USER_ADDR = 1
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7
+ KEV_INET6_SUBCLASS = 6
+ KEV_INET_ADDR_DELETED = 3
+ KEV_INET_ARPCOLLISION = 7
+ KEV_INET_ARPRTRALIVE = 10
+ KEV_INET_ARPRTRFAILURE = 9
+ KEV_INET_CHANGED_ADDR = 2
+ KEV_INET_NEW_ADDR = 1
+ KEV_INET_PORTINUSE = 8
+ KEV_INET_SIFBRDADDR = 5
+ KEV_INET_SIFDSTADDR = 4
+ KEV_INET_SIFNETMASK = 6
+ KEV_INET_SUBCLASS = 1
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 84
+ MCAST_EXCLUDE = 2
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 80
+ MCAST_JOIN_SOURCE_GROUP = 82
+ MCAST_LEAVE_GROUP = 81
+ MCAST_LEAVE_SOURCE_GROUP = 83
+ MCAST_UNBLOCK_SOURCE = 85
+ MCAST_UNDEFINED = 0
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ NBBY = 8
+ NETSVC_MRKNG_LVL_L2 = 1
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2
+ NETSVC_MRKNG_LVL_L3L2_BK = 3
+ NETSVC_MRKNG_UNKNOWN = 0
+ NET_MAXID = 40
+ NET_RT_DUMP = 1
+ NET_RT_DUMP2 = 7
+ NET_RT_FLAGS = 2
+ NET_RT_FLAGS_PRIV = 10
+ NET_RT_IFLIST = 3
+ NET_RT_IFLIST2 = 6
+ NET_RT_MAXID = 11
+ NET_RT_STAT = 4
+ NET_RT_TRASH = 5
+ NET_SERVICE_TYPE_AV = 6
+ NET_SERVICE_TYPE_BE = 0
+ NET_SERVICE_TYPE_BK = 1
+ NET_SERVICE_TYPE_OAM = 7
+ NET_SERVICE_TYPE_RD = 8
+ NET_SERVICE_TYPE_RV = 5
+ NET_SERVICE_TYPE_SIG = 2
+ NET_SERVICE_TYPE_VI = 3
+ NET_SERVICE_TYPE_VO = 4
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 30
+ PF_IPX = 23
+ PF_ISDN = 28
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 40
+ PF_NATM = 31
+ PF_NDRV = 27
+ PF_NETBIOS = 33
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PPP = 34
+ PF_PUP = 4
+ PF_RESERVED_36 = 36
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 24
+ PF_SNA = 11
+ PF_SYSTEM = 32
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_UTUN = 38
+ PF_XTP = 19
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ SAE_ASSOCID_ANY = 0
+ SAE_CONNID_ANY = 0
+ SCM_CREDS = 0x03
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIMESTAMP_MONOTONIC = 0x04
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIN6_LEN = 0
+ SIZE_MAX = 18446744073709551615
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SONPX_SETOPTSHUT = 0x000000001
+ SO_ACCEPTCONN = 0x0002
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DONTROUTE = 0x0010
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x0080
+ SO_LINGER_SEC = 0x1080
+ SO_NETSVC_MARKING_LEVEL = 0x1119
+ SO_NET_SERVICE_TYPE = 0x1116
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x0100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x0400
+ SO_TIMESTAMP_MONOTONIC = 0x0800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x0040
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_I386__ENDIAN_H_ = 0
+ X_I386__PARAM_H_ = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_NET_NETKEV_H_ = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS__OSBYTEORDERI386_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SA_FAMILY_T = 0
+ X_SIZE_T = 0
+ X_SOCKLEN_T = 0
+ X_SSIZE_T = 0
+ X_SS_MAXSIZE = 128
+ X_STDINT_H_ = 0
+ X_STRUCT_IOVEC = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ Pseudo_AF_HDRCMPLT = 35
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// 7.18.4 Macros for integer constants
+
+// 7.18.2 Limits of specified-width integer types:
+// These #defines specify the minimum and maximum limits
+// of each of the types declared above.
+//
+// They must have "the same type as would an expression that is an
+// object of the corresponding type converted according to the integer
+// promotion".
+
+// 7.18.2.1 Limits of exact-width integer types
+
+//
+// Note: the literal "most negative int" cannot be written in C --
+// the rules in the standard (section 6.4.4.1 in C99) will give it
+// an unsigned type, so INT32_MIN (and the most negative member of
+// any larger signed type) must be written via a constant expression.
+//
+
+// 7.18.2.2 Limits of minimum-width integer types
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+
+// 7.18.2.5 Limits of greatest-width integer types
+
+// 7.18.3 "Other"
+
+// WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+// it turns out that -fshort-wchar changes the signedness of
+// the type.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2008 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:289:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:293:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:303:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:303:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:309:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:315:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:333:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:420:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:440:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// 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
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:546:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:587:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:678:1 */
+
+// The following two #includes insure htonl and family are defined
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 55-57: Unassigned
+// 101-252: Partly Unassigned
+// 253-254: Experimentation and testing; 255: Reserved (RFC3692)
+// BSD Private, local use, namespace incursion
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:301:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len X__uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:375:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:398:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+
+// These older firewall socket option codes are maintained for backward compatibility.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Defaults and limits for options
+
+// The imo_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:506:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:516:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:526:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:536:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:541:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__msfr_align Uint32_t
+ Fmsfr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:554:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4)
+// This structure is used for
+//
+// 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+// set on the socket. In this case ipi_ifindex will contain the interface
+// index the datagram was received on, ipi_addr is the IP address the
+// datagram was received to.
+//
+// 2) Sending a datagram using a specific interface or IP source address.
+// if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+// ancilliary data of type IP_PKTINFO, this will be used as the source
+// interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+// will be used for the source address.
+//
+// Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+// IP_PKTINFO option silently overrides the bound interface when it is
+// specified during send time.
+type In_pktinfo = struct {
+ Fipi_ifindex uint32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:617:1 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:151:9 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr_t = In6_addr /* in6.h:157:3 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+} /* in6.h:169:1 */
+
+// Equality
+// NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+// does not supply memcmp(). For userland memcmp() is preferred as it is
+// in ANSI standard.
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// 6to4
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Unique Local IPv6 Unicast Addresses (per RFC 4193)
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC 3542 define the following socket options in a manner incompatible
+// with RFC 2292:
+// IPV6_PKTINFO
+// IPV6_HOPLIMIT
+// IPV6_NEXTHOP
+// IPV6_HOPOPTS
+// IPV6_DSTOPTS
+// IPV6_RTHDR
+//
+// To use the new IPv6 Sockets options introduced by RFC 3542
+// the constant __APPLE_USE_RFC_3542 must be defined before
+// including <netinet/in.h>
+//
+// To use the old IPv6 Sockets options from RFC 2292
+// the constant __APPLE_USE_RFC_2292 must be defined before
+// including <netinet/in.h>
+//
+// Note that eventually RFC 3542 is going to be the
+// default and RFC 2292 will be obsolete.
+
+// buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542]
+
+// APPLE: NOTE the value of those 2 options is kept unchanged from
+// previous version of darwin/OS X for binary compatibility reasons
+// and differ from FreeBSD (values 57 and 61). See below.
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// The im6o_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:527:1 */
+
+// IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:535:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:543:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go b/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go
new file mode 100644
index 00000000..4483e365
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go
@@ -0,0 +1,6335 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_darwin_arm64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 28
+ AF_ECMA = 8
+ AF_HYLINK = 15
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 30
+ AF_IPX = 23
+ AF_ISDN = 28
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 41
+ AF_NATM = 31
+ AF_NDRV = 27
+ AF_NETBIOS = 33
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PPP = 34
+ AF_PUP = 4
+ AF_RESERVED_36 = 36
+ AF_ROUTE = 17
+ AF_SIP = 24
+ AF_SNA = 11
+ AF_SYSTEM = 32
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_UTUN = 38
+ AF_VSOCK = 40
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CONNECT_DATA_AUTHENTICATED = 0x4
+ CONNECT_DATA_IDEMPOTENT = 0x2
+ CONNECT_RESUME_ON_READ_WRITE = 0x1
+ FD_SETSIZE = 1024
+ ICMP6_FILTER = 18
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 50
+ INADDR_NONE = 0xffffffff
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 0x000000ff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_HOST = 0x0fffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IPCTL_ACCEPTSOURCEROUTE = 13
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBROADCAST = 9
+ IPCTL_FASTFORWARDING = 14
+ IPCTL_FORWARDING = 1
+ IPCTL_GIF_TTL = 16
+ IPCTL_INTRQDROPS = 11
+ IPCTL_INTRQMAXLEN = 10
+ IPCTL_KEEPFAITH = 15
+ IPCTL_MAXID = 17
+ IPCTL_RTEXPIRE = 5
+ IPCTL_RTMAXCACHE = 7
+ IPCTL_RTMINEXPIRE = 6
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 8
+ IPCTL_STATS = 12
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_USERRESERVED = 5000
+ IPPROTO_3PC = 34
+ IPPROTO_ADFS = 68
+ IPPROTO_AH = 51
+ IPPROTO_AHIP = 61
+ IPPROTO_APES = 99
+ IPPROTO_ARGUS = 13
+ IPPROTO_AX25 = 93
+ IPPROTO_BHA = 49
+ IPPROTO_BLT = 30
+ IPPROTO_BRSATMON = 76
+ IPPROTO_CFTP = 62
+ IPPROTO_CHAOS = 16
+ IPPROTO_CMTP = 38
+ IPPROTO_CPHB = 73
+ IPPROTO_CPNX = 72
+ IPPROTO_DDP = 37
+ IPPROTO_DGP = 86
+ IPPROTO_DIVERT = 254
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_EMCON = 14
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GMTP = 100
+ IPPROTO_GRE = 47
+ IPPROTO_HELLO = 63
+ IPPROTO_HMP = 20
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IDPR = 35
+ IPPROTO_IDRP = 45
+ IPPROTO_IGMP = 2
+ IPPROTO_IGP = 85
+ IPPROTO_IGRP = 88
+ IPPROTO_IL = 40
+ IPPROTO_INLSP = 52
+ IPPROTO_INP = 32
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPCV = 71
+ IPPROTO_IPEIP = 94
+ IPPROTO_IPIP = 4
+ IPPROTO_IPPC = 67
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IRTP = 28
+ IPPROTO_KRYPTOLAN = 65
+ IPPROTO_LARP = 91
+ IPPROTO_LEAF1 = 25
+ IPPROTO_LEAF2 = 26
+ IPPROTO_MAX = 256
+ IPPROTO_MAXID = 52
+ IPPROTO_MEAS = 19
+ IPPROTO_MHRP = 48
+ IPPROTO_MICP = 95
+ IPPROTO_MTP = 92
+ IPPROTO_MUX = 18
+ IPPROTO_ND = 77
+ IPPROTO_NHRP = 54
+ IPPROTO_NONE = 59
+ IPPROTO_NSP = 31
+ IPPROTO_NVPII = 11
+ IPPROTO_OSPFIGP = 89
+ IPPROTO_PGM = 113
+ IPPROTO_PIGP = 9
+ IPPROTO_PIM = 103
+ IPPROTO_PRM = 21
+ IPPROTO_PUP = 12
+ IPPROTO_PVP = 75
+ IPPROTO_RAW = 255
+ IPPROTO_RCCMON = 10
+ IPPROTO_RDP = 27
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_RVD = 66
+ IPPROTO_SATEXPAK = 64
+ IPPROTO_SATMON = 69
+ IPPROTO_SCCSP = 96
+ IPPROTO_SCTP = 132
+ IPPROTO_SDRP = 42
+ IPPROTO_SEP = 33
+ IPPROTO_SRPC = 90
+ IPPROTO_ST = 7
+ IPPROTO_SVMTP = 82
+ IPPROTO_SWIPE = 53
+ IPPROTO_TCF = 87
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_TPXX = 39
+ IPPROTO_TRUNK1 = 23
+ IPPROTO_TRUNK2 = 24
+ IPPROTO_TTP = 84
+ IPPROTO_UDP = 17
+ IPPROTO_VINES = 83
+ IPPROTO_VISA = 70
+ IPPROTO_VMTP = 81
+ IPPROTO_WBEXPAK = 79
+ IPPROTO_WBMON = 78
+ IPPROTO_WSN = 74
+ IPPROTO_XNET = 15
+ IPPROTO_XTP = 36
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_KEEPFAITH = 13
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXDYNROUTES = 49
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXID = 51
+ IPV6CTL_MAXIFDEFROUTERS = 48
+ IPV6CTL_MAXIFPREFIXES = 47
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_NEIGHBORGCTHRESH = 46
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_RTEXPIRE = 25
+ IPV6CTL_RTMAXCACHE = 27
+ IPV6CTL_RTMINEXPIRE = 26
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_TEMPPLTIME = 33
+ IPV6CTL_TEMPVLTIME = 34
+ IPV6CTL_ULA_USETEMPADDR = 51
+ IPV6CTL_USETEMPADDR = 32
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6PROTO_MAXID = 104
+ IPV6_2292DSTOPTS = 23
+ IPV6_2292HOPLIMIT = 20
+ IPV6_2292HOPOPTS = 22
+ IPV6_2292NEXTHOP = 21
+ IPV6_2292PKTINFO = 19
+ IPV6_2292PKTOPTIONS = 25
+ IPV6_2292RTHDR = 24
+ IPV6_ADDR_MC_FLAGS_PREFIX = 0x20
+ IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10
+ IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 48
+ IPV6_BINDV6ONLY = 27
+ IPV6_BOUND_IF = 125
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_FAITH = 29
+ IPV6_FW_ADD = 30
+ IPV6_FW_DEL = 31
+ IPV6_FW_FLUSH = 32
+ IPV6_FW_GET = 34
+ IPV6_FW_ZERO = 33
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MAX_GROUP_SRC_FILTER = 512
+ IPV6_MAX_MEMBERSHIPS = 4095
+ IPV6_MAX_SOCK_SRC_FILTER = 128
+ IPV6_MIN_MEMBERSHIPS = 31
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_RECVTCLASS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 36
+ IPV6_UNICAST_HOPS = 4
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_ADD_SOURCE_MEMBERSHIP = 70
+ IP_BLOCK_SOURCE = 72
+ IP_BOUND_IF = 25
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DONTFRAG = 28
+ IP_DROP_MEMBERSHIP = 13
+ IP_DROP_SOURCE_MEMBERSHIP = 71
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_FAITH = 22
+ IP_FW_ADD = 40
+ IP_FW_DEL = 41
+ IP_FW_FLUSH = 42
+ IP_FW_GET = 44
+ IP_FW_RESETLOG = 45
+ IP_FW_ZERO = 43
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 21
+ IP_MAX_GROUP_SRC_FILTER = 512
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MAX_SOCK_MUTE_FILTER = 128
+ IP_MAX_SOCK_SRC_FILTER = 128
+ IP_MIN_MEMBERSHIPS = 31
+ IP_MSFILTER = 74
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_IFINDEX = 66
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_MULTICAST_VIF = 14
+ IP_NAT__XXX = 55
+ IP_OLD_FW_ADD = 50
+ IP_OLD_FW_DEL = 51
+ IP_OLD_FW_FLUSH = 52
+ IP_OLD_FW_GET = 54
+ IP_OLD_FW_RESETLOG = 56
+ IP_OLD_FW_ZERO = 53
+ IP_OPTIONS = 1
+ IP_PKTINFO = 26
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVPKTINFO = 26
+ IP_RECVRETOPTS = 6
+ IP_RECVTOS = 27
+ IP_RECVTTL = 24
+ IP_RETOPTS = 8
+ IP_RSVP_OFF = 16
+ IP_RSVP_ON = 15
+ IP_RSVP_VIF_OFF = 18
+ IP_RSVP_VIF_ON = 17
+ IP_STRIPHDR = 23
+ IP_TOS = 3
+ IP_TRAFFIC_MGT_BACKGROUND = 65
+ IP_TTL = 4
+ IP_UNBLOCK_SOURCE = 73
+ KEV_DL_ADDMULTI = 7
+ KEV_DL_AWDL_RESTRICTED = 26
+ KEV_DL_AWDL_UNRESTRICTED = 27
+ KEV_DL_DELMULTI = 8
+ KEV_DL_IFCAP_CHANGED = 19
+ KEV_DL_IFDELEGATE_CHANGED = 25
+ KEV_DL_IF_ATTACHED = 9
+ KEV_DL_IF_DETACHED = 11
+ KEV_DL_IF_DETACHING = 10
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18
+ KEV_DL_ISSUES = 24
+ KEV_DL_LINK_ADDRESS_CHANGED = 16
+ KEV_DL_LINK_OFF = 12
+ KEV_DL_LINK_ON = 13
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30
+ KEV_DL_NODE_ABSENCE = 22
+ KEV_DL_NODE_PRESENCE = 21
+ KEV_DL_PRIMARY_ELECTED = 23
+ KEV_DL_PROTO_ATTACHED = 14
+ KEV_DL_PROTO_DETACHED = 15
+ KEV_DL_QOS_MODE_CHANGED = 29
+ KEV_DL_RRC_STATE_CHANGED = 28
+ KEV_DL_SIFFLAGS = 1
+ KEV_DL_SIFGENERIC = 6
+ KEV_DL_SIFMEDIA = 5
+ KEV_DL_SIFMETRICS = 2
+ KEV_DL_SIFMTU = 3
+ KEV_DL_SIFPHYS = 4
+ KEV_DL_SUBCLASS = 2
+ KEV_DL_WAKEFLAGS_CHANGED = 17
+ KEV_INET6_ADDR_DELETED = 3
+ KEV_INET6_CHANGED_ADDR = 2
+ KEV_INET6_DEFROUTER = 6
+ KEV_INET6_NEW_LL_ADDR = 4
+ KEV_INET6_NEW_RTADV_ADDR = 5
+ KEV_INET6_NEW_USER_ADDR = 1
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7
+ KEV_INET6_SUBCLASS = 6
+ KEV_INET_ADDR_DELETED = 3
+ KEV_INET_ARPCOLLISION = 7
+ KEV_INET_ARPRTRALIVE = 10
+ KEV_INET_ARPRTRFAILURE = 9
+ KEV_INET_CHANGED_ADDR = 2
+ KEV_INET_NEW_ADDR = 1
+ KEV_INET_PORTINUSE = 8
+ KEV_INET_SIFBRDADDR = 5
+ KEV_INET_SIFDSTADDR = 4
+ KEV_INET_SIFNETMASK = 6
+ KEV_INET_SUBCLASS = 1
+ LITTLE_ENDIAN = 1234
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ MCAST_BLOCK_SOURCE = 84
+ MCAST_EXCLUDE = 2
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 80
+ MCAST_JOIN_SOURCE_GROUP = 82
+ MCAST_LEAVE_GROUP = 81
+ MCAST_LEAVE_SOURCE_GROUP = 83
+ MCAST_UNBLOCK_SOURCE = 85
+ MCAST_UNDEFINED = 0
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_NOSIGNAL = 0x80000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ NBBY = 8
+ NETSVC_MRKNG_LVL_L2 = 1
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2
+ NETSVC_MRKNG_LVL_L3L2_BK = 3
+ NETSVC_MRKNG_UNKNOWN = 0
+ NET_MAXID = 41
+ NET_RT_DUMP = 1
+ NET_RT_DUMP2 = 7
+ NET_RT_FLAGS = 2
+ NET_RT_FLAGS_PRIV = 10
+ NET_RT_IFLIST = 3
+ NET_RT_IFLIST2 = 6
+ NET_RT_MAXID = 11
+ NET_RT_STAT = 4
+ NET_RT_TRASH = 5
+ NET_SERVICE_TYPE_AV = 6
+ NET_SERVICE_TYPE_BE = 0
+ NET_SERVICE_TYPE_BK = 1
+ NET_SERVICE_TYPE_OAM = 7
+ NET_SERVICE_TYPE_RD = 8
+ NET_SERVICE_TYPE_RV = 5
+ NET_SERVICE_TYPE_SIG = 2
+ NET_SERVICE_TYPE_VI = 3
+ NET_SERVICE_TYPE_VO = 4
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 30
+ PF_IPX = 23
+ PF_ISDN = 28
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 41
+ PF_NATM = 31
+ PF_NDRV = 27
+ PF_NETBIOS = 33
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PPP = 34
+ PF_PUP = 4
+ PF_RESERVED_36 = 36
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 24
+ PF_SNA = 11
+ PF_SYSTEM = 32
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_UTUN = 38
+ PF_VSOCK = 40
+ PF_XTP = 19
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ SAE_ASSOCID_ANY = 0
+ SAE_CONNID_ANY = 0
+ SCM_CREDS = 0x03
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIMESTAMP_MONOTONIC = 0x04
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIN6_LEN = 0
+ SIZE_MAX = 18446744073709551615
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SONPX_SETOPTSHUT = 0x000000001
+ SO_ACCEPTCONN = 0x0002
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DONTROUTE = 0x0010
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x0080
+ SO_LINGER_SEC = 0x1080
+ SO_NETSVC_MARKING_LEVEL = 0x1119
+ SO_NET_SERVICE_TYPE = 0x1116
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x0100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x0400
+ SO_TIMESTAMP_MONOTONIC = 0x0800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x0040
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM__ENDIAN_H_ = 0
+ X_ARM__PARAM_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__PARAM_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_NET_NETKEV_H_ = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SA_FAMILY_T = 0
+ X_SIZE_T = 0
+ X_SOCKLEN_T = 0
+ X_SSIZE_T = 0
+ X_SS_MAXSIZE = 128
+ X_STDINT_H_ = 0
+ X_STRUCT_IOVEC = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ Pseudo_AF_HDRCMPLT = 35
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+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 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// 7.18.4 Macros for integer constants
+
+// 7.18.2 Limits of specified-width integer types:
+// These #defines specify the minimum and maximum limits
+// of each of the types declared above.
+//
+// They must have "the same type as would an expression that is an
+// object of the corresponding type converted according to the integer
+// promotion".
+
+// 7.18.2.1 Limits of exact-width integer types
+
+//
+// Note: the literal "most negative int" cannot be written in C --
+// the rules in the standard (section 6.4.4.1 in C99) will give it
+// an unsigned type, so INT32_MIN (and the most negative member of
+// any larger signed type) must be written via a constant expression.
+//
+
+// 7.18.2.2 Limits of minimum-width integer types
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+
+// 7.18.2.5 Limits of greatest-width integer types
+
+// 7.18.3 "Other"
+
+// WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+// it turns out that -fshort-wchar changes the signedness of
+// the type.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// When adding new socket-options, you need to make sure MPTCP supports these as well!
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:293:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:297:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:313:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:319:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:337:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:425:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:445:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// 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
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:552:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:600:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:691:1 */
+
+// The following two #includes insure htonl and family are defined
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 55-57: Unassigned
+// 101-252: Partly Unassigned
+// 253-254: Experimentation and testing; 255: Reserved (RFC3692)
+// BSD Private, local use, namespace incursion
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:301:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len X__uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:375:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:398:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+
+// These older firewall socket option codes are maintained for backward compatibility.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Defaults and limits for options
+
+// The imo_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:507:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:517:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:527:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:537:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:542:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__msfr_align Uint32_t
+ Fmsfr_group struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:555:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// IP_PKTINFO: Packet information (equivalent to RFC2292 sec 5 for IPv4)
+// This structure is used for
+//
+// 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+// set on the socket. In this case ipi_ifindex will contain the interface
+// index the datagram was received on, ipi_addr is the IP address the
+// datagram was received to.
+//
+// 2) Sending a datagram using a specific interface or IP source address.
+// if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+// ancilliary data of type IP_PKTINFO, this will be used as the source
+// interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+// will be used for the source address.
+//
+// Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+// IP_PKTINFO option silently overrides the bound interface when it is
+// specified during send time.
+type In_pktinfo = struct {
+ Fipi_ifindex uint32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:618:1 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:152:9 */
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr_t = In6_addr /* in6.h:158:3 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+} /* in6.h:170:1 */
+
+// Equality
+// NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+// does not supply memcmp(). For userland memcmp() is preferred as it is
+// in ANSI standard.
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// 6to4
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Unique Local IPv6 Unicast Addresses (per RFC 4193)
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC 3542 define the following socket options in a manner incompatible
+// with RFC 2292:
+// IPV6_PKTINFO
+// IPV6_HOPLIMIT
+// IPV6_NEXTHOP
+// IPV6_HOPOPTS
+// IPV6_DSTOPTS
+// IPV6_RTHDR
+//
+// To use the new IPv6 Sockets options introduced by RFC 3542
+// the constant __APPLE_USE_RFC_3542 must be defined before
+// including <netinet/in.h>
+//
+// To use the old IPv6 Sockets options from RFC 2292
+// the constant __APPLE_USE_RFC_2292 must be defined before
+// including <netinet/in.h>
+//
+// Note that eventually RFC 3542 is going to be the
+// default and RFC 2292 will be obsolete.
+
+// buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542]
+
+// APPLE: NOTE the value of those 2 options is kept unchanged from
+// previous version of darwin/OS X for binary compatibility reasons
+// and differ from FreeBSD (values 57 and 61). See below.
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// The im6o_membership vector for each socket is now dynamically allocated at
+// run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+// according to a power-of-two increment.
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:541:1 */
+
+// IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:549:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len X__uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo X__uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id X__uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:557:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_freebsd_386.go b/vendor/modernc.org/libc/netinet/in/in_freebsd_386.go
new file mode 100644
index 00000000..2bbeb3d6
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_freebsd_386.go
@@ -0,0 +1,1517 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_freebsd_386.go -pkgname in', DO NOT EDIT.
+
+package in
+
+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
+ ICMP6_FILTER = 18
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 47
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 0x000000ff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_HOST = 0x0fffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_HISTORICAL_NETS = 0
+ IN_LOOPBACKNET = 127
+ IN_NETMASK_DEFAULT = 0xffffff00
+ IPCTL_ACCEPTSOURCEROUTE = 13
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBROADCAST = 9
+ IPCTL_FASTFORWARDING = 14
+ IPCTL_FORWARDING = 1
+ IPCTL_GIF_TTL = 16
+ IPCTL_INTRDQDROPS = 18
+ IPCTL_INTRDQMAXLEN = 17
+ IPCTL_INTRQDROPS = 11
+ IPCTL_INTRQMAXLEN = 10
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 8
+ IPCTL_STATS = 12
+ IPPORT_EPHEMERALFIRST = 10000
+ IPPORT_EPHEMERALLAST = 65535
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_MAX = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDSTART = 600
+ IPPROTO_3PC = 34
+ IPPROTO_ADFS = 68
+ IPPROTO_AH = 51
+ IPPROTO_AHIP = 61
+ IPPROTO_APES = 99
+ IPPROTO_ARGUS = 13
+ IPPROTO_AX25 = 93
+ IPPROTO_BHA = 49
+ IPPROTO_BLT = 30
+ IPPROTO_BRSATMON = 76
+ IPPROTO_CARP = 112
+ IPPROTO_CFTP = 62
+ IPPROTO_CHAOS = 16
+ IPPROTO_CMTP = 38
+ IPPROTO_CPHB = 73
+ IPPROTO_CPNX = 72
+ IPPROTO_DCCP = 33
+ IPPROTO_DDP = 37
+ IPPROTO_DGP = 86
+ IPPROTO_DIVERT = 258
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_EMCON = 14
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GMTP = 100
+ IPPROTO_GRE = 47
+ IPPROTO_HELLO = 63
+ IPPROTO_HIP = 139
+ IPPROTO_HMP = 20
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IDPR = 35
+ IPPROTO_IDRP = 45
+ IPPROTO_IGMP = 2
+ IPPROTO_IGP = 85
+ IPPROTO_IGRP = 88
+ IPPROTO_IL = 40
+ IPPROTO_INLSP = 52
+ IPPROTO_INP = 32
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPCV = 71
+ IPPROTO_IPEIP = 94
+ IPPROTO_IPIP = 4
+ IPPROTO_IPPC = 67
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IRTP = 28
+ IPPROTO_KRYPTOLAN = 65
+ IPPROTO_LARP = 91
+ IPPROTO_LEAF1 = 25
+ IPPROTO_LEAF2 = 26
+ IPPROTO_MAX = 256
+ IPPROTO_MEAS = 19
+ IPPROTO_MH = 135
+ IPPROTO_MHRP = 48
+ IPPROTO_MICP = 95
+ IPPROTO_MOBILE = 55
+ IPPROTO_MPLS = 137
+ IPPROTO_MTP = 92
+ IPPROTO_MUX = 18
+ IPPROTO_ND = 77
+ IPPROTO_NHRP = 54
+ IPPROTO_NONE = 59
+ IPPROTO_NSP = 31
+ IPPROTO_NVPII = 11
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_OSPFIGP = 89
+ IPPROTO_PFSYNC = 240
+ IPPROTO_PGM = 113
+ IPPROTO_PIGP = 9
+ IPPROTO_PIM = 103
+ IPPROTO_PRM = 21
+ IPPROTO_PUP = 12
+ IPPROTO_PVP = 75
+ IPPROTO_RAW = 255
+ IPPROTO_RCCMON = 10
+ IPPROTO_RDP = 27
+ IPPROTO_RESERVED_253 = 253
+ IPPROTO_RESERVED_254 = 254
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_RVD = 66
+ IPPROTO_SATEXPAK = 64
+ IPPROTO_SATMON = 69
+ IPPROTO_SCCSP = 96
+ IPPROTO_SCTP = 132
+ IPPROTO_SDRP = 42
+ IPPROTO_SEND = 259
+ IPPROTO_SHIM6 = 140
+ IPPROTO_SKIP = 57
+ IPPROTO_SPACER = 32767
+ IPPROTO_SRPC = 90
+ IPPROTO_ST = 7
+ IPPROTO_SVMTP = 82
+ IPPROTO_SWIPE = 53
+ IPPROTO_TCF = 87
+ IPPROTO_TCP = 6
+ IPPROTO_TLSP = 56
+ IPPROTO_TP = 29
+ IPPROTO_TPXX = 39
+ IPPROTO_TRUNK1 = 23
+ IPPROTO_TRUNK2 = 24
+ IPPROTO_TTP = 84
+ IPPROTO_UDP = 17
+ IPPROTO_UDPLITE = 136
+ IPPROTO_VINES = 83
+ IPPROTO_VISA = 70
+ IPPROTO_VMTP = 81
+ IPPROTO_WBEXPAK = 79
+ IPPROTO_WBMON = 78
+ IPPROTO_WSN = 74
+ IPPROTO_XNET = 15
+ IPPROTO_XTP = 36
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_INTRDQMAXLEN = 52
+ IPV6CTL_INTRQMAXLEN = 51
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXFRAGBUCKETSIZE = 54
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXFRAGSPERPACKET = 53
+ IPV6CTL_MAXID = 55
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_NORBIT_RAIF = 49
+ IPV6CTL_NO_RADR = 48
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_RFC6204W3 = 50
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_STEALTH = 45
+ IPV6CTL_TEMPPLTIME = 33
+ IPV6CTL_TEMPVLTIME = 34
+ IPV6CTL_USETEMPADDR = 32
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6PROTO_MAXID = 104
+ IPV6_AUTOFLOWLABEL = 59
+ IPV6_BINDANY = 64
+ IPV6_BINDMULTI = 65
+ IPV6_BINDV6ONLY = 27
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_DONTFRAG = 62
+ IPV6_DSTOPTS = 50
+ IPV6_FLOWID = 67
+ IPV6_FLOWTYPE = 68
+ IPV6_FW_ADD = 30
+ IPV6_FW_DEL = 31
+ IPV6_FW_FLUSH = 32
+ IPV6_FW_GET = 34
+ IPV6_FW_ZERO = 33
+ IPV6_HOPLIMIT = 47
+ IPV6_HOPOPTS = 49
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MAX_GROUP_SRC_FILTER = 512
+ IPV6_MAX_MEMBERSHIPS = 4095
+ IPV6_MAX_SOCK_SRC_FILTER = 128
+ IPV6_MSFILTER = 74
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_NEXTHOP = 48
+ IPV6_ORIGDSTADDR = 72
+ IPV6_PATHMTU = 44
+ IPV6_PKTINFO = 46
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_PREFER_TEMPADDR = 63
+ IPV6_RECVDSTOPTS = 40
+ IPV6_RECVFLOWID = 70
+ IPV6_RECVHOPLIMIT = 37
+ IPV6_RECVHOPOPTS = 39
+ IPV6_RECVORIGDSTADDR = 72
+ IPV6_RECVPATHMTU = 43
+ IPV6_RECVPKTINFO = 36
+ IPV6_RECVRSSBUCKETID = 71
+ IPV6_RECVRTHDR = 38
+ IPV6_RECVTCLASS = 57
+ IPV6_RSSBUCKETID = 69
+ IPV6_RSS_LISTEN_BUCKET = 66
+ IPV6_RTHDR = 51
+ IPV6_RTHDRDSTOPTS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 61
+ IPV6_UNICAST_HOPS = 4
+ IPV6_USE_MIN_MTU = 42
+ IPV6_V6ONLY = 27
+ IPV6_VLAN_PCP = 75
+ IP_ADD_MEMBERSHIP = 12
+ IP_ADD_SOURCE_MEMBERSHIP = 70
+ IP_BINDANY = 24
+ IP_BINDMULTI = 25
+ IP_BLOCK_SOURCE = 72
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DONTFRAG = 67
+ IP_DROP_MEMBERSHIP = 13
+ IP_DROP_SOURCE_MEMBERSHIP = 71
+ IP_DUMMYNET3 = 49
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_FLOWID = 90
+ IP_FLOWTYPE = 91
+ IP_FW3 = 48
+ IP_FW_ADD = 50
+ IP_FW_DEL = 51
+ IP_FW_FLUSH = 52
+ IP_FW_GET = 54
+ IP_FW_NAT_CFG = 56
+ IP_FW_NAT_DEL = 57
+ IP_FW_NAT_GET_CONFIG = 58
+ IP_FW_NAT_GET_LOG = 59
+ IP_FW_RESETLOG = 55
+ IP_FW_TABLE_ADD = 40
+ IP_FW_TABLE_DEL = 41
+ IP_FW_TABLE_FLUSH = 42
+ IP_FW_TABLE_GETSIZE = 43
+ IP_FW_TABLE_LIST = 44
+ IP_FW_ZERO = 53
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 21
+ IP_MAX_GROUP_SRC_FILTER = 512
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MAX_SOCK_MUTE_FILTER = 128
+ IP_MAX_SOCK_SRC_FILTER = 128
+ IP_MINTTL = 66
+ IP_MSFILTER = 74
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_MULTICAST_VIF = 14
+ IP_ONESBCAST = 23
+ IP_OPTIONS = 1
+ IP_ORIGDSTADDR = 27
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVFLOWID = 93
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVORIGDSTADDR = 27
+ IP_RECVRETOPTS = 6
+ IP_RECVRSSBUCKETID = 94
+ IP_RECVTOS = 68
+ IP_RECVTTL = 65
+ IP_RETOPTS = 8
+ IP_RSSBUCKETID = 92
+ IP_RSS_LISTEN_BUCKET = 26
+ IP_RSVP_OFF = 16
+ IP_RSVP_ON = 15
+ IP_RSVP_VIF_OFF = 18
+ IP_RSVP_VIF_ON = 17
+ IP_SENDSRCADDR = 7
+ IP_TOS = 3
+ IP_TTL = 4
+ IP_UNBLOCK_SOURCE = 73
+ IP_VLAN_PCP = 75
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 84
+ MCAST_EXCLUDE = 2
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 80
+ MCAST_JOIN_SOURCE_GROUP = 82
+ MCAST_LEAVE_GROUP = 81
+ MCAST_LEAVE_SOURCE_GROUP = 83
+ MCAST_UNBLOCK_SOURCE = 85
+ MCAST_UNDEFINED = 0
+ PDP_ENDIAN = 3412
+ SIN6_LEN = 0
+ X_BIG_ENDIAN = 4321
+ X_BYTEORDER_FUNC_DEFINED = 0
+ X_BYTEORDER_PROTOTYPED = 0
+ X_BYTE_ORDER = 1234
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PDP_ENDIAN = 3412
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_SA_FAMILY_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SOCKLEN_T_DECLARED = 0
+ X_SS_MAXSIZE = 128
+ X_STRUCT_IN_ADDR_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__SOCKADDR_STORAGE_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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.
+
+// BSD Compatiblity
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// Define the order of 32-bit words in 64-bit words.
+
+// Deprecated variants that don't have enough underscores to be useful in more
+// strict namespaces.
+
+// bswap primitives, based on compiler builtins
+
+// Protocols common to RFC 1700, POSIX, and X/Open.
+
+type Uint8_t = X__uint8_t /* in.h:52:20 */
+
+type Uint16_t = X__uint16_t /* in.h:57:21 */
+
+type Uint32_t = X__uint32_t /* in.h:62:21 */
+
+type In_addr_t = Uint32_t /* in.h:67:19 */
+
+type In_port_t = Uint16_t /* in.h:72:19 */
+
+type Sa_family_t = X__sa_family_t /* in.h:77:24 */
+
+// Internet address (a structure for historical reasons).
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:83:1 */
+
+type Socklen_t = X__socklen_t /* in.h:90:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD$
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+type Sockaddr_storage = struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* _sockaddr_storage.h:48:1 */
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len Uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:97:1 */
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 101-254: Partly Unassigned
+// 255: Reserved
+// BSD Private, local use, namespace incursion, no longer used
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Only used internally, so can be outside the range of valid IP protocols.
+
+// Defined to avoid confusion. The master value is defined by
+// PROTO_SPACER in sys/protosw.h.
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_HIFIRSTAUTO through
+// IPPORT_HILASTAUTO, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.portrange.{hi,low,}{first,last})
+//
+// Changing those values has bad security implications if you are
+// using a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+
+// Default local port range, used by IP_PORTRANGE_DEFAULT
+
+// Dynamic port range, used by IP_PORTRANGE_HIGH.
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Historical definitions of bits in internet address integers
+// (pre-CIDR). Class A/B/C are long obsolete, and now deprecated.
+// Hide these definitions from the kernel unless IN_HISTORICAL_NETS
+// is defined. Provide the historical definitions to user level for now.
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+// unused; was IP_FAITH
+
+// Options for controlling the firewall and dummynet.
+// Historical options (from 40 to 64) will eventually be
+// replaced by only two options, IP_FW3 and IP_DUMMYNET3.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// The following option deals with the 802.1Q Ethernet Priority Code Point
+// -1 use interface default
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Flow and RSS definitions
+
+// Defaults and limits for options
+
+// Limit for IPv4 multicast memberships
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:539:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:549:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:558:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ Fgr_group struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:568:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ Fgsr_group struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:573:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ Fmsfr_group struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:586:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// Identifiers for IP sysctl nodes
+// IPCTL_RTEXPIRE 5 deprecated
+// IPCTL_RTMINEXPIRE 6 deprecated
+// IPCTL_RTMAXCACHE 7 deprecated
+// 15, unused, was: IPCTL_KEEPFAITH
+
+// INET6 stuff
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+//
+// $KAME: in6.h,v 1.89 2001/05/27 13:28:35 itojun Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD$
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// IPv6 port allocation rules should mirror the IPv4 rules and are controlled
+// by the net.inet.ip.portrange sysctl tree. The following defines exist
+// for compatibility with userland applications that need them.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in6.h:97:1 */
+
+// XXX missing POSIX.1-2001 macro IPPROTO_IPV6.
+
+// Socket address for IPv6
+
+type Sockaddr_in6 = struct {
+ Fsin6_len Uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in6.h:125:1 */
+
+type Route_in6 = struct {
+ Fro_nh uintptr
+ Fro_lle uintptr
+ Fro_prepend uintptr
+ Fro_plen Uint16_t
+ Fro_flags Uint16_t
+ Fro_mtu Uint16_t
+ Fspare Uint16_t
+ Fro_dst struct {
+ Fsin6_len Uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+ }
+} /* in6.h:379:1 */
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC2292 options
+
+// 29; unused; was IPV6_FAITH
+
+// new socket options introduced in RFC3542
+
+// more new socket options introduced in RFC3542
+
+// The following option is private; do not use it from user applications.
+// It is deliberately defined to the same value as IP_MSFILTER.
+
+// The following option deals with the 802.1Q Ethernet Priority Code Point
+// -1 use interface default
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// Limit for IPv6 multicast memberships
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:545:1 */
+
+// IPV6_PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:553:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len Uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:561:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_freebsd_amd64.go b/vendor/modernc.org/libc/netinet/in/in_freebsd_amd64.go
new file mode 100644
index 00000000..9a1b1006
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_freebsd_amd64.go
@@ -0,0 +1,1524 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_freebsd_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+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
+ ICMP6_FILTER = 18
+ ICMPV6CTL_ND6_ONLINKNSRFC4861 = 47
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 0x000000ff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_HOST = 0x0fffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IPCTL_ACCEPTSOURCEROUTE = 13
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBROADCAST = 9
+ IPCTL_FASTFORWARDING = 14
+ IPCTL_FORWARDING = 1
+ IPCTL_GIF_TTL = 16
+ IPCTL_INTRDQDROPS = 18
+ IPCTL_INTRDQMAXLEN = 17
+ IPCTL_INTRQDROPS = 11
+ IPCTL_INTRQMAXLEN = 10
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 8
+ IPCTL_STATS = 12
+ IPPORT_EPHEMERALFIRST = 10000
+ IPPORT_EPHEMERALLAST = 65535
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_MAX = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDSTART = 600
+ IPPROTO_3PC = 34
+ IPPROTO_ADFS = 68
+ IPPROTO_AH = 51
+ IPPROTO_AHIP = 61
+ IPPROTO_APES = 99
+ IPPROTO_ARGUS = 13
+ IPPROTO_AX25 = 93
+ IPPROTO_BHA = 49
+ IPPROTO_BLT = 30
+ IPPROTO_BRSATMON = 76
+ IPPROTO_CARP = 112
+ IPPROTO_CFTP = 62
+ IPPROTO_CHAOS = 16
+ IPPROTO_CMTP = 38
+ IPPROTO_CPHB = 73
+ IPPROTO_CPNX = 72
+ IPPROTO_DCCP = 33
+ IPPROTO_DDP = 37
+ IPPROTO_DGP = 86
+ IPPROTO_DIVERT = 258
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_EMCON = 14
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GMTP = 100
+ IPPROTO_GRE = 47
+ IPPROTO_HELLO = 63
+ IPPROTO_HIP = 139
+ IPPROTO_HMP = 20
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IDPR = 35
+ IPPROTO_IDRP = 45
+ IPPROTO_IGMP = 2
+ IPPROTO_IGP = 85
+ IPPROTO_IGRP = 88
+ IPPROTO_IL = 40
+ IPPROTO_INLSP = 52
+ IPPROTO_INP = 32
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPCV = 71
+ IPPROTO_IPEIP = 94
+ IPPROTO_IPIP = 4
+ IPPROTO_IPPC = 67
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IRTP = 28
+ IPPROTO_KRYPTOLAN = 65
+ IPPROTO_LARP = 91
+ IPPROTO_LEAF1 = 25
+ IPPROTO_LEAF2 = 26
+ IPPROTO_MAX = 256
+ IPPROTO_MEAS = 19
+ IPPROTO_MH = 135
+ IPPROTO_MHRP = 48
+ IPPROTO_MICP = 95
+ IPPROTO_MOBILE = 55
+ IPPROTO_MPLS = 137
+ IPPROTO_MTP = 92
+ IPPROTO_MUX = 18
+ IPPROTO_ND = 77
+ IPPROTO_NHRP = 54
+ IPPROTO_NONE = 59
+ IPPROTO_NSP = 31
+ IPPROTO_NVPII = 11
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_OSPFIGP = 89
+ IPPROTO_PFSYNC = 240
+ IPPROTO_PGM = 113
+ IPPROTO_PIGP = 9
+ IPPROTO_PIM = 103
+ IPPROTO_PRM = 21
+ IPPROTO_PUP = 12
+ IPPROTO_PVP = 75
+ IPPROTO_RAW = 255
+ IPPROTO_RCCMON = 10
+ IPPROTO_RDP = 27
+ IPPROTO_RESERVED_253 = 253
+ IPPROTO_RESERVED_254 = 254
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_RVD = 66
+ IPPROTO_SATEXPAK = 64
+ IPPROTO_SATMON = 69
+ IPPROTO_SCCSP = 96
+ IPPROTO_SCTP = 132
+ IPPROTO_SDRP = 42
+ IPPROTO_SEND = 259
+ IPPROTO_SHIM6 = 140
+ IPPROTO_SKIP = 57
+ IPPROTO_SPACER = 32767
+ IPPROTO_SRPC = 90
+ IPPROTO_ST = 7
+ IPPROTO_SVMTP = 82
+ IPPROTO_SWIPE = 53
+ IPPROTO_TCF = 87
+ IPPROTO_TCP = 6
+ IPPROTO_TLSP = 56
+ IPPROTO_TP = 29
+ IPPROTO_TPXX = 39
+ IPPROTO_TRUNK1 = 23
+ IPPROTO_TRUNK2 = 24
+ IPPROTO_TTP = 84
+ IPPROTO_UDP = 17
+ IPPROTO_UDPLITE = 136
+ IPPROTO_VINES = 83
+ IPPROTO_VISA = 70
+ IPPROTO_VMTP = 81
+ IPPROTO_WBEXPAK = 79
+ IPPROTO_WBMON = 78
+ IPPROTO_WSN = 74
+ IPPROTO_XNET = 15
+ IPPROTO_XTP = 36
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_INTRDQMAXLEN = 52
+ IPV6CTL_INTRQMAXLEN = 51
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXFRAGBUCKETSIZE = 54
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXFRAGSPERPACKET = 53
+ IPV6CTL_MAXID = 55
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_NORBIT_RAIF = 49
+ IPV6CTL_NO_RADR = 48
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_RFC6204W3 = 50
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_STEALTH = 45
+ IPV6CTL_TEMPPLTIME = 33
+ IPV6CTL_TEMPVLTIME = 34
+ IPV6CTL_USETEMPADDR = 32
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6PROTO_MAXID = 104
+ IPV6_AUTOFLOWLABEL = 59
+ IPV6_BINDANY = 64
+ IPV6_BINDMULTI = 65
+ IPV6_BINDV6ONLY = 27
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_DONTFRAG = 62
+ IPV6_DSTOPTS = 50
+ IPV6_FLOWID = 67
+ IPV6_FLOWTYPE = 68
+ IPV6_FW_ADD = 30
+ IPV6_FW_DEL = 31
+ IPV6_FW_FLUSH = 32
+ IPV6_FW_GET = 34
+ IPV6_FW_ZERO = 33
+ IPV6_HOPLIMIT = 47
+ IPV6_HOPOPTS = 49
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MAX_GROUP_SRC_FILTER = 512
+ IPV6_MAX_MEMBERSHIPS = 4095
+ IPV6_MAX_SOCK_SRC_FILTER = 128
+ IPV6_MSFILTER = 74
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_NEXTHOP = 48
+ IPV6_ORIGDSTADDR = 72
+ IPV6_PATHMTU = 44
+ IPV6_PKTINFO = 46
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_PREFER_TEMPADDR = 63
+ IPV6_RECVDSTOPTS = 40
+ IPV6_RECVFLOWID = 70
+ IPV6_RECVHOPLIMIT = 37
+ IPV6_RECVHOPOPTS = 39
+ IPV6_RECVORIGDSTADDR = 72
+ IPV6_RECVPATHMTU = 43
+ IPV6_RECVPKTINFO = 36
+ IPV6_RECVRSSBUCKETID = 71
+ IPV6_RECVRTHDR = 38
+ IPV6_RECVTCLASS = 57
+ IPV6_RSSBUCKETID = 69
+ IPV6_RSS_LISTEN_BUCKET = 66
+ IPV6_RTHDR = 51
+ IPV6_RTHDRDSTOPTS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 61
+ IPV6_UNICAST_HOPS = 4
+ IPV6_USE_MIN_MTU = 42
+ IPV6_V6ONLY = 27
+ IPV6_VLAN_PCP = 75
+ IP_ADD_MEMBERSHIP = 12
+ IP_ADD_SOURCE_MEMBERSHIP = 70
+ IP_BINDANY = 24
+ IP_BINDMULTI = 25
+ IP_BLOCK_SOURCE = 72
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DONTFRAG = 67
+ IP_DROP_MEMBERSHIP = 13
+ IP_DROP_SOURCE_MEMBERSHIP = 71
+ IP_DUMMYNET3 = 49
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_FLOWID = 90
+ IP_FLOWTYPE = 91
+ IP_FW3 = 48
+ IP_FW_ADD = 50
+ IP_FW_DEL = 51
+ IP_FW_FLUSH = 52
+ IP_FW_GET = 54
+ IP_FW_NAT_CFG = 56
+ IP_FW_NAT_DEL = 57
+ IP_FW_NAT_GET_CONFIG = 58
+ IP_FW_NAT_GET_LOG = 59
+ IP_FW_RESETLOG = 55
+ IP_FW_TABLE_ADD = 40
+ IP_FW_TABLE_DEL = 41
+ IP_FW_TABLE_FLUSH = 42
+ IP_FW_TABLE_GETSIZE = 43
+ IP_FW_TABLE_LIST = 44
+ IP_FW_ZERO = 53
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 21
+ IP_MAX_GROUP_SRC_FILTER = 512
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MAX_SOCK_MUTE_FILTER = 128
+ IP_MAX_SOCK_SRC_FILTER = 128
+ IP_MINTTL = 66
+ IP_MSFILTER = 74
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_MULTICAST_VIF = 14
+ IP_ONESBCAST = 23
+ IP_OPTIONS = 1
+ IP_ORIGDSTADDR = 27
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVFLOWID = 93
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVORIGDSTADDR = 27
+ IP_RECVRETOPTS = 6
+ IP_RECVRSSBUCKETID = 94
+ IP_RECVTOS = 68
+ IP_RECVTTL = 65
+ IP_RETOPTS = 8
+ IP_RSSBUCKETID = 92
+ IP_RSS_LISTEN_BUCKET = 26
+ IP_RSVP_OFF = 16
+ IP_RSVP_ON = 15
+ IP_RSVP_VIF_OFF = 18
+ IP_RSVP_VIF_ON = 17
+ IP_SENDSRCADDR = 7
+ IP_TOS = 3
+ IP_TTL = 4
+ IP_UNBLOCK_SOURCE = 73
+ IP_VLAN_PCP = 75
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 84
+ MCAST_EXCLUDE = 2
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 80
+ MCAST_JOIN_SOURCE_GROUP = 82
+ MCAST_LEAVE_GROUP = 81
+ MCAST_LEAVE_SOURCE_GROUP = 83
+ MCAST_UNBLOCK_SOURCE = 85
+ MCAST_UNDEFINED = 0
+ PDP_ENDIAN = 3412
+ SIN6_LEN = 0
+ X_BIG_ENDIAN = 4321
+ X_BYTEORDER_FUNC_DEFINED = 0
+ X_BYTEORDER_PROTOTYPED = 0
+ X_BYTE_ORDER = 1234
+ X_FILE_OFFSET_BITS = 64
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PDP_ENDIAN = 3412
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_SA_FAMILY_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SOCKLEN_T_DECLARED = 0
+ X_SS_MAXSIZE = 128
+ X_STRUCT_IN_ADDR_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__SOCKADDR_STORAGE_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Define the order of 32-bit words in 64-bit words.
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// Deprecated variants that don't have enough underscores to be useful in more
+// strict namespaces.
+
+// Protocols common to RFC 1700, POSIX, and X/Open.
+
+type Uint8_t = X__uint8_t /* in.h:52:20 */
+
+type Uint16_t = X__uint16_t /* in.h:57:21 */
+
+type Uint32_t = X__uint32_t /* in.h:62:21 */
+
+type In_addr_t = Uint32_t /* in.h:67:19 */
+
+type In_port_t = Uint16_t /* in.h:72:19 */
+
+type Sa_family_t = X__sa_family_t /* in.h:77:24 */
+
+// Internet address (a structure for historical reasons).
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:83:1 */
+
+type Socklen_t = X__socklen_t /* in.h:90:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD$
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+type Sockaddr_storage = struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* _sockaddr_storage.h:48:1 */
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len Uint8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]int8
+} /* in.h:97:1 */
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// Protocols (RFC 1700)
+// 101-254: Partly Unassigned
+// 255: Reserved
+// BSD Private, local use, namespace incursion, no longer used
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Only used internally, so can be outside the range of valid IP protocols.
+
+// Defined to avoid confusion. The master value is defined by
+// PROTO_SPACER in sys/protosw.h.
+
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_HIFIRSTAUTO through
+// IPPORT_HILASTAUTO, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.portrange.{hi,low,}{first,last})
+//
+// Changing those values has bad security implications if you are
+// using a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+//
+// For a slightly more orthodox text view on this:
+//
+// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+//
+// port numbers are divided into three ranges:
+//
+// 0 - 1023 Well Known Ports
+// 1024 - 49151 Registered Ports
+// 49152 - 65535 Dynamic and/or Private Ports
+//
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root). (IP_PORTRANGE_LOW)
+
+// Default local port range, used by IP_PORTRANGE_DEFAULT
+
+// Dynamic port range, used by IP_PORTRANGE_HIGH.
+
+// Scanning for a free reserved port return a value below IPPORT_RESERVED,
+// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
+// 512, but that conflicts with some well-known-services that firewalls may
+// have a fit if we use.
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// for IPSEC
+// unused; was IP_FAITH
+
+// Options for controlling the firewall and dummynet.
+// Historical options (from 40 to 64) will eventually be
+// replaced by only two options, IP_FW3 and IP_DUMMYNET3.
+
+// IPv4 Source Filter Multicast API [RFC3678]
+
+// The following option is private; do not use it from user applications.
+
+// The following option deals with the 802.1Q Ethernet Priority Code Point
+// -1 use interface default
+
+// Protocol Independent Multicast API [RFC3678]
+
+// Flow and RSS definitions
+
+// Defaults and limits for options
+
+// Limit for IPv4 multicast memberships
+
+// Default resource limits for IPv4 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:527:1 */
+
+// Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+// This is used to specify an interface index for multicast sends, as
+// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:537:1 */
+
+// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:546:1 */
+
+// Argument structures for Protocol-Independent Multicast Source
+// Filter APIs. [RFC3678]
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:556:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fgsr_source struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+} /* in.h:561:1 */
+
+// The following structure is private; do not use it from user applications.
+// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+// the RFC 3678 libc functions and the kernel.
+type X__msfilterreq = struct {
+ Fmsfr_ifindex Uint32_t
+ Fmsfr_fmode Uint32_t
+ Fmsfr_nsrcs Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fmsfr_group struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+ }
+ Fmsfr_srcs uintptr
+} /* in.h:574:1 */
+
+// Filter modes; also used to represent per-socket filter mode internally.
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// Identifiers for IP sysctl nodes
+// IPCTL_RTEXPIRE 5 deprecated
+// IPCTL_RTMINEXPIRE 6 deprecated
+// IPCTL_RTMAXCACHE 7 deprecated
+// 15, unused, was: IPCTL_KEEPFAITH
+
+// INET6 stuff
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+//
+// $KAME: in6.h,v 1.89 2001/05/27 13:28:35 itojun Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+// $FreeBSD$
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// IPv6 port allocation rules should mirror the IPv4 rules and are controlled
+// by the net.inet.ip.portrange sysctl tree. The following defines exist
+// for compatibility with userland applications that need them.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in6.h:97:1 */
+
+// XXX missing POSIX.1-2001 macro IPPROTO_IPV6.
+
+// Socket address for IPv6
+
+type Sockaddr_in6 = struct {
+ Fsin6_len Uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in6.h:125:1 */
+
+type Route_in6 = struct {
+ Fro_nh uintptr
+ Fro_lle uintptr
+ Fro_prepend uintptr
+ Fro_plen Uint16_t
+ Fro_flags Uint16_t
+ Fro_mtu Uint16_t
+ Fspare Uint16_t
+ Fro_dst struct {
+ Fsin6_len Uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+ }
+ F__ccgo_pad1 [4]byte
+} /* in6.h:379:1 */
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// RFC2292 options
+
+// 29; unused; was IPV6_FAITH
+
+// new socket options introduced in RFC3542
+
+// more new socket options introduced in RFC3542
+
+// The following option is private; do not use it from user applications.
+// It is deliberately defined to the same value as IP_MSFILTER.
+
+// The following option deals with the 802.1Q Ethernet Priority Code Point
+// -1 use interface default
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// Limit for IPv6 multicast memberships
+
+// Default resource limits for IPv6 multicast source filtering.
+// These may be modified by sysctl.
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:545:1 */
+
+// IPV6_PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:553:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len Uint8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:561:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_linux_386.go b/vendor/modernc.org/libc/netinet/in/in_linux_386.go
new file mode 100644
index 00000000..f1f0cdea
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_linux_386.go
@@ -0,0 +1,2742 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_386.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ SO_RCVBUF = 8
+ SO_RCVBUFFORCE = 33
+ SO_RCVLOWAT = 18
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
+ SO_REUSEADDR = 2
+ SO_REUSEPORT = 15
+ SO_RXQ_OVFL = 40
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ SO_SNDBUFFORCE = 32
+ SO_SNDLOWAT = 19
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_ILP32 = 1
+ X_LINUX_POSIX_TYPES_H = 0
+ X_NETINET_IN_H = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Define uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* 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_align uint32
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+// 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.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// Instruct lower device to use last 4-bytes of skb data as FCS
+
+// Structure used to manipulate the SO_LINGER option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* 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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]int8
+ F__ss_align uint32
+ }
+} /* in.h:345:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_linux_amd64.go b/vendor/modernc.org/libc/netinet/in/in_linux_amd64.go
new file mode 100644
index 00000000..9bf70350
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_linux_amd64.go
@@ -0,0 +1,2775 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LP64 = 1
+ X_NETINET_IN_H = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+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 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Define uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* 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_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]int8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]int8
+ F__ss_align uint64
+ }
+} /* in.h:345:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_linux_arm.go b/vendor/modernc.org/libc/netinet/in/in_linux_arm.go
new file mode 100644
index 00000000..510f4db6
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_linux_arm.go
@@ -0,0 +1,2858 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_arm.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ SO_RCVBUF = 8
+ SO_RCVBUFFORCE = 33
+ SO_RCVLOWAT = 18
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
+ SO_REUSEADDR = 2
+ SO_REUSEPORT = 15
+ SO_RXQ_OVFL = 40
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ SO_SNDBUFFORCE = 32
+ SO_SNDLOWAT = 19
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_NETINET_IN_H = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Define uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint32
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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
+
+// 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.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// Instruct lower device to use last 4-bytes of skb data as FCS
+
+// Structure used to manipulate the SO_LINGER option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* 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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]uint8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [122]uint8
+ F__ss_align uint32
+ }
+} /* in.h:345:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_linux_arm64.go b/vendor/modernc.org/libc/netinet/in/in_linux_arm64.go
new file mode 100644
index 00000000..abddfc52
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_linux_arm64.go
@@ -0,0 +1,2885 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_arm64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LP64 = 1
+ X_NETINET_IN_H = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Define uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]uint8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:345:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_linux_s390x.go b/vendor/modernc.org/libc/netinet/in/in_linux_s390x.go
new file mode 100644
index 00000000..3fb546c0
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_linux_s390x.go
@@ -0,0 +1,2771 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_s390x.go -pkgname in', DO NOT EDIT.
+
+package in
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 4321
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_HOST = 16777215
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_HOST = 65535
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_HOST = 255
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_LOOPBACKNET = 127
+ IPV6_2292DSTOPTS = 4
+ IPV6_2292HOPLIMIT = 8
+ IPV6_2292HOPOPTS = 3
+ IPV6_2292PKTINFO = 2
+ IPV6_2292PKTOPTIONS = 6
+ IPV6_2292RTHDR = 5
+ IPV6_ADDRFORM = 1
+ IPV6_ADDR_PREFERENCES = 72
+ IPV6_ADD_MEMBERSHIP = 20
+ IPV6_AUTHHDR = 10
+ IPV6_AUTOFLOWLABEL = 70
+ IPV6_CHECKSUM = 7
+ IPV6_DONTFRAG = 62
+ IPV6_DROP_MEMBERSHIP = 21
+ IPV6_DSTOPTS = 59
+ IPV6_FREEBIND = 78
+ IPV6_HDRINCL = 36
+ IPV6_HOPLIMIT = 52
+ IPV6_HOPOPTS = 54
+ IPV6_IPSEC_POLICY = 34
+ IPV6_JOIN_ANYCAST = 27
+ IPV6_JOIN_GROUP = 20
+ IPV6_LEAVE_ANYCAST = 28
+ IPV6_LEAVE_GROUP = 21
+ IPV6_MINHOPCOUNT = 73
+ IPV6_MTU = 24
+ IPV6_MTU_DISCOVER = 23
+ IPV6_MULTICAST_ALL = 29
+ IPV6_MULTICAST_HOPS = 18
+ IPV6_MULTICAST_IF = 17
+ IPV6_MULTICAST_LOOP = 19
+ IPV6_NEXTHOP = 9
+ IPV6_ORIGDSTADDR = 74
+ IPV6_PATHMTU = 61
+ IPV6_PKTINFO = 50
+ IPV6_PMTUDISC_DO = 2
+ IPV6_PMTUDISC_DONT = 0
+ IPV6_PMTUDISC_INTERFACE = 4
+ IPV6_PMTUDISC_OMIT = 5
+ IPV6_PMTUDISC_PROBE = 3
+ IPV6_PMTUDISC_WANT = 1
+ IPV6_RECVDSTOPTS = 58
+ IPV6_RECVERR = 25
+ IPV6_RECVFRAGSIZE = 77
+ IPV6_RECVHOPLIMIT = 51
+ IPV6_RECVHOPOPTS = 53
+ IPV6_RECVORIGDSTADDR = 74
+ IPV6_RECVPATHMTU = 60
+ IPV6_RECVPKTINFO = 49
+ IPV6_RECVRTHDR = 56
+ IPV6_RECVTCLASS = 66
+ IPV6_ROUTER_ALERT = 22
+ IPV6_ROUTER_ALERT_ISOLATE = 30
+ IPV6_RTHDR = 57
+ IPV6_RTHDRDSTOPTS = 55
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_RXDSTOPTS = 59
+ IPV6_RXHOPOPTS = 54
+ IPV6_TCLASS = 67
+ IPV6_TRANSPARENT = 75
+ IPV6_UNICAST_HOPS = 16
+ IPV6_UNICAST_IF = 76
+ IPV6_V6ONLY = 26
+ IPV6_XFRM_POLICY = 35
+ IP_ADD_MEMBERSHIP = 35
+ IP_ADD_SOURCE_MEMBERSHIP = 39
+ IP_BIND_ADDRESS_NO_PORT = 24
+ IP_BLOCK_SOURCE = 38
+ IP_CHECKSUM = 23
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 36
+ IP_DROP_SOURCE_MEMBERSHIP = 40
+ IP_FREEBIND = 15
+ IP_HDRINCL = 3
+ IP_IPSEC_POLICY = 16
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 21
+ IP_MSFILTER = 41
+ IP_MTU = 14
+ IP_MTU_DISCOVER = 10
+ IP_MULTICAST_ALL = 49
+ IP_MULTICAST_IF = 32
+ IP_MULTICAST_LOOP = 34
+ IP_MULTICAST_TTL = 33
+ IP_NODEFRAG = 22
+ IP_OPTIONS = 4
+ IP_ORIGDSTADDR = 20
+ IP_PASSSEC = 18
+ IP_PKTINFO = 8
+ IP_PKTOPTIONS = 9
+ IP_PMTUDISC = 10
+ IP_PMTUDISC_DO = 2
+ IP_PMTUDISC_DONT = 0
+ IP_PMTUDISC_INTERFACE = 4
+ IP_PMTUDISC_OMIT = 5
+ IP_PMTUDISC_PROBE = 3
+ IP_PMTUDISC_WANT = 1
+ IP_RECVERR = 11
+ IP_RECVFRAGSIZE = 25
+ IP_RECVOPTS = 6
+ IP_RECVORIGDSTADDR = 20
+ IP_RECVRETOPTS = 7
+ IP_RECVTOS = 13
+ IP_RECVTTL = 12
+ IP_RETOPTS = 7
+ IP_ROUTER_ALERT = 5
+ IP_TOS = 1
+ IP_TRANSPARENT = 19
+ IP_TTL = 2
+ IP_UNBLOCK_SOURCE = 37
+ IP_UNICAST_IF = 50
+ IP_XFRM_POLICY = 17
+ LITTLE_ENDIAN = 1234
+ MCAST_BLOCK_SOURCE = 43
+ MCAST_EXCLUDE = 0
+ MCAST_INCLUDE = 1
+ MCAST_JOIN_GROUP = 42
+ MCAST_JOIN_SOURCE_GROUP = 46
+ MCAST_LEAVE_GROUP = 45
+ MCAST_LEAVE_SOURCE_GROUP = 47
+ MCAST_MSFILTER = 48
+ MCAST_UNBLOCK_SOURCE = 44
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_ICMPV6 = 58
+ SOL_IP = 0
+ SOL_IPV6 = 41
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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_STDINT_UINTN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LP64 = 1
+ X_NETINET_IN_H = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// Standard well-known ports.
+const ( /* in.h:122:1: */
+ IPPORT_ECHO = 7 // Echo service.
+ IPPORT_DISCARD = 9 // Discard transmissions service.
+ IPPORT_SYSTAT = 11 // System status service.
+ IPPORT_DAYTIME = 13 // Time of day service.
+ IPPORT_NETSTAT = 15 // Network status service.
+ IPPORT_FTP = 21 // File Transfer Protocol.
+ IPPORT_TELNET = 23 // Telnet protocol.
+ IPPORT_SMTP = 25 // Simple Mail Transfer Protocol.
+ IPPORT_TIMESERVER = 37 // Timeserver service.
+ IPPORT_NAMESERVER = 42 // Domain Name Service.
+ IPPORT_WHOIS = 43 // Internet Whois service.
+ IPPORT_MTP = 57
+
+ IPPORT_TFTP = 69 // Trivial File Transfer Protocol.
+ IPPORT_RJE = 77
+ IPPORT_FINGER = 79 // Finger service.
+ IPPORT_TTYLINK = 87
+ IPPORT_SUPDUP = 95 // SUPDUP protocol.
+
+ IPPORT_EXECSERVER = 512 // execd service.
+ IPPORT_LOGINSERVER = 513 // rlogind service.
+ IPPORT_CMDSERVER = 514
+ IPPORT_EFSSERVER = 520
+
+ // UDP ports.
+ IPPORT_BIFFUDP = 512
+ IPPORT_WHOSERVER = 513
+ IPPORT_ROUTESERVER = 520
+
+ // Ports less than this value are reserved for privileged processes.
+ IPPORT_RESERVED = 1024
+
+ // Ports greater this value are reserved for (non-privileged) servers.
+ IPPORT_USERRESERVED = 5000
+)
+
+// Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+
+// Advanced API (RFC3542) (1).
+
+// Advanced API (RFC3542) (2).
+
+// RFC5014.
+
+// RFC5082.
+
+// Obsolete synonyms for the above.
+
+// IPV6_MTU_DISCOVER values.
+
+// Socket level values for IPv6.
+
+// Routing header options for IPv6.
+
+// Standard well-defined IP protocols.
+const ( /* in.h:40:1: */
+ IPPROTO_IP = 0 // Dummy protocol for TCP.
+ IPPROTO_ICMP = 1 // Internet Control Message Protocol.
+ IPPROTO_IGMP = 2 // Internet Group Management Protocol.
+ IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94).
+ IPPROTO_TCP = 6 // Transmission Control Protocol.
+ IPPROTO_EGP = 8 // Exterior Gateway Protocol.
+ IPPROTO_PUP = 12 // PUP protocol.
+ IPPROTO_UDP = 17 // User Datagram Protocol.
+ IPPROTO_IDP = 22 // XNS IDP protocol.
+ IPPROTO_TP = 29 // SO Transport Protocol Class 4.
+ IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol.
+ IPPROTO_IPV6 = 41 // IPv6 header.
+ IPPROTO_RSVP = 46 // Reservation Protocol.
+ IPPROTO_GRE = 47 // General Routing Encapsulation.
+ IPPROTO_ESP = 50 // encapsulating security payload.
+ IPPROTO_AH = 51 // authentication header.
+ IPPROTO_MTP = 92 // Multicast Transport Protocol.
+ IPPROTO_BEETPH = 94 // IP option pseudo header for BEET.
+ IPPROTO_ENCAP = 98 // Encapsulation Header.
+ IPPROTO_PIM = 103 // Protocol Independent Multicast.
+ IPPROTO_COMP = 108 // Compression Header Protocol.
+ IPPROTO_SCTP = 132 // Stream Control Transmission Protocol.
+ IPPROTO_UDPLITE = 136 // UDP-Lite protocol.
+ IPPROTO_MPLS = 137 // MPLS in IP.
+ IPPROTO_RAW = 255 // Raw IP packets.
+ IPPROTO_MAX = 256
+)
+
+// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
+// network headers first and we should use those ABI-identical definitions
+// instead of our own, otherwise 0.
+const ( /* in.h:99:1: */
+ IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options.
+ IPPROTO_ROUTING = 43 // IPv6 routing header.
+ IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header.
+ IPPROTO_ICMPV6 = 58 // ICMPv6.
+ IPPROTO_NONE = 59 // IPv6 no next header.
+ IPPROTO_DSTOPTS = 60 // IPv6 destination options.
+ IPPROTO_MH = 135
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+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 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Define uintN_t types.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */
+type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
+type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
+type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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
+// S390 version
+//
+
+// 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
+
+// Socket-level I/O control calls.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Internet address.
+type In_addr_t = Uint32_t /* in.h:30:18 */
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */
+
+// Get system-specific definitions.
+// 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
+// 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/>.
+
+// Linux version.
+
+// If the application has already included linux/in6.h from a linux-based
+// kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+// defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+// in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+// Neither the linux kernel nor glibc should break this ABI without coordination.
+// In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+// for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+// maximum backwards compatibility.
+
+// Options for use with `getsockopt' and `setsockopt' at the IP level.
+// The first word in the comment at the right is the data type used;
+// "bool" means a boolean value stored in an `int'.
+// For BSD compatibility.
+
+// TProxy original addresses
+
+// IP_MTU_DISCOVER arguments.
+// Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+// Also incoming ICMP frag_needed notifications will be ignored on
+// this socket to prevent accepting spoofed ones.
+// Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
+
+// To select the IP level.
+
+// Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+// The `ip_dst' field is used for the first-hop gateway when using a
+// source route (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]uint8
+} /* in.h:142:1 */
+
+// Like `struct ip_mreq' but including interface specification by index.
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:149:1 */
+
+// Structure used for IP_PKTINFO.
+type In_pktinfo = struct {
+ Fipi_ifindex int32
+ Fipi_spec_dst struct{ Fs_addr In_addr_t }
+ Fipi_addr struct{ Fs_addr In_addr_t }
+} /* in.h:157:1 */
+
+// Type to represent a port.
+type In_port_t = Uint16_t /* in.h:119:18 */
+
+// Definitions of the bits in an Internet address integer.
+//
+// On subnets, host and network parts are found according to
+// the subnet mask, not these masks.
+
+// Address to accept any incoming messages.
+// Address to send to all hosts.
+// Address indicating an error return.
+
+// Network number for local host loopback.
+// Address to loopback in software to local host.
+
+// Defines for Multicast INADDR.
+
+// IPv6 address
+type In6_addr = struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+} /* in.h:212:1 */
+
+// ::1
+
+// Structure describing an Internet socket address.
+type Sockaddr_in = struct {
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]uint8
+} /* in.h:238:1 */
+
+// Ditto, for IPv6.
+type Sockaddr_in6 = struct {
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in.h:253:1 */
+
+// IPv4 multicast request.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:265:1 */
+
+type Ip_mreq_source = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+ Fimr_sourceaddr struct{ Fs_addr In_addr_t }
+} /* in.h:274:1 */
+
+// Likewise, for IPv6.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__in6_u struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]Uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in.h:289:1 */
+
+// Multicast group request.
+type Group_req = struct {
+ Fgr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:301:1 */
+
+type Group_source_req = struct {
+ Fgsr_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgsr_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgsr_source struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:310:1 */
+
+// Full-state filter operations.
+type Ip_msfilter = struct {
+ Fimsf_multiaddr struct{ Fs_addr In_addr_t }
+ Fimsf_interface struct{ Fs_addr In_addr_t }
+ Fimsf_fmode Uint32_t
+ Fimsf_numsrc Uint32_t
+ Fimsf_slist [1]struct{ Fs_addr In_addr_t }
+} /* in.h:324:1 */
+
+type Group_filter = struct {
+ Fgf_interface Uint32_t
+ F__ccgo_pad1 [4]byte
+ Fgf_group struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+ Fgf_fmode Uint32_t
+ Fgf_numsrc Uint32_t
+ Fgf_slist [1]struct {
+ Fss_family Sa_family_t
+ F__ss_padding [118]uint8
+ F__ss_align uint64
+ }
+} /* in.h:345:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_netbsd_amd64.go b/vendor/modernc.org/libc/netinet/in/in_netbsd_amd64.go
new file mode 100644
index 00000000..8e569527
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_netbsd_amd64.go
@@ -0,0 +1,2950 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_netbsd_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+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
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CTL_IPPROTO_IPSEC = 258
+ FD_SETSIZE = 256
+ ICMP6_FILTER = 18
+ INET6_ADDRSTRLEN = 46
+ INET6_IS_ADDR_LINKLOCAL = 1
+ INET6_IS_ADDR_MC_LINKLOCAL = 2
+ INET6_IS_ADDR_SITELOCAL = 4
+ INET_ADDRSTRLEN = 16
+ 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
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IPCTL_ALLOWSRCRT = 7
+ IPCTL_ANONPORTMAX = 11
+ IPCTL_ANONPORTMIN = 10
+ IPCTL_CHECKINTERFACE = 20
+ IPCTL_DAD_COUNT = 25
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBCAST = 6
+ IPCTL_FORWARDING = 1
+ IPCTL_FORWSRCRT = 5
+ IPCTL_GIF_TTL = 15
+ IPCTL_GRE_TTL = 19
+ IPCTL_HOSTZEROBROADCAST = 14
+ IPCTL_IFQ = 21
+ IPCTL_LOOPBACKCKSUM = 23
+ IPCTL_LOWPORTMAX = 17
+ IPCTL_LOWPORTMIN = 16
+ IPCTL_MAXFLOWS = 13
+ IPCTL_MAXFRAGPACKETS = 18
+ IPCTL_MTUDISC = 9
+ IPCTL_MTUDISCTIMEOUT = 12
+ IPCTL_RANDOMID = 22
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_STATS = 24
+ IPCTL_SUBNETSARELOCAL = 8
+ IPPORT_ANONMAX = 65535
+ IPPORT_ANONMIN = 49152
+ IPPORT_RESERVED = 1024
+ IPPORT_RESERVEDMAX = 1023
+ IPPORT_RESERVEDMIN = 600
+ IPPROTO_AH = 51
+ IPPROTO_CARP = 112
+ IPPROTO_DCCP = 33
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GRE = 47
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IGMP = 2
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPIP = 4
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_IPV6_ICMP = 58
+ IPPROTO_L2TP = 115
+ IPPROTO_MAX = 256
+ IPPROTO_MOBILE = 55
+ IPPROTO_NONE = 59
+ IPPROTO_PFSYNC = 240
+ IPPROTO_PIM = 103
+ IPPROTO_PUP = 12
+ IPPROTO_RAW = 255
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_SCTP = 132
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_UDP = 17
+ IPPROTO_VRRP = 112
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_ADDRCTLPOLICY = 38
+ IPV6CTL_ANONPORTMAX = 29
+ IPV6CTL_ANONPORTMIN = 28
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_AUTO_LINKLOCAL = 35
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_GIF_HLIM = 19
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_IFQ = 42
+ IPV6CTL_KAME_VERSION = 20
+ IPV6CTL_KEEPFAITH = 13
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_LOWPORTMAX = 31
+ IPV6CTL_LOWPORTMIN = 30
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_RR_PRUNE = 22
+ IPV6CTL_RTADV_MAXROUTES = 43
+ IPV6CTL_RTADV_NUMROUTES = 44
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6CTL_V6ONLY = 24
+ IPV6PORT_ANONMAX = 65535
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_RESERVEDMAX = 1023
+ IPV6PORT_RESERVEDMIN = 600
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_DONTFRAG = 62
+ IPV6_DSTOPTS = 50
+ IPV6_FAITH = 29
+ IPV6_HOPLIMIT = 47
+ IPV6_HOPOPTS = 49
+ IPV6_IPSEC_POLICY = 28
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_NEXTHOP = 48
+ IPV6_PATHMTU = 44
+ IPV6_PKTINFO = 46
+ IPV6_PORTALGO = 17
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_PREFER_TEMPADDR = 63
+ IPV6_RECVDSTOPTS = 40
+ IPV6_RECVHOPLIMIT = 37
+ IPV6_RECVHOPOPTS = 39
+ IPV6_RECVPATHMTU = 43
+ IPV6_RECVPKTINFO = 36
+ IPV6_RECVRTHDR = 38
+ IPV6_RECVTCLASS = 57
+ IPV6_RTHDR = 51
+ IPV6_RTHDRDSTOPTS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_SOCKOPT_RESERVED1 = 3
+ IPV6_TCLASS = 61
+ IPV6_UNICAST_HOPS = 4
+ IPV6_USE_MIN_MTU = 42
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 13
+ IP_ERRORMTU = 21
+ IP_HDRINCL = 2
+ IP_IPSEC_POLICY = 22
+ IP_MAX_MEMBERSHIPS = 20
+ IP_MINTTL = 24
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_OPTIONS = 1
+ IP_PKTINFO = 25
+ IP_PORTALGO = 18
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVIF = 20
+ IP_RECVOPTS = 5
+ IP_RECVPKTINFO = 26
+ IP_RECVRETOPTS = 6
+ IP_RECVTTL = 23
+ IP_RETOPTS = 8
+ IP_SENDSRCADDR = 7
+ IP_TOS = 3
+ IP_TTL = 4
+ LITTLE_ENDIAN = 1234
+ 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
+ NBBY = 8
+ NET_RT_DUMP = 1
+ NET_RT_FLAGS = 2
+ NET_RT_IFLIST = 6
+ NET_RT_OIFLIST = 5
+ NET_RT_OOIFLIST = 4
+ NET_RT_OOOIFLIST = 3
+ NFDBITS = 32
+ NODEVMAJOR = -1
+ PCB_ALL = 0
+ PCB_SLOP = 20
+ PDP_ENDIAN = 3412
+ 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
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SCM_CREDS = 0x10
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x08
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIN6_LEN = 0
+ SIZE_MAX = 18446744073709551615
+ 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
+ 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
+ UIO_MAXIOV = 1024
+ 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_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ 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_SS_MAXSIZE = 128
+ 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_SIGTYPES_H_ = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UIO_H_ = 0
+ X_X86_64_BSWAP_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ X_X86_64_TYPES_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 */
+
+// $NetBSD: in.h,v 1.108 2018/11/09 11:46:28 maya Exp $
+
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// $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 Uint8_t = X__uint8_t /* in.h:46:19 */
+
+type Uint32_t = X__uint32_t /* in.h:51:20 */
+
+// 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
+
+// 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 In_addr_t = X__in_addr_t /* in.h:58:21 */
+
+type In_port_t = X__in_port_t /* in.h:63:21 */
+
+type Sa_family_t = X__sa_family_t /* in.h:68:23 */
+
+// Protocols
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// sysctl placeholder for (FAST_)IPSEC
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr X__in_addr_t } /* in.h:158:1 */
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+//
+// By byte-swapping the constants, we avoid ever having to byte-swap IP
+// addresses inside the kernel. Unfortunately, user-level programs rely
+// on these macros not doing byte-swapping.
+
+// These ones aren't really net and host fields, but routing needn't know.
+
+// Socket address, internet style.
+type Sockaddr_in = struct {
+ Fsin_len Uint8_t
+ Fsin_family X__sa_family_t
+ Fsin_port X__in_port_t
+ Fsin_addr struct{ Fs_addr X__in_addr_t }
+ Fsin_zero [8]X__int8_t
+} /* in.h:241:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr X__in_addr_t }
+ Fip_opts [40]X__int8_t
+} /* in.h:258:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// The add and drop membership option numbers need to match with the v6 ones
+
+// Information sent in the control message of a datagram socket for
+// IP_PKTINFO and IP_RECVPKTINFO.
+type In_pktinfo = struct {
+ Fipi_addr struct{ Fs_addr X__in_addr_t }
+ Fipi_ifindex uint32
+} /* in.h:301:1 */
+
+// Defaults and limits for options
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr X__in_addr_t }
+ Fimr_interface struct{ Fs_addr X__in_addr_t }
+} /* in.h:318:1 */
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+// IPCTL_DEFMTU=4, never implemented
+
+// INET6 stuff
+// $NetBSD: in6.h,v 1.95.2.1 2019/09/06 19:43:00 martin Exp $
+// $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// $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: socket.h,v 1.129 2018/11/04 16:30:29 christos Exp $
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.6 (Berkeley) 5/3/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>
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+// $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 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 */
+
+// $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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+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: 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.
+
+type Int8_t = X__int8_t /* types.h:54:18 */
+
+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 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
+
+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 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 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 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 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 */
+
+// $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 */
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// Local port number conventions:
+//
+// Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+// unless a kernel is compiled with IPNOPRIVPORTS defined.
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+//
+// The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+// that is settable by sysctl(3); net.inet.ip.anonportmin and
+// net.inet.ip.anonportmax respectively.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+// and exists only for FreeBSD compatibility purposes.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes.
+// This convention is based on "vouchsafe" principles only.
+// It is only secure if you trust the remote host to restrict these ports.
+// The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+} /* in6.h:123:1 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len Uint8_t
+ Fsin6_family X__sa_family_t
+ Fsin6_port X__in_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+} /* in6.h:146:1 */
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// KAME Scope Values
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Multicast Scope
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+// no hdrincl
+// The join and leave membership option numbers need to match with the v4 ones
+// RFC2292 options
+
+// new socket options introduced in RFC3542
+
+// more new socket options introduced in RFC3542
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:459:1 */
+
+// IPV6_PKTINFO: Packet information(RFC2292 sec 5)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:467:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len Uint8_t
+ Fsin6_family X__sa_family_t
+ Fsin6_port X__in_port_t
+ Fsin6_flowinfo Uint32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]X__uint8_t
+ }
+ }
+ Fsin6_scope_id Uint32_t
+ }
+ Fip6m_mtu Uint32_t
+} /* in6.h:475:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go b/vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go
new file mode 100644
index 00000000..8cd4b618
--- /dev/null
+++ b/vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go
@@ -0,0 +1,1252 @@
+// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_openbsd_amd64.go -pkgname in', DO NOT EDIT.
+
+package in
+
+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
+ ICMP6_FILTER = 18
+ INET6_ADDRSTRLEN = 46
+ INET_ADDRSTRLEN = 16
+ IN_CLASSA_MAX = 128
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSB_MAX = 65536
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSD_NSHIFT = 28
+ IN_LOOPBACKNET = 127
+ IN_RFC3021_NSHIFT = 31
+ IPCTL_ARPDOWN = 40
+ IPCTL_ARPQUEUE = 41
+ IPCTL_ARPQUEUED = 36
+ IPCTL_ARPTIMEOUT = 39
+ IPCTL_DEFTTL = 3
+ IPCTL_DIRECTEDBCAST = 6
+ IPCTL_ENCDEBUG = 12
+ IPCTL_FORWARDING = 1
+ IPCTL_IFQUEUE = 30
+ IPCTL_IPPORT_FIRSTAUTO = 7
+ IPCTL_IPPORT_HIFIRSTAUTO = 9
+ IPCTL_IPPORT_HILASTAUTO = 10
+ IPCTL_IPPORT_LASTAUTO = 8
+ IPCTL_IPPORT_MAXQUEUE = 11
+ IPCTL_IPSEC_ALLOCATIONS = 18
+ IPCTL_IPSEC_AUTH_ALGORITHM = 26
+ IPCTL_IPSEC_BYTES = 20
+ IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT = 15
+ IPCTL_IPSEC_ENC_ALGORITHM = 25
+ IPCTL_IPSEC_EXPIRE_ACQUIRE = 14
+ IPCTL_IPSEC_FIRSTUSE = 24
+ IPCTL_IPSEC_IPCOMP_ALGORITHM = 29
+ IPCTL_IPSEC_REQUIRE_PFS = 16
+ IPCTL_IPSEC_SOFT_ALLOCATIONS = 17
+ IPCTL_IPSEC_SOFT_BYTES = 19
+ IPCTL_IPSEC_SOFT_FIRSTUSE = 23
+ IPCTL_IPSEC_SOFT_TIMEOUT = 22
+ IPCTL_IPSEC_STATS = 13
+ IPCTL_IPSEC_TIMEOUT = 21
+ IPCTL_MAXID = 42
+ IPCTL_MFORWARDING = 31
+ IPCTL_MRTMFC = 37
+ IPCTL_MRTPROTO = 34
+ IPCTL_MRTSTATS = 35
+ IPCTL_MRTVIF = 38
+ IPCTL_MTUDISC = 27
+ IPCTL_MTUDISCTIMEOUT = 28
+ IPCTL_MULTIPATH = 32
+ IPCTL_SENDREDIRECTS = 2
+ IPCTL_SOURCEROUTE = 5
+ IPCTL_STATS = 33
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVED = 1024
+ IPPORT_USERRESERVED = 49151
+ IPPROTO_AH = 51
+ IPPROTO_CARP = 112
+ IPPROTO_DIVERT = 258
+ IPPROTO_DONE = 257
+ IPPROTO_DSTOPTS = 60
+ IPPROTO_EGP = 8
+ IPPROTO_ENCAP = 98
+ IPPROTO_EON = 80
+ IPPROTO_ESP = 50
+ IPPROTO_ETHERIP = 97
+ IPPROTO_FRAGMENT = 44
+ IPPROTO_GGP = 3
+ IPPROTO_GRE = 47
+ IPPROTO_HOPOPTS = 0
+ IPPROTO_ICMP = 1
+ IPPROTO_ICMPV6 = 58
+ IPPROTO_IDP = 22
+ IPPROTO_IGMP = 2
+ IPPROTO_IP = 0
+ IPPROTO_IPCOMP = 108
+ IPPROTO_IPIP = 4
+ IPPROTO_IPV4 = 4
+ IPPROTO_IPV6 = 41
+ IPPROTO_MAX = 256
+ IPPROTO_MAXID = 259
+ IPPROTO_MOBILE = 55
+ IPPROTO_MPLS = 137
+ IPPROTO_NONE = 59
+ IPPROTO_PFSYNC = 240
+ IPPROTO_PIM = 103
+ IPPROTO_PUP = 12
+ IPPROTO_RAW = 255
+ IPPROTO_ROUTING = 43
+ IPPROTO_RSVP = 46
+ IPPROTO_SCTP = 132
+ IPPROTO_TCP = 6
+ IPPROTO_TP = 29
+ IPPROTO_UDP = 17
+ IPPROTO_UDPLITE = 136
+ IPSEC6_OUTSA = 56
+ IPSEC_AUTH_LEVEL_DEFAULT = 1
+ IPSEC_ESP_NETWORK_LEVEL_DEFAULT = 1
+ IPSEC_ESP_TRANS_LEVEL_DEFAULT = 1
+ IPSEC_IPCOMP_LEVEL_DEFAULT = 1
+ IPSEC_LEVEL_AVAIL = 0x01
+ IPSEC_LEVEL_BYPASS = 0x00
+ IPSEC_LEVEL_DEFAULT = 1
+ IPSEC_LEVEL_NONE = 0x00
+ IPSEC_LEVEL_REQUIRE = 0x03
+ IPSEC_LEVEL_UNIQUE = 0x04
+ IPSEC_LEVEL_USE = 0x02
+ IPV6CTL_ACCEPT_RTADV = 12
+ IPV6CTL_AUTO_FLOWLABEL = 17
+ IPV6CTL_DAD_COUNT = 16
+ IPV6CTL_DAD_PENDING = 49
+ IPV6CTL_DEFHLIM = 3
+ IPV6CTL_DEFMCASTHLIM = 18
+ IPV6CTL_FORWARDING = 1
+ IPV6CTL_FORWSRCRT = 5
+ IPV6CTL_HDRNESTLIMIT = 15
+ IPV6CTL_IFQUEUE = 51
+ IPV6CTL_LOG_INTERVAL = 14
+ IPV6CTL_MAXDYNROUTES = 48
+ IPV6CTL_MAXFRAGPACKETS = 9
+ IPV6CTL_MAXFRAGS = 41
+ IPV6CTL_MAXID = 55
+ IPV6CTL_MCAST_PMTU = 44
+ IPV6CTL_MFORWARDING = 42
+ IPV6CTL_MRTMFC = 53
+ IPV6CTL_MRTMIF = 52
+ IPV6CTL_MRTPROTO = 8
+ IPV6CTL_MRTSTATS = 7
+ IPV6CTL_MTUDISCTIMEOUT = 50
+ IPV6CTL_MULTIPATH = 43
+ IPV6CTL_NEIGHBORGCTHRESH = 45
+ IPV6CTL_SENDREDIRECTS = 2
+ IPV6CTL_SOIIKEY = 54
+ IPV6CTL_SOURCECHECK = 10
+ IPV6CTL_SOURCECHECK_LOGINT = 11
+ IPV6CTL_STATS = 6
+ IPV6CTL_USE_DEPRECATED = 21
+ IPV6PROTO_MAXID = 259
+ IPV6_AUTH_LEVEL = 53
+ IPV6_AUTOFLOWLABEL = 59
+ IPV6_CHECKSUM = 26
+ IPV6_DEFAULT_MULTICAST_HOPS = 1
+ IPV6_DEFAULT_MULTICAST_LOOP = 1
+ IPV6_DONTFRAG = 62
+ IPV6_DSTOPTS = 50
+ IPV6_ESP_NETWORK_LEVEL = 55
+ IPV6_ESP_TRANS_LEVEL = 54
+ IPV6_HOPLIMIT = 47
+ IPV6_HOPOPTS = 49
+ IPV6_IPCOMP_LEVEL = 60
+ IPV6_JOIN_GROUP = 12
+ IPV6_LEAVE_GROUP = 13
+ IPV6_MINHOPCOUNT = 65
+ IPV6_MULTICAST_HOPS = 10
+ IPV6_MULTICAST_IF = 9
+ IPV6_MULTICAST_LOOP = 11
+ IPV6_NEXTHOP = 48
+ IPV6_PATHMTU = 44
+ IPV6_PIPEX = 63
+ IPV6_PKTINFO = 46
+ IPV6_PORTRANGE = 14
+ IPV6_PORTRANGE_DEFAULT = 0
+ IPV6_PORTRANGE_HIGH = 1
+ IPV6_PORTRANGE_LOW = 2
+ IPV6_RECVDSTOPTS = 40
+ IPV6_RECVDSTPORT = 64
+ IPV6_RECVHOPLIMIT = 37
+ IPV6_RECVHOPOPTS = 39
+ IPV6_RECVPATHMTU = 43
+ IPV6_RECVPKTINFO = 36
+ IPV6_RECVRTHDR = 38
+ IPV6_RECVTCLASS = 57
+ IPV6_RTABLE = 0x1021
+ IPV6_RTHDR = 51
+ IPV6_RTHDRDSTOPTS = 35
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_TYPE_0 = 0
+ IPV6_TCLASS = 61
+ IPV6_UNICAST_HOPS = 4
+ IPV6_USE_MIN_MTU = 42
+ IPV6_V6ONLY = 27
+ IP_ADD_MEMBERSHIP = 12
+ IP_AUTH_LEVEL = 20
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DROP_MEMBERSHIP = 13
+ IP_ESP_NETWORK_LEVEL = 22
+ IP_ESP_TRANS_LEVEL = 21
+ IP_HDRINCL = 2
+ IP_IPCOMP_LEVEL = 29
+ IP_IPDEFTTL = 37
+ IP_IPSECFLOWINFO = 36
+ IP_IPSEC_LOCAL_AUTH = 27
+ IP_IPSEC_LOCAL_CRED = 25
+ IP_IPSEC_LOCAL_ID = 23
+ IP_IPSEC_REMOTE_AUTH = 28
+ IP_IPSEC_REMOTE_CRED = 26
+ IP_IPSEC_REMOTE_ID = 24
+ IP_MAX_MEMBERSHIPS = 4095
+ IP_MINTTL = 32
+ IP_MIN_MEMBERSHIPS = 15
+ IP_MULTICAST_IF = 9
+ IP_MULTICAST_LOOP = 11
+ IP_MULTICAST_TTL = 10
+ IP_OPTIONS = 1
+ IP_PIPEX = 34
+ IP_PORTRANGE = 19
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+ IP_RECVDSTADDR = 7
+ IP_RECVDSTPORT = 33
+ IP_RECVIF = 30
+ IP_RECVOPTS = 5
+ IP_RECVRETOPTS = 6
+ IP_RECVRTABLE = 35
+ IP_RECVTTL = 31
+ IP_RETOPTS = 8
+ IP_RTABLE = 0x1021
+ IP_SENDSRCADDR = 7
+ IP_TOS = 3
+ IP_TTL = 4
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ SIN6_LEN = 0
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_IN_ADDR_DECLARED = 0
+ X_IN_TYPES_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_NETINET6_IN6_H_ = 0
+ X_NETINET_IN_H_ = 0
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SA_FAMILY_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SOCKLEN_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: in.h,v 1.141 2021/06/02 00:09:57 dlg Exp $
+// $NetBSD: in.h,v 1.20 1996/02/13 23:41:47 christos Exp $
+
+// Copyright (c) 1982, 1986, 1990, 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.
+
+// Constants and structures defined by the internet system,
+// Per RFC 790, September 1981, and numerous additions.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// <sys/_endian.h> is pulled in by <sys/types.h>
+
+type Sa_family_t = X__sa_family_t /* in.h:58:23 */ // sockaddr address family type
+
+type In_addr_t = X__in_addr_t /* in.h:63:21 */ // base type for internet address
+type In_port_t = X__in_port_t /* in.h:64:21 */ // IP port type
+
+// Protocols
+
+// Only used internally, so it can be outside the range of valid IP protocols
+
+// From FreeBSD:
+//
+// Local port number conventions:
+//
+// When a user does a bind(2) or connect(2) with a port number of zero,
+// a non-conflicting local port address is chosen.
+// The default range is IPPORT_RESERVED through
+// IPPORT_USERRESERVED, although that is settable by sysctl.
+//
+// A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+// default assignment range.
+//
+// The value IP_PORTRANGE_DEFAULT causes the default behavior.
+//
+// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+// into the "high" range. These are reserved for client outbound connections
+// which do not want to be filtered by any firewalls.
+//
+// The value IP_PORTRANGE_LOW changes the range to the "low" are
+// that is (by convention) restricted to privileged processes. This
+// convention is based on "vouchsafe" principles only. It is only secure
+// if you trust the remote host to restrict these ports.
+//
+// The default range of ports and the high range can be changed by
+// sysctl(3). (net.inet.ip.port{hi}{first,last})
+//
+// Changing those values has bad security implications if you are
+// using a a stateless firewall that is allowing packets outside of that
+// range in order to allow transparent outgoing connections.
+//
+// Such a firewall configuration will generally depend on the use of these
+// default values. If you change them, you may find your Security
+// Administrator looking for you with a heavy object.
+
+// Ports < IPPORT_RESERVED are reserved for
+// privileged processes (e.g. root).
+// Ports > IPPORT_USERRESERVED are reserved
+// for servers, not necessarily privileged.
+
+// Default local port range to use by setting IP_PORTRANGE_HIGH
+
+// IP Version 4 Internet address (a structure for historical reasons)
+type In_addr = struct{ Fs_addr In_addr_t } /* in.h:167:1 */
+
+// last return value of *_input(), meaning "all job for this pkt is done".
+
+// Definitions of bits in internet address integers.
+// On subnets, the decomposition of addresses to host and net parts
+// is done according to subnet mask, not the masks here.
+//
+// By byte-swapping the constants, we avoid ever having to byte-swap IP
+// addresses inside the kernel. Unfortunately, user-level programs rely
+// on these macros not doing byte-swapping.
+
+// These ones aren't really net and host fields, but routing needn't know.
+
+// IP Version 4 socket address.
+type Sockaddr_in = struct {
+ Fsin_len U_int8_t
+ Fsin_family Sa_family_t
+ Fsin_port In_port_t
+ Fsin_addr struct{ Fs_addr In_addr_t }
+ Fsin_zero [8]Int8_t
+} /* in.h:258:1 */
+
+// Structure used to describe IP options.
+// Used to store options internally, to pass them to a process,
+// or to restore options retrieved earlier.
+// The ip_dst is used for the first-hop gateway when using a source route
+// (this gets put into the header proper).
+type Ip_opts = struct {
+ Fip_dst struct{ Fs_addr In_addr_t }
+ Fip_opts [40]Int8_t
+} /* in.h:273:1 */
+
+// Options for use with [gs]etsockopt at the IP level.
+// First word of comment is data type; bool is stored in int.
+// source address to use
+
+// Security levels - IPsec, not IPSO
+
+// Defaults and limits for options
+// The imo_membership vector for each socket starts at IP_MIN_MEMBERSHIPS
+// and is dynamically allocated at run-time, bounded by IP_MAX_MEMBERSHIPS,
+// and is reallocated when needed, sized according to a power-of-two increment.
+
+// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+type Ip_mreq = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_interface struct{ Fs_addr In_addr_t }
+} /* in.h:359:1 */
+
+type Ip_mreqn = struct {
+ Fimr_multiaddr struct{ Fs_addr In_addr_t }
+ Fimr_address struct{ Fs_addr In_addr_t }
+ Fimr_ifindex int32
+} /* in.h:364:1 */
+
+// Argument for IP_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+// Buffer lengths for strings containing printable IP addresses
+
+// Definitions for inet sysctl operations.
+//
+// Third level is protocol number.
+// Fourth level is desired variable within that protocol.
+
+// Names for IP sysctl objects
+
+// INET6 stuff
+// $OpenBSD: in6.h,v 1.109 2021/06/02 00:20:50 dlg Exp $
+// $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $
+
+// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+// 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 project 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 PROJECT 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 PROJECT 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.
+
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)in.h 8.3 (Berkeley) 1/3/94
+
+// Identification of the network protocol stack
+// for *BSD-current/release: http://www.kame.net/dev/cvsweb2.cgi/kame/COVERAGE
+// has the table of implementation/integration differences.
+
+// IPv6 address
+type In6_addr = struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+} /* in6.h:81:1 */
+
+// Socket address for IPv6
+type Sockaddr_in6 = struct {
+ Fsin6_len U_int8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo U_int32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fsin6_scope_id U_int32_t
+} /* in6.h:106:1 */
+
+// IPv6 route structure
+type Route_in6 = struct {
+ Fro_rt uintptr
+ Fro_tableid U_long
+ Fro_dst struct {
+ Fsin6_len U_int8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo U_int32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fsin6_scope_id U_int32_t
+ }
+ F__ccgo_pad1 [4]byte
+} /* in6.h:150:1 */
+
+// Definition of some useful macros to handle IP6 addresses
+
+// Macros started with IPV6_ADDR is KAME local
+
+// Unspecified
+
+// Loopback
+
+// IPv4 compatible
+
+// Mapped
+
+// Unicast Scope
+// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+
+// Multicast
+
+// Options for use with [gs]etsockopt at the IPV6 level.
+// First word of comment is data type; bool is stored in int.
+
+// new socket options introduced in RFC3542
+
+// More new socket options introduced in RFC3542
+
+// to define items, should talk with KAME guys first, for *BSD compatibility
+
+// Defaults and limits for options
+
+// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+type Ipv6_mreq = struct {
+ Fipv6mr_multiaddr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fipv6mr_interface uint32
+} /* in6.h:366:1 */
+
+// IPV6_PKTINFO: Packet information(RFC3542 sec 6)
+type In6_pktinfo = struct {
+ Fipi6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fipi6_ifindex uint32
+} /* in6.h:374:1 */
+
+// Control structure for IPV6_RECVPATHMTU socket option.
+// XXX Not allowed here by POSIX, but required by RFC 3542, so go
+// XXX with the code on the pavement.
+type Ip6_mtuinfo = struct {
+ Fip6m_addr struct {
+ Fsin6_len U_int8_t
+ Fsin6_family Sa_family_t
+ Fsin6_port In_port_t
+ Fsin6_flowinfo U_int32_t
+ Fsin6_addr struct {
+ F__u6_addr struct {
+ F__ccgo_pad1 [0]uint32
+ F__u6_addr8 [16]U_int8_t
+ }
+ }
+ Fsin6_scope_id U_int32_t
+ }
+ Fip6m_mtu U_int32_t
+} /* in6.h:384:1 */
+
+// Argument for IPV6_PORTRANGE:
+// - which range to search when port is unspecified at bind() or connect()
+
+type Socklen_t = X__socklen_t /* in6.h:401:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/nodmesg.go b/vendor/modernc.org/libc/nodmesg.go
new file mode 100644
index 00000000..92e494b2
--- /dev/null
+++ b/vendor/modernc.org/libc/nodmesg.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !libc.dmesg
+// +build !libc.dmesg
+
+package libc // import "modernc.org/libc"
+
+const dmesgs = false
+
+func dmesg(s string, args ...interface{}) {}
diff --git a/vendor/modernc.org/libc/nofsync.go b/vendor/modernc.org/libc/nofsync.go
new file mode 100644
index 00000000..205c2af0
--- /dev/null
+++ b/vendor/modernc.org/libc/nofsync.go
@@ -0,0 +1,10 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build libc.nofsync
+// +build libc.nofsync
+
+package libc // import "modernc.org/libc"
+
+const noFsync = true
diff --git a/vendor/modernc.org/libc/poll/capi_darwin_amd64.go b/vendor/modernc.org/libc/poll/capi_darwin_amd64.go
new file mode 100644
index 00000000..d2930fc0
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo poll/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 poll/poll_darwin_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/poll/capi_darwin_arm64.go b/vendor/modernc.org/libc/poll/capi_darwin_arm64.go
new file mode 100644
index 00000000..b5e9cffd
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_darwin_arm64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_freebsd_386.go b/vendor/modernc.org/libc/poll/capi_freebsd_386.go
new file mode 100644
index 00000000..90c3cc8f
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_freebsd_386.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_freebsd_amd64.go b/vendor/modernc.org/libc/poll/capi_freebsd_amd64.go
new file mode 100644
index 00000000..38c70d4f
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_freebsd_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_linux_386.go b/vendor/modernc.org/libc/poll/capi_linux_386.go
new file mode 100644
index 00000000..e9770439
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_386.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_linux_amd64.go b/vendor/modernc.org/libc/poll/capi_linux_amd64.go
new file mode 100644
index 00000000..d5990792
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_linux_arm.go b/vendor/modernc.org/libc/poll/capi_linux_arm.go
new file mode 100644
index 00000000..4c537074
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_arm.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_linux_arm64.go b/vendor/modernc.org/libc/poll/capi_linux_arm64.go
new file mode 100644
index 00000000..9035dda6
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_arm64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_linux_s390x.go b/vendor/modernc.org/libc/poll/capi_linux_s390x.go
new file mode 100644
index 00000000..36ce787e
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_s390x.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_netbsd_amd64.go b/vendor/modernc.org/libc/poll/capi_netbsd_amd64.go
new file mode 100644
index 00000000..1f0d73f7
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_netbsd_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/capi_openbsd_amd64.go b/vendor/modernc.org/libc/poll/capi_openbsd_amd64.go
new file mode 100644
index 00000000..bb5c3230
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo poll/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 poll/poll_openbsd_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/poll/poll_darwin_amd64.go b/vendor/modernc.org/libc/poll/poll_darwin_amd64.go
new file mode 100644
index 00000000..c05a90c2
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_darwin_amd64.go
@@ -0,0 +1,157 @@
+// Code generated by 'ccgo poll/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 poll/poll_darwin_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLATTRIB = 0x0400
+ POLLERR = 0x0008
+ POLLEXTEND = 0x0200
+ POLLHUP = 0x0010
+ POLLIN = 0x0001
+ POLLNLINK = 0x0800
+ POLLNVAL = 0x0020
+ POLLOUT = 0x0004
+ POLLPRI = 0x0002
+ POLLRDBAND = 0x0080
+ POLLRDNORM = 0x0040
+ POLLSTANDARD = 511
+ POLLWRBAND = 0x0100
+ POLLWRITE = 0x1000
+ POLLWRNORM = 4
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_POLL_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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+
+// This file is intended to be compatible with the traditional poll.h.
+
+// Requestable events. If poll(2) finds any of these set, they are
+// copied to revents on return.
+
+// FreeBSD extensions: polling on a regular file might return one
+// of these events (currently only supported on local filesystems).
+
+// These events are set if they occur regardless of whether they were
+// requested.
+
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:96:1 */
+
+type Nfds_t = uint32 /* poll.h:102:22 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_darwin_arm64.go b/vendor/modernc.org/libc/poll/poll_darwin_arm64.go
new file mode 100644
index 00000000..30ae157b
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_darwin_arm64.go
@@ -0,0 +1,157 @@
+// Code generated by 'ccgo poll/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 poll/poll_darwin_arm64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLATTRIB = 0x0400
+ POLLERR = 0x0008
+ POLLEXTEND = 0x0200
+ POLLHUP = 0x0010
+ POLLIN = 0x0001
+ POLLNLINK = 0x0800
+ POLLNVAL = 0x0020
+ POLLOUT = 0x0004
+ POLLPRI = 0x0002
+ POLLRDBAND = 0x0080
+ POLLRDNORM = 0x0040
+ POLLSTANDARD = 511
+ POLLWRBAND = 0x0100
+ POLLWRITE = 0x1000
+ POLLWRNORM = 4
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_POLL_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 */
+
+// Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+
+// This file is intended to be compatible with the traditional poll.h.
+
+// Requestable events. If poll(2) finds any of these set, they are
+// copied to revents on return.
+
+// FreeBSD extensions: polling on a regular file might return one
+// of these events (currently only supported on local filesystems).
+
+// These events are set if they occur regardless of whether they were
+// requested.
+
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:96:1 */
+
+type Nfds_t = uint32 /* poll.h:102:22 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_freebsd_386.go b/vendor/modernc.org/libc/poll/poll_freebsd_386.go
new file mode 100644
index 00000000..d90135e8
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_freebsd_386.go
@@ -0,0 +1,882 @@
+// Code generated by 'ccgo poll/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 poll/poll_freebsd_386.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ INFTIM = -1
+ POLLERR = 0x0008
+ POLLHUP = 0x0010
+ POLLIN = 0x0001
+ POLLINIGNEOF = 0x2000
+ POLLNVAL = 0x0020
+ POLLOUT = 0x0004
+ POLLPRI = 0x0002
+ POLLRDBAND = 0x0080
+ POLLRDNORM = 0x0040
+ POLLSTANDARD = 511
+ POLLWRBAND = 0x0100
+ POLLWRNORM = 4
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_POLL_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// This file is intended to be compatible with the traditional poll.h.
+
+type Nfds_t = uint32 /* poll.h:42:22 */
+
+// This structure is passed as an array to poll(2).
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:47:1 */
+
+// Requestable events. If poll(2) finds any of these set, they are
+// copied to revents on return.
+// XXX Note that FreeBSD doesn't make much distinction between POLLPRI
+// and POLLRDBAND since none of the file types have distinct priority
+// bands - and only some have an urgent "mode".
+// XXX Note POLLIN isn't really supported in true SVSV terms. Under SYSV
+// POLLIN includes all of normal, band and urgent data. Most poll handlers
+// on FreeBSD only treat it as "normal" data.
+
+// General FreeBSD extension (currently only supported for sockets):
+
+// These events are set if they occur regardless of whether they were
+// requested.
+
+// Request that poll() wait forever.
+// XXX in SYSV, this is defined in stropts.h, which is not included
+// by poll.h.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46: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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type Sigset_t = X__sigset_t /* poll.h:108:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_freebsd_amd64.go b/vendor/modernc.org/libc/poll/poll_freebsd_amd64.go
new file mode 100644
index 00000000..38327a13
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_freebsd_amd64.go
@@ -0,0 +1,887 @@
+// Code generated by 'ccgo poll/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 poll/poll_freebsd_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ INFTIM = -1
+ POLLERR = 0x0008
+ POLLHUP = 0x0010
+ POLLIN = 0x0001
+ POLLINIGNEOF = 0x2000
+ POLLNVAL = 0x0020
+ POLLOUT = 0x0004
+ POLLPRI = 0x0002
+ POLLRDBAND = 0x0080
+ POLLRDNORM = 0x0040
+ POLLSTANDARD = 511
+ POLLWRBAND = 0x0100
+ POLLWRNORM = 4
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_POLL_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1997 Peter Wemm <peter@freebsd.org>
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// This file is intended to be compatible with the traditional poll.h.
+
+type Nfds_t = uint32 /* poll.h:42:22 */
+
+// This structure is passed as an array to poll(2).
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:47:1 */
+
+// Requestable events. If poll(2) finds any of these set, they are
+// copied to revents on return.
+// XXX Note that FreeBSD doesn't make much distinction between POLLPRI
+// and POLLRDBAND since none of the file types have distinct priority
+// bands - and only some have an urgent "mode".
+// XXX Note POLLIN isn't really supported in true SVSV terms. Under SYSV
+// POLLIN includes all of normal, band and urgent data. Most poll handlers
+// on FreeBSD only treat it as "normal" data.
+
+// General FreeBSD extension (currently only supported for sockets):
+
+// These events are set if they occur regardless of whether they were
+// requested.
+
+// Request that poll() wait forever.
+// XXX in SYSV, this is defined in stropts.h, which is not included
+// by poll.h.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46: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
+ }
+} /* timespec.h:60:1 */
+
+type Sigset_t = X__sigset_t /* poll.h:108:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_linux_386.go b/vendor/modernc.org/libc/poll/poll_linux_386.go
new file mode 100644
index 00000000..f19a2638
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_linux_386.go
@@ -0,0 +1,531 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_386.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLERR = 0x008
+ POLLHUP = 0x010
+ POLLIN = 0x001
+ POLLNVAL = 0x020
+ POLLOUT = 0x004
+ POLLPRI = 0x002
+ POLLRDBAND = 0x080
+ POLLRDNORM = 0x040
+ POLLWRBAND = 0x200
+ POLLWRNORM = 0x100
+ X_ATFILE_SOURCE = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_POLL_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Compatibility definitions for System V `poll' interface.
+// Copyright (C) 1994-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Get the platform dependent bits of `poll'.
+// 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
+// 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/>.
+
+// Event types that can be polled for. These bits may be set in `events'
+// to indicate the interesting event types; they will appear in `revents'
+// to indicate the status of the file descriptor.
+
+// These values are defined in XPG4.2.
+
+// Event types always implicitly polled for. These bits need not be set in
+// `events', but they will appear in `revents' to indicate the status of
+// the file descriptor.
+
+// Type used for the number of file descriptors.
+type Nfds_t = uint32 /* poll.h:33:27 */
+
+// Data structure describing a polling request.
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:36:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_linux_amd64.go b/vendor/modernc.org/libc/poll/poll_linux_amd64.go
new file mode 100644
index 00000000..104c76d6
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_linux_amd64.go
@@ -0,0 +1,540 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLERR = 0x008
+ POLLHUP = 0x010
+ POLLIN = 0x001
+ POLLNVAL = 0x020
+ POLLOUT = 0x004
+ POLLPRI = 0x002
+ POLLRDBAND = 0x080
+ POLLRDNORM = 0x040
+ POLLWRBAND = 0x200
+ POLLWRNORM = 0x100
+ X_ATFILE_SOURCE = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_POLL_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// Compatibility definitions for System V `poll' interface.
+// Copyright (C) 1994-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Get the platform dependent bits of `poll'.
+// 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
+// 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/>.
+
+// Event types that can be polled for. These bits may be set in `events'
+// to indicate the interesting event types; they will appear in `revents'
+// to indicate the status of the file descriptor.
+
+// These values are defined in XPG4.2.
+
+// Event types always implicitly polled for. These bits need not be set in
+// `events', but they will appear in `revents' to indicate the status of
+// the file descriptor.
+
+// Type used for the number of file descriptors.
+type Nfds_t = uint64 /* poll.h:33:27 */
+
+// Data structure describing a polling request.
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:36:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_linux_arm.go b/vendor/modernc.org/libc/poll/poll_linux_arm.go
new file mode 100644
index 00000000..ea5de1cd
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_linux_arm.go
@@ -0,0 +1,560 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_arm.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLERR = 0x008
+ POLLHUP = 0x010
+ POLLIN = 0x001
+ POLLNVAL = 0x020
+ POLLOUT = 0x004
+ POLLPRI = 0x002
+ POLLRDBAND = 0x080
+ POLLRDNORM = 0x040
+ POLLWRBAND = 0x200
+ POLLWRNORM = 0x100
+ X_ATFILE_SOURCE = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_POLL_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Compatibility definitions for System V `poll' interface.
+// Copyright (C) 1994-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Get the platform dependent bits of `poll'.
+// 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
+// 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/>.
+
+// Event types that can be polled for. These bits may be set in `events'
+// to indicate the interesting event types; they will appear in `revents'
+// to indicate the status of the file descriptor.
+
+// These values are defined in XPG4.2.
+
+// Event types always implicitly polled for. These bits need not be set in
+// `events', but they will appear in `revents' to indicate the status of
+// the file descriptor.
+
+// Type used for the number of file descriptors.
+type Nfds_t = uint32 /* poll.h:33:27 */
+
+// Data structure describing a polling request.
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:36:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_linux_arm64.go b/vendor/modernc.org/libc/poll/poll_linux_arm64.go
new file mode 100644
index 00000000..30425679
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_linux_arm64.go
@@ -0,0 +1,575 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_arm64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLERR = 0x008
+ POLLHUP = 0x010
+ POLLIN = 0x001
+ POLLNVAL = 0x020
+ POLLOUT = 0x004
+ POLLPRI = 0x002
+ POLLRDBAND = 0x080
+ POLLRDNORM = 0x040
+ POLLWRBAND = 0x200
+ POLLWRNORM = 0x100
+ X_ATFILE_SOURCE = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_POLL_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Compatibility definitions for System V `poll' interface.
+// Copyright (C) 1994-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Get the platform dependent bits of `poll'.
+// 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
+// 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/>.
+
+// Event types that can be polled for. These bits may be set in `events'
+// to indicate the interesting event types; they will appear in `revents'
+// to indicate the status of the file descriptor.
+
+// These values are defined in XPG4.2.
+
+// Event types always implicitly polled for. These bits need not be set in
+// `events', but they will appear in `revents' to indicate the status of
+// the file descriptor.
+
+// Type used for the number of file descriptors.
+type Nfds_t = uint64 /* poll.h:33:27 */
+
+// Data structure describing a polling request.
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:36:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_linux_s390x.go b/vendor/modernc.org/libc/poll/poll_linux_s390x.go
new file mode 100644
index 00000000..68ab3af6
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_linux_s390x.go
@@ -0,0 +1,538 @@
+// Code generated by 'ccgo poll/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 poll/poll_linux_s390x.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ POLLERR = 0x008
+ POLLHUP = 0x010
+ POLLIN = 0x001
+ POLLNVAL = 0x020
+ POLLOUT = 0x004
+ POLLPRI = 0x002
+ POLLRDBAND = 0x080
+ POLLRDNORM = 0x040
+ POLLWRBAND = 0x200
+ POLLWRNORM = 0x100
+ X_ATFILE_SOURCE = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_POLL_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// Compatibility definitions for System V `poll' interface.
+// Copyright (C) 1994-2020 Free Software 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) 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Get the platform dependent bits of `poll'.
+// 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
+// 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/>.
+
+// Event types that can be polled for. These bits may be set in `events'
+// to indicate the interesting event types; they will appear in `revents'
+// to indicate the status of the file descriptor.
+
+// These values are defined in XPG4.2.
+
+// Event types always implicitly polled for. These bits need not be set in
+// `events', but they will appear in `revents' to indicate the status of
+// the file descriptor.
+
+// Type used for the number of file descriptors.
+type Nfds_t = uint64 /* poll.h:33:27 */
+
+// Data structure describing a polling request.
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:36:1 */
+
+// Define some inlines helping to catch common problems.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_netbsd_amd64.go b/vendor/modernc.org/libc/poll/poll_netbsd_amd64.go
new file mode 100644
index 00000000..727df016
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_netbsd_amd64.go
@@ -0,0 +1,351 @@
+// Code generated by 'ccgo poll/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 poll/poll_netbsd_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ INFTIM = -1
+ POLLERR = 0x0008
+ POLLHUP = 0x0010
+ POLLIN = 0x0001
+ POLLNVAL = 0x0020
+ POLLOUT = 0x0004
+ POLLPRI = 0x0002
+ POLLRDBAND = 0x0080
+ POLLRDNORM = 0x0040
+ POLLWRBAND = 0x0100
+ POLLWRNORM = 4
+ X_AMD64_INT_TYPES_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ 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_POLL_H_ = 0
+ X_SYS_SIGTYPES_H_ = 0
+ X_X86_64_CDEFS_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 */
+
+// $NetBSD: poll.h,v 1.15 2009/11/11 09:48:51 rmind Exp $
+
+// -
+// Copyright (c) 1998 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Charles M. Hannum.
+//
+// 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 Nfds_t = uint32 /* poll.h:37:22 */
+
+type Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:39:1 */
+
+// $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: 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 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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/poll/poll_openbsd_amd64.go b/vendor/modernc.org/libc/poll/poll_openbsd_amd64.go
new file mode 100644
index 00000000..36114dd6
--- /dev/null
+++ b/vendor/modernc.org/libc/poll/poll_openbsd_amd64.go
@@ -0,0 +1,480 @@
+// Code generated by 'ccgo poll/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 poll/poll_openbsd_amd64.go -pkgname poll', DO NOT EDIT.
+
+package poll
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ INFTIM = -1
+ POLLERR = 0x0008
+ POLLHUP = 0x0010
+ POLLIN = 0x0001
+ POLLNORM = 64
+ POLLNVAL = 0x0020
+ POLLOUT = 0x0004
+ POLLPRI = 0x0002
+ POLLRDBAND = 0x0080
+ POLLRDNORM = 0x0040
+ POLLWRBAND = 0x0100
+ POLLWRNORM = 4
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_RET_PROTECTOR = 1
+ X_SIGSET_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_POLL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMESPEC_DECLARED = 0
+ X_TIME_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: poll.h,v 1.3 2003/10/29 16:41:13 deraadt Exp $
+
+// Written by Theo de Raadt, Public Domain
+//
+// Typical poll() implementations expect poll.h to be in /usr/include.
+// However this is not a convenient place for the real definitions.
+// $OpenBSD: poll.h,v 1.15 2016/06/07 06:12:37 deraadt Exp $
+
+// Copyright (c) 1996 Theo de Raadt
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 Pollfd = struct {
+ Ffd int32
+ Fevents int16
+ Frevents int16
+} /* poll.h:31:9 */
+
+// $OpenBSD: poll.h,v 1.3 2003/10/29 16:41:13 deraadt Exp $
+
+// Written by Theo de Raadt, Public Domain
+//
+// Typical poll() implementations expect poll.h to be in /usr/include.
+// However this is not a convenient place for the real definitions.
+// $OpenBSD: poll.h,v 1.15 2016/06/07 06:12:37 deraadt Exp $
+
+// Copyright (c) 1996 Theo de Raadt
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 Pollfd_t = Pollfd /* poll.h:35:3 */
+
+type Nfds_t = uint32 /* poll.h:37:22 */
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+type Sigset_t = uint32 /* poll.h:64:22 */
+
+type Time_t = X__time_t /* poll.h:69:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* poll.h:74:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/printf.go b/vendor/modernc.org/libc/printf.go
new file mode 100644
index 00000000..ce580daf
--- /dev/null
+++ b/vendor/modernc.org/libc/printf.go
@@ -0,0 +1,592 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "bytes"
+ "fmt"
+ "strconv"
+ "strings"
+ "unsafe"
+)
+
+const (
+ modNone = iota
+ modHH
+ modH
+ modL
+ modLL
+ modQ
+ modCapitalL
+ modJ
+ modZ
+ modCapitalZ
+ modT
+ mod32
+ mod64
+)
+
+// Format of the format string
+//
+// The format string is a character string, beginning and ending in its initial
+// shift state, if any. The format string is composed of zero or more
+// directives: ordinary characters (not %), which are copied unchanged to
+// the output stream; and conversion specifications, each of which results in
+// fetching zero or more subsequent arguments.
+func printf(format, args uintptr) []byte {
+ format0 := format
+ args0 := args
+ buf := bytes.NewBuffer(nil)
+ for {
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case '%':
+ format = printfConversion(buf, format, &args)
+ case 0:
+ if dmesgs {
+ dmesg("%v: %q, %#x -> %q", origin(1), GoString(format0), args0, buf.Bytes())
+ }
+ return buf.Bytes()
+ default:
+ format++
+ buf.WriteByte(c)
+ }
+ }
+}
+
+// Each conversion specification is introduced by the character %, and ends
+// with a conversion specifier. In between there may be (in this order) zero
+// or more flags, an optional minimum field width, an optional precision and
+// an optional length modifier.
+func printfConversion(buf *bytes.Buffer, format uintptr, args *uintptr) uintptr {
+ format++ // '%'
+ spec := "%"
+
+ // Flags characters
+ //
+ // The character % is followed by zero or more of the following flags:
+flags:
+ for {
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case '#':
+ // The value should be converted to an "alternate form". For o conversions,
+ // the first character of the output string is made zero (by prefixing a 0 if
+ // it was not zero already). For x and X conversions, a nonzero result has
+ // the string "0x" (or "0X" for X conversions) prepended to it. For a, A, e,
+ // E, f, F, g, and G conversions, the result will always contain a decimal
+ // point, even if no digits follow it (normally, a decimal point appears in the
+ // results of those conversions only if a digit follows). For g and G
+ // conversions, trailing zeros are not removed from the result as they would
+ // otherwise be. For other conversions, the result is undefined.
+ format++
+ spec += "#"
+ case '0':
+ // The value should be zero padded. For d, i, o, u, x, X, a, A, e, E, f, F,
+ // g, and G conversions, the converted value is padded on the left with zeros
+ // rather than blanks. If the 0 and - flags both appear, the 0 flag is
+ // ignored. If a precision is given with a numeric conversion (d, i, o, u, x,
+ // and X), the 0 flag is ignored. For other conversions, the behav‐ ior is
+ // undefined.
+ format++
+ spec += "0"
+ case '-':
+ // The converted value is to be left adjusted on the field boundary. (The
+ // default is right justification.) The converted value is padded on the right
+ // with blanks, rather than on the left with blanks or zeros. A - overrides a
+ // 0 if both are given.
+ format++
+ spec += "-"
+ case ' ':
+ // A blank should be left before a positive number (or empty string) produced
+ // by a signed conversion.
+ format++
+ spec += " "
+ case '+':
+ // A sign (+ or -) should always be placed before a number produced by a signed
+ // conversion. By default, a sign is used only for negative numbers. A +
+ // overrides a space if both are used.
+ format++
+ spec += "+"
+ default:
+ break flags
+ }
+ }
+ format, width, hasWidth := parseFieldWidth(format)
+ if hasWidth {
+ spec += strconv.Itoa(width)
+ }
+ format, prec, hasPrecision := parsePrecision(format, args)
+ format, mod := parseLengthModifier(format)
+
+ var str string
+
+more:
+ // Conversion specifiers
+ //
+ // A character that specifies the type of conversion to be applied. The
+ // conversion specifiers and their meanings are:
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case 'd', 'i':
+ // The int argument is converted to signed decimal notation. The precision,
+ // if any, gives the minimum number of digits that must appear; if the
+ // converted value requires fewer digits, it is padded on the left with zeros.
+ // The default precision is 1. When 0 is printed with an explicit precision 0,
+ // the output is empty.
+ format++
+ var arg int64
+ switch mod {
+ case modNone, modL, modLL, mod64:
+ arg = VaInt64(args)
+ case modH:
+ arg = int64(int16(VaInt32(args)))
+ case modHH:
+ arg = int64(int8(VaInt32(args)))
+ case mod32:
+ arg = int64(VaInt32(args))
+ default:
+ panic(todo("", mod))
+ }
+
+ if arg == 0 && hasPrecision && prec == 0 {
+ break
+ }
+
+ if hasPrecision {
+ panic(todo("", prec))
+ }
+
+ f := spec + "d"
+ str = fmt.Sprintf(f, arg)
+ case 'u':
+ // The unsigned int argument is converted to unsigned decimal notation. The
+ // precision, if any, gives the minimum number of digits that must appear; if
+ // the converted value requires fewer digits, it is padded on the left with
+ // zeros. The default precision is 1. When 0 is printed with an explicit
+ // precision 0, the output is empty.
+ format++
+ var arg uint64
+ switch mod {
+ case modNone, modL, modLL, mod64:
+ arg = VaUint64(args)
+ case modH:
+ arg = uint64(uint16(VaInt32(args)))
+ case modHH:
+ arg = uint64(uint8(VaInt32(args)))
+ case mod32:
+ arg = uint64(VaInt32(args))
+ default:
+ panic(todo("", mod))
+ }
+
+ if arg == 0 && hasPrecision && prec == 0 {
+ break
+ }
+
+ if hasPrecision {
+ panic(todo("", prec))
+ }
+
+ f := spec + "d"
+ str = fmt.Sprintf(f, arg)
+ case 'o':
+ // The unsigned int argument is converted to unsigned octal notation. The
+ // precision, if any, gives the minimum number of digits that must appear; if
+ // the converted value requires fewer digits, it is padded on the left with
+ // zeros. The default precision is 1. When 0 is printed with an explicit
+ // precision 0, the output is empty.
+ format++
+ var arg uint64
+ switch mod {
+ case modNone, modL, modLL, mod64:
+ arg = VaUint64(args)
+ case modH:
+ arg = uint64(uint16(VaInt32(args)))
+ case modHH:
+ arg = uint64(uint8(VaInt32(args)))
+ case mod32:
+ arg = uint64(VaInt32(args))
+ default:
+ panic(todo("", mod))
+ }
+
+ if arg == 0 && hasPrecision && prec == 0 {
+ break
+ }
+
+ if hasPrecision {
+ panic(todo("", prec))
+ }
+
+ f := spec + "o"
+ str = fmt.Sprintf(f, arg)
+ case 'I':
+ if !isWindows {
+ panic(todo("%#U", c))
+ }
+
+ format++
+ switch c = *(*byte)(unsafe.Pointer(format)); c {
+ case 'x', 'X':
+ // https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-wsprintfa
+ //
+ // Ix, IX
+ //
+ // 64-bit unsigned hexadecimal integer in lowercase or uppercase on 64-bit
+ // platforms, 32-bit unsigned hexadecimal integer in lowercase or uppercase on
+ // 32-bit platforms.
+ if unsafe.Sizeof(int(0)) == 4 {
+ mod = mod32
+ }
+ case '3':
+ // https://en.wikipedia.org/wiki/Printf_format_string#Length_field
+ //
+ // I32 For integer types, causes printf to expect a 32-bit (double word) integer argument.
+ format++
+ switch c = *(*byte)(unsafe.Pointer(format)); c {
+ case '2':
+ format++
+ mod = mod32
+ goto more
+ default:
+ panic(todo("%#U", c))
+ }
+ case '6':
+ // https://en.wikipedia.org/wiki/Printf_format_string#Length_field
+ //
+ // I64 For integer types, causes printf to expect a 64-bit (quad word) integer argument.
+ format++
+ switch c = *(*byte)(unsafe.Pointer(format)); c {
+ case '4':
+ format++
+ mod = mod64
+ goto more
+ default:
+ panic(todo("%#U", c))
+ }
+ default:
+ panic(todo("%#U", c))
+ }
+ fallthrough
+ case 'X':
+ fallthrough
+ case 'x':
+ // The unsigned int argument is converted to unsigned hexadecimal notation.
+ // The letters abcdef are used for x conversions; the letters ABCDEF are used
+ // for X conversions. The precision, if any, gives the minimum number of
+ // digits that must appear; if the converted value requires fewer digits, it is
+ // padded on the left with zeros. The default precision is 1. When 0 is
+ // printed with an explicit precision 0, the output is empty.
+ format++
+ var arg uint64
+ switch mod {
+ case modNone, modL, modLL, mod64:
+ arg = VaUint64(args)
+ case modH:
+ arg = uint64(uint16(VaInt32(args)))
+ case modHH:
+ arg = uint64(uint8(VaInt32(args)))
+ case mod32:
+ arg = uint64(VaInt32(args))
+ default:
+ panic(todo("", mod))
+ }
+
+ if arg == 0 && hasPrecision && prec == 0 {
+ break
+ }
+
+ if strings.Contains(spec, "#") && arg == 0 {
+ spec = strings.ReplaceAll(spec, "#", "")
+ }
+ var f string
+ switch {
+ case hasPrecision:
+ f = fmt.Sprintf("%s.%d%c", spec, prec, c)
+ default:
+ f = spec + string(c)
+ }
+ str = fmt.Sprintf(f, arg)
+ case 'e', 'E':
+ // The double argument is rounded and converted in the style [-]d.ddde±dd where
+ // there is one digit before the decimal-point character and the number of
+ // digits after it is equal to the precision; if the precision is missing, it
+ // is taken as 6; if the precision is zero, no decimal-point character appears.
+ // An E conversion uses the letter E (rather than e) to intro‐ duce the
+ // exponent. The exponent always contains at least two digits; if the value is
+ // zero, the exponent is 00.
+ format++
+ arg := VaFloat64(args)
+ if !hasPrecision {
+ prec = 6
+ }
+ f := fmt.Sprintf("%s.%d%c", spec, prec, c)
+ str = fmt.Sprintf(f, arg)
+ case 'f', 'F':
+ // The double argument is rounded and converted to decimal notation in the
+ // style [-]ddd.ddd, where the number of digits after the decimal-point
+ // character is equal to the precision specification. If the precision
+ // is missing, it is taken as 6; if the precision is explicitly zero, no
+ // decimal-point character appears. If a decimal point appears, at least one
+ // digit appears before it.
+ format++
+ arg := VaFloat64(args)
+ if !hasPrecision {
+ prec = 6
+ }
+ f := fmt.Sprintf("%s.%d%c", spec, prec, c)
+ str = fmt.Sprintf(f, arg)
+ case 'G':
+ fallthrough
+ case 'g':
+ // The double argument is converted in style f or e (or F or E for G
+ // conversions). The precision specifies the number of significant digits. If
+ // the precision is missing, 6 digits are given; if the precision is zero, it
+ // is treated as 1. Style e is used if the exponent from its conversion is
+ // less than -4 or greater than or equal to the precision. Trailing zeros are
+ // removed from the fractional part of the result; a decimal point appears only
+ // if it is followed by at least one digit.
+ format++
+ arg := VaFloat64(args)
+ if !hasPrecision {
+ prec = 6
+ }
+ if prec == 0 {
+ prec = 1
+ }
+
+ f := fmt.Sprintf("%s.%d%c", spec, prec, c)
+ str = fmt.Sprintf(f, arg)
+ case 's':
+ // If no l modifier is present: the const char * argument is expected to be a
+ // pointer to an array of character type (pointer to a string). Characters
+ // from the array are written up to (but not including) a terminating null byte
+ // ('\0'); if a precision is specified, no more than the number specified are
+ // written. If a precision is given, no null byte need be present; if
+ // the precision is not specified, or is greater than the size of the array,
+ // the array must contain a terminating null byte.
+ //
+ // If an l modifier is present: the const wchar_t * argument is expected
+ // to be a pointer to an array of wide characters. Wide characters from the
+ // array are converted to multibyte characters (each by a call to the
+ // wcrtomb(3) function, with a conversion state starting in the initial state
+ // before the first wide character), up to and including a terminating null
+ // wide character. The resulting multibyte characters are written up to
+ // (but not including) the terminating null byte. If a precision is specified,
+ // no more bytes than the number specified are written, but no partial
+ // multibyte characters are written. Note that the precision determines the
+ // number of bytes written, not the number of wide characters or screen
+ // positions. The array must contain a terminating null wide character,
+ // unless a precision is given and it is so small that the number of bytes
+ // written exceeds it before the end of the array is reached.
+ format++
+ arg := VaUintptr(args)
+ switch mod {
+ case modNone:
+ var f string
+ switch {
+ case hasPrecision:
+ f = fmt.Sprintf("%s.%ds", spec, prec)
+ str = fmt.Sprintf(f, GoString(arg))
+ default:
+ f = spec + "s"
+ str = fmt.Sprintf(f, GoString(arg))
+ }
+ default:
+ panic(todo(""))
+ }
+ case 'p':
+ // The void * pointer argument is printed in hexadecimal (as if by %#x or
+ // %#lx).
+ format++
+ arg := VaUintptr(args)
+ buf.WriteString("0x")
+ buf.WriteString(strconv.FormatInt(int64(arg), 16))
+ case 'c':
+ // If no l modifier is present, the int argument is converted to an unsigned
+ // char, and the resulting character is written. If an l modifier is present,
+ // the wint_t (wide character) ar‐ gument is converted to a multibyte sequence
+ // by a call to the wcrtomb(3) function, with a conversion state starting in
+ // the initial state, and the resulting multibyte string is writ‐ ten.
+ format++
+ switch mod {
+ case modNone:
+ arg := VaInt32(args)
+ buf.WriteByte(byte(arg))
+ default:
+ panic(todo(""))
+ }
+ case '%':
+ // A '%' is written. No argument is converted. The complete conversion
+ // specification is '%%'.
+ format++
+ buf.WriteByte('%')
+ default:
+ panic(todo("%#U", c))
+ }
+
+ buf.WriteString(str)
+ return format
+}
+
+// Field width
+//
+// An optional decimal digit string (with nonzero first digit) specifying a
+// minimum field width. If the converted value has fewer characters than the
+// field width, it will be padded with spa‐ ces on the left (or right, if the
+// left-adjustment flag has been given). Instead of a decimal digit string one
+// may write "*" or "*m$" (for some decimal integer m) to specify that the
+// field width is given in the next argument, or in the m-th argument,
+// respectively, which must be of type int. A negative field width is taken as
+// a '-' flag followed by a positive field width. In no case does a
+// nonexistent or small field width cause truncation of a field; if the result
+// of a conversion is wider than the field width, the field is expanded to
+// contain the conversion result.
+func parseFieldWidth(format uintptr) (_ uintptr, n int, ok bool) {
+ first := true
+ for {
+ var digit int
+ switch c := *(*byte)(unsafe.Pointer(format)); {
+ case first && c == '0':
+ return format, n, ok
+ case first && c == '*':
+ panic(todo(""))
+ case c >= '0' && c <= '9':
+ format++
+ ok = true
+ first = false
+ digit = int(c) - '0'
+ default:
+ return format, n, ok
+ }
+
+ n0 := n
+ n = 10*n + digit
+ if n < n0 {
+ panic(todo(""))
+ }
+ }
+}
+
+// Precision
+//
+// An optional precision, in the form of a period ('.') followed by an
+// optional decimal digit string. Instead of a decimal digit string one may
+// write "*" or "*m$" (for some decimal integer m) to specify that the
+// precision is given in the next argument, or in the m-th argument,
+// respectively, which must be of type int. If the precision is given as just
+// '.', the precision is taken to be zero. A negative precision is taken
+// as if the precision were omitted. This gives the minimum number of digits
+// to appear for d, i, o, u, x, and X conversions, the number of digits to
+// appear after the radix character for a, A, e, E, f, and F conversions, the
+// maximum number of significant digits for g and G conversions, or the maximum
+// number of characters to be printed from a string for s and S conversions.
+func parsePrecision(format uintptr, args *uintptr) (_ uintptr, n int, ok bool) {
+ for {
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case '.':
+ format++
+ first := true
+ for {
+ switch c := *(*byte)(unsafe.Pointer(format)); {
+ case first && c == '*':
+ format++
+ n = int(VaInt32(args))
+ return format, n, true
+ case c >= '0' && c <= '9':
+ format++
+ first = false
+ n0 := n
+ n = 10*n + (int(c) - '0')
+ if n < n0 {
+ panic(todo(""))
+ }
+ default:
+ return format, n, true
+ }
+ }
+ default:
+ return format, 0, false
+ }
+ }
+}
+
+// Length modifier
+//
+// Here, "integer conversion" stands for d, i, o, u, x, or X conversion.
+//
+// hh A following integer conversion corresponds to a signed char or
+// unsigned char argument, or a following n conversion corresponds to a pointer
+// to a signed char argument.
+//
+// h A following integer conversion corresponds to a short int or unsigned
+// short int argument, or a following n conversion corresponds to a pointer to
+// a short int argument.
+//
+// l (ell) A following integer conversion corresponds to a long int or
+// unsigned long int argument, or a following n conversion corresponds to a
+// pointer to a long int argument, or a fol‐ lowing c conversion corresponds to
+// a wint_t argument, or a following s conversion corresponds to a pointer to
+// wchar_t argument.
+//
+// ll (ell-ell). A following integer conversion corresponds to a long long
+// int or unsigned long long int argument, or a following n conversion
+// corresponds to a pointer to a long long int argument.
+//
+// q A synonym for ll. This is a nonstandard extension, derived from BSD;
+// avoid its use in new code.
+//
+// L A following a, A, e, E, f, F, g, or G conversion corresponds to a
+// long double argument. (C99 allows %LF, but SUSv2 does not.)
+//
+// j A following integer conversion corresponds to an intmax_t or
+// uintmax_t argument, or a following n conversion corresponds to a pointer to
+// an intmax_t argument.
+//
+// z A following integer conversion corresponds to a size_t or ssize_t
+// argument, or a following n conversion corresponds to a pointer to a size_t
+// argument.
+//
+// Z A nonstandard synonym for z that predates the appearance of z. Do
+// not use in new code.
+//
+// t A following integer conversion corresponds to a ptrdiff_t argument,
+// or a following n conversion corresponds to a pointer to a ptrdiff_t
+// argument.
+
+func parseLengthModifier(format uintptr) (_ uintptr, n int) {
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case 'h':
+ format++
+ n = modH
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case 'h':
+ format++
+ n = modHH
+ }
+ return format, n
+ case 'l':
+ format++
+ n = modL
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case 'l':
+ format++
+ n = modLL
+ }
+ return format, n
+ case 'q':
+ panic(todo(""))
+ case 'L':
+ panic(todo(""))
+ case 'j':
+ panic(todo(""))
+ case 'z':
+ panic(todo(""))
+ case 'Z':
+ panic(todo(""))
+ case 't':
+ panic(todo(""))
+ default:
+ return format, 0
+ }
+}
diff --git a/vendor/modernc.org/libc/pthread.go b/vendor/modernc.org/libc/pthread.go
new file mode 100644
index 00000000..67b32ac0
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread.go
@@ -0,0 +1,585 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "runtime"
+ "sync"
+ "sync/atomic"
+ "time"
+ "unsafe"
+
+ "modernc.org/libc/errno"
+ "modernc.org/libc/pthread"
+ "modernc.org/libc/sys/types"
+ ctime "modernc.org/libc/time"
+)
+
+var (
+ mutexes = map[uintptr]*mutex{}
+ mutexesMu sync.Mutex
+
+ threads = map[int32]*TLS{}
+ threadsMu sync.Mutex
+
+ threadKey pthread.Pthread_key_t
+ threadKeyDestructors = map[pthread.Pthread_key_t][]uintptr{} // key: []destructor
+ threadsKeysMu sync.Mutex
+
+ conds = map[uintptr]*cond{}
+ condsMu sync.Mutex
+)
+
+// Thread local storage.
+type TLS struct {
+ errnop uintptr
+ pthreadData
+ stack stackHeader
+
+ ID int32
+ reentryGuard int32 // memgrind
+ stackHeaderBalance int32
+}
+
+var errno0 int32 // Temp errno for NewTLS
+
+func NewTLS() *TLS {
+ return newTLS(false)
+}
+
+func newTLS(detached bool) *TLS {
+ id := atomic.AddInt32(&tid, 1)
+ t := &TLS{ID: id, errnop: uintptr(unsafe.Pointer(&errno0))}
+ t.pthreadData.init(t, detached)
+ if memgrind {
+ atomic.AddInt32(&tlsBalance, 1)
+ }
+ t.errnop = t.Alloc(int(unsafe.Sizeof(int32(0))))
+ *(*int32)(unsafe.Pointer(t.errnop)) = 0
+ return t
+}
+
+// Pthread specific part of a TLS.
+type pthreadData struct {
+ done chan struct{}
+ kv map[pthread.Pthread_key_t]uintptr
+ retVal uintptr
+ wait chan struct{} // cond var interaction
+
+ detached bool
+}
+
+func (d *pthreadData) init(t *TLS, detached bool) {
+ d.detached = detached
+ d.wait = make(chan struct{}, 1)
+ if detached {
+ return
+ }
+
+ d.done = make(chan struct{})
+
+ threadsMu.Lock()
+
+ defer threadsMu.Unlock()
+
+ threads[t.ID] = t
+}
+
+// int pthread_attr_destroy(pthread_attr_t *attr);
+func Xpthread_attr_destroy(t *TLS, pAttr uintptr) int32 {
+ return 0
+}
+
+// int pthread_attr_setscope(pthread_attr_t *attr, int contentionscope);
+func Xpthread_attr_setscope(t *TLS, pAttr uintptr, contentionScope int32) int32 {
+ switch contentionScope {
+ case pthread.PTHREAD_SCOPE_SYSTEM:
+ return 0
+ default:
+ panic(todo("", contentionScope))
+ }
+}
+
+// int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
+func Xpthread_attr_setstacksize(t *TLS, attr uintptr, stackSize types.Size_t) int32 {
+ panic(todo(""))
+}
+
+// Go side data of pthread_cond_t.
+type cond struct {
+ sync.Mutex
+ waiters map[*TLS]struct{}
+}
+
+func newCond() *cond {
+ return &cond{
+ waiters: map[*TLS]struct{}{},
+ }
+}
+
+func (c *cond) signal(all bool) int32 {
+ if c == nil {
+ return errno.EINVAL
+ }
+
+ c.Lock()
+
+ defer c.Unlock()
+
+ // The pthread_cond_broadcast() and pthread_cond_signal() functions shall have
+ // no effect if there are no threads currently blocked on cond.
+ for tls := range c.waiters {
+ tls.wait <- struct{}{}
+ delete(c.waiters, tls)
+ if !all {
+ break
+ }
+ }
+ return 0
+}
+
+// The pthread_cond_init() function shall initialize the condition variable
+// referenced by cond with attributes referenced by attr. If attr is NULL, the
+// default condition variable attributes shall be used; the effect is the same
+// as passing the address of a default condition variable attributes object.
+// Upon successful initialization, the state of the condition variable shall
+// become initialized.
+//
+// If successful, the pthread_cond_destroy() and pthread_cond_init() functions
+// shall return zero; otherwise, an error number shall be returned to indicate
+// the error.
+//
+// int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);
+func Xpthread_cond_init(t *TLS, pCond, pAttr uintptr) int32 {
+ if pCond == 0 {
+ return errno.EINVAL
+ }
+
+ if pAttr != 0 {
+ panic(todo("%#x %#x", pCond, pAttr))
+ }
+
+ condsMu.Lock()
+
+ defer condsMu.Unlock()
+
+ conds[pCond] = newCond()
+ return 0
+}
+
+// int pthread_cond_destroy(pthread_cond_t *cond);
+func Xpthread_cond_destroy(t *TLS, pCond uintptr) int32 {
+ if pCond == 0 {
+ return errno.EINVAL
+ }
+
+ condsMu.Lock()
+
+ defer condsMu.Unlock()
+
+ cond := conds[pCond]
+ if cond == nil {
+ return errno.EINVAL
+ }
+
+ cond.Lock()
+
+ defer cond.Unlock()
+
+ if len(cond.waiters) != 0 {
+ return errno.EBUSY
+ }
+
+ delete(conds, pCond)
+ return 0
+}
+
+// int pthread_cond_signal(pthread_cond_t *cond);
+func Xpthread_cond_signal(t *TLS, pCond uintptr) int32 {
+ return condSignal(pCond, false)
+}
+
+// int pthread_cond_broadcast(pthread_cond_t *cond);
+func Xpthread_cond_broadcast(t *TLS, pCond uintptr) int32 {
+ return condSignal(pCond, true)
+}
+
+func condSignal(pCond uintptr, all bool) int32 {
+ if pCond == 0 {
+ return errno.EINVAL
+ }
+
+ condsMu.Lock()
+ cond := conds[pCond]
+ condsMu.Unlock()
+
+ return cond.signal(all)
+}
+
+// int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex);
+func Xpthread_cond_wait(t *TLS, pCond, pMutex uintptr) int32 {
+ if pCond == 0 {
+ return errno.EINVAL
+ }
+
+ condsMu.Lock()
+ cond := conds[pCond]
+ if cond == nil { // static initialized condition variables are valid
+ cond = newCond()
+ conds[pCond] = cond
+ }
+
+ cond.Lock()
+ cond.waiters[t] = struct{}{}
+ cond.Unlock()
+
+ condsMu.Unlock()
+
+ mutexesMu.Lock()
+ mu := mutexes[pMutex]
+ mutexesMu.Unlock()
+
+ mu.Unlock()
+ <-t.wait
+ mu.Lock()
+ return 0
+}
+
+// int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime);
+func Xpthread_cond_timedwait(t *TLS, pCond, pMutex, pAbsTime uintptr) int32 {
+ if pCond == 0 {
+ return errno.EINVAL
+ }
+
+ condsMu.Lock()
+ cond := conds[pCond]
+ if cond == nil { // static initialized condition variables are valid
+ cond = newCond()
+ conds[pCond] = cond
+ }
+
+ cond.Lock()
+ cond.waiters[t] = struct{}{}
+ cond.Unlock()
+
+ condsMu.Unlock()
+
+ mutexesMu.Lock()
+ mu := mutexes[pMutex]
+ mutexesMu.Unlock()
+
+ deadlineSecs := (*ctime.Timespec)(unsafe.Pointer(pAbsTime)).Ftv_sec
+ deadlineNsecs := (*ctime.Timespec)(unsafe.Pointer(pAbsTime)).Ftv_nsec
+ deadline := time.Unix(int64(deadlineSecs), int64(deadlineNsecs))
+ d := deadline.Sub(time.Now())
+ switch {
+ case d <= 0:
+ return errno.ETIMEDOUT
+ default:
+ to := time.After(d)
+ mu.Unlock()
+
+ defer mu.Lock()
+
+ select {
+ case <-t.wait:
+ return 0
+ case <-to:
+ cond.Lock()
+
+ defer cond.Unlock()
+
+ delete(cond.waiters, t)
+ return errno.ETIMEDOUT
+ }
+ }
+}
+
+// Go side data of pthread_mutex_t
+type mutex struct {
+ sync.Mutex
+ typ int // PTHREAD_MUTEX_NORMAL, ...
+ wait sync.Mutex
+
+ id int32 // owner's t.ID
+ cnt int32
+
+ robust bool
+}
+
+func newMutex(typ int) *mutex {
+ return &mutex{
+ typ: typ,
+ }
+}
+
+func (m *mutex) lock(id int32) int32 {
+ if m.robust {
+ panic(todo(""))
+ }
+
+ // If successful, the pthread_mutex_lock() and pthread_mutex_unlock() functions
+ // shall return zero; otherwise, an error number shall be returned to indicate
+ // the error.
+ switch m.typ {
+ case pthread.PTHREAD_MUTEX_NORMAL:
+ // If the mutex type is PTHREAD_MUTEX_NORMAL, deadlock detection shall not be
+ // provided. Attempting to relock the mutex causes deadlock. If a thread
+ // attempts to unlock a mutex that it has not locked or a mutex which is
+ // unlocked, undefined behavior results.
+ m.Lock()
+ m.id = id
+ return 0
+ case pthread.PTHREAD_MUTEX_RECURSIVE:
+ for {
+ m.Lock()
+ switch m.id {
+ case 0:
+ m.cnt = 1
+ m.id = id
+ m.wait.Lock()
+ m.Unlock()
+ return 0
+ case id:
+ m.cnt++
+ m.Unlock()
+ return 0
+ }
+
+ m.Unlock()
+ m.wait.Lock()
+ m.wait.Unlock()
+ }
+ default:
+ panic(todo("", m.typ))
+ }
+}
+
+func (m *mutex) tryLock(id int32) int32 {
+ if m.robust {
+ panic(todo(""))
+ }
+
+ switch m.typ {
+ case pthread.PTHREAD_MUTEX_NORMAL:
+ return errno.EBUSY
+ case pthread.PTHREAD_MUTEX_RECURSIVE:
+ m.Lock()
+ switch m.id {
+ case 0:
+ m.cnt = 1
+ m.id = id
+ m.wait.Lock()
+ m.Unlock()
+ return 0
+ case id:
+ m.cnt++
+ m.Unlock()
+ return 0
+ }
+
+ m.Unlock()
+ return errno.EBUSY
+ default:
+ panic(todo("", m.typ))
+ }
+}
+
+func (m *mutex) unlock() int32 {
+ if m.robust {
+ panic(todo(""))
+ }
+
+ // If successful, the pthread_mutex_lock() and pthread_mutex_unlock() functions
+ // shall return zero; otherwise, an error number shall be returned to indicate
+ // the error.
+ switch m.typ {
+ case pthread.PTHREAD_MUTEX_NORMAL:
+ // If the mutex type is PTHREAD_MUTEX_NORMAL, deadlock detection shall not be
+ // provided. Attempting to relock the mutex causes deadlock. If a thread
+ // attempts to unlock a mutex that it has not locked or a mutex which is
+ // unlocked, undefined behavior results.
+ m.id = 0
+ m.Unlock()
+ return 0
+ case pthread.PTHREAD_MUTEX_RECURSIVE:
+ m.Lock()
+ m.cnt--
+ if m.cnt == 0 {
+ m.id = 0
+ m.wait.Unlock()
+ }
+ m.Unlock()
+ return 0
+ default:
+ panic(todo("", m.typ))
+ }
+}
+
+// int pthread_mutex_destroy(pthread_mutex_t *mutex);
+func Xpthread_mutex_destroy(t *TLS, pMutex uintptr) int32 {
+ mutexesMu.Lock()
+
+ defer mutexesMu.Unlock()
+
+ delete(mutexes, pMutex)
+ return 0
+}
+
+// int pthread_mutex_lock(pthread_mutex_t *mutex);
+func Xpthread_mutex_lock(t *TLS, pMutex uintptr) int32 {
+ mutexesMu.Lock()
+ mu := mutexes[pMutex]
+ if mu == nil { // static initialized mutexes are valid
+ mu = newMutex(int(X__ccgo_getMutexType(t, pMutex)))
+ mutexes[pMutex] = mu
+ }
+ mutexesMu.Unlock()
+ return mu.lock(t.ID)
+}
+
+// int pthread_mutex_trylock(pthread_mutex_t *mutex);
+func Xpthread_mutex_trylock(t *TLS, pMutex uintptr) int32 {
+ mutexesMu.Lock()
+ mu := mutexes[pMutex]
+ if mu == nil { // static initialized mutexes are valid
+ mu = newMutex(int(X__ccgo_getMutexType(t, pMutex)))
+ mutexes[pMutex] = mu
+ }
+ mutexesMu.Unlock()
+ return mu.tryLock(t.ID)
+}
+
+// int pthread_mutex_unlock(pthread_mutex_t *mutex);
+func Xpthread_mutex_unlock(t *TLS, pMutex uintptr) int32 {
+ mutexesMu.Lock()
+
+ defer mutexesMu.Unlock()
+
+ return mutexes[pMutex].unlock()
+}
+
+// int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));
+func Xpthread_key_create(t *TLS, pKey, destructor uintptr) int32 {
+ threadsKeysMu.Lock()
+
+ defer threadsKeysMu.Unlock()
+
+ threadKey++
+ r := threadKey
+ if destructor != 0 {
+ threadKeyDestructors[r] = append(threadKeyDestructors[r], destructor)
+ }
+ *(*pthread.Pthread_key_t)(unsafe.Pointer(pKey)) = pthread.Pthread_key_t(r)
+ return 0
+}
+
+// int pthread_key_delete(pthread_key_t key);
+func Xpthread_key_delete(t *TLS, key pthread.Pthread_key_t) int32 {
+ if _, ok := t.kv[key]; ok {
+ delete(t.kv, key)
+ return 0
+ }
+
+ panic(todo(""))
+
+}
+
+// void *pthread_getspecific(pthread_key_t key);
+func Xpthread_getspecific(t *TLS, key pthread.Pthread_key_t) uintptr {
+ return t.kv[key]
+}
+
+// int pthread_setspecific(pthread_key_t key, const void *value);
+func Xpthread_setspecific(t *TLS, key pthread.Pthread_key_t, value uintptr) int32 {
+ if t.kv == nil {
+ t.kv = map[pthread.Pthread_key_t]uintptr{}
+ }
+ t.kv[key] = value
+ return 0
+}
+
+// int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
+func Xpthread_create(t *TLS, pThread, pAttr, startRoutine, arg uintptr) int32 {
+ fn := (*struct {
+ f func(*TLS, uintptr) uintptr
+ })(unsafe.Pointer(&struct{ uintptr }{startRoutine})).f
+ detached := pAttr != 0 && X__ccgo_pthreadAttrGetDetachState(t, pAttr) == pthread.PTHREAD_CREATE_DETACHED
+ tls := newTLS(detached)
+ *(*pthread.Pthread_t)(unsafe.Pointer(pThread)) = pthread.Pthread_t(tls.ID)
+
+ go func() {
+ Xpthread_exit(tls, fn(tls, arg))
+ }()
+
+ return 0
+}
+
+// int pthread_detach(pthread_t thread);
+func Xpthread_detach(t *TLS, thread pthread.Pthread_t) int32 {
+ threadsMu.Lock()
+ threads[int32(thread)].detached = true
+ threadsMu.Unlock()
+ return 0
+}
+
+// int pthread_equal(pthread_t t1, pthread_t t2);
+func Xpthread_equal(t *TLS, t1, t2 pthread.Pthread_t) int32 {
+ return Bool32(t1 == t1)
+}
+
+// void pthread_exit(void *value_ptr);
+func Xpthread_exit(t *TLS, value uintptr) {
+ t.retVal = value
+
+ // At thread exit, if a key value has a non-NULL destructor pointer, and the
+ // thread has a non-NULL value associated with that key, the value of the key
+ // is set to NULL, and then the function pointed to is called with the
+ // previously associated value as its sole argument. The order of destructor
+ // calls is unspecified if more than one destructor exists for a thread when it
+ // exits.
+ for k, v := range t.kv {
+ if v == 0 {
+ continue
+ }
+
+ threadsKeysMu.Lock()
+ destructors := threadKeyDestructors[k]
+ threadsKeysMu.Unlock()
+
+ for _, destructor := range destructors {
+ delete(t.kv, k)
+ panic(todo("%#x", destructor)) //TODO call destructor(v)
+ }
+ }
+
+ switch {
+ case t.detached:
+ threadsMu.Lock()
+ delete(threads, t.ID)
+ threadsMu.Unlock()
+ default:
+ close(t.done)
+ }
+ runtime.Goexit()
+}
+
+// int pthread_join(pthread_t thread, void **value_ptr);
+func Xpthread_join(t *TLS, thread pthread.Pthread_t, pValue uintptr) int32 {
+ threadsMu.Lock()
+ tls := threads[int32(thread)]
+ delete(threads, int32(thread))
+ threadsMu.Unlock()
+ <-tls.done
+ if pValue != 0 {
+ *(*uintptr)(unsafe.Pointer(pValue)) = tls.retVal
+ }
+ return 0
+}
+
+// pthread_t pthread_self(void);
+func Xpthread_self(t *TLS) pthread.Pthread_t {
+ return pthread.Pthread_t(t.ID)
+}
diff --git a/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go b/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go
new file mode 100644
index 00000000..ac443ae5
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_darwin_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go b/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go
new file mode 100644
index 00000000..c772a1c1
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_darwin_arm64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_freebsd_386.go b/vendor/modernc.org/libc/pthread/capi_freebsd_386.go
new file mode 100644
index 00000000..b3a38c3a
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_freebsd_386.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_freebsd_amd64.go b/vendor/modernc.org/libc/pthread/capi_freebsd_amd64.go
new file mode 100644
index 00000000..6a08c0d4
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_freebsd_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_linux_386.go b/vendor/modernc.org/libc/pthread/capi_linux_386.go
new file mode 100644
index 00000000..1a78ab75
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_386.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_linux_amd64.go b/vendor/modernc.org/libc/pthread/capi_linux_amd64.go
new file mode 100644
index 00000000..ba3474e0
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_linux_arm.go b/vendor/modernc.org/libc/pthread/capi_linux_arm.go
new file mode 100644
index 00000000..a73c9846
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_arm.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_linux_arm64.go b/vendor/modernc.org/libc/pthread/capi_linux_arm64.go
new file mode 100644
index 00000000..2569731b
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_arm64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_linux_s390x.go b/vendor/modernc.org/libc/pthread/capi_linux_s390x.go
new file mode 100644
index 00000000..1e640b53
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_s390x.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_netbsd_amd64.go b/vendor/modernc.org/libc/pthread/capi_netbsd_amd64.go
new file mode 100644
index 00000000..1d030ddd
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_netbsd_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go b/vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go
new file mode 100644
index 00000000..d84c0781
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_openbsd_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_windows_386.go b/vendor/modernc.org/libc/pthread/capi_windows_386.go
new file mode 100644
index 00000000..619b6d06
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_windows_386.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/capi_windows_amd64.go b/vendor/modernc.org/libc/pthread/capi_windows_amd64.go
new file mode 100644
index 00000000..d1a3ccf2
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pthread\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 pthread\pthread_windows_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go b/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go
new file mode 100644
index 00000000..91a0d468
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go
@@ -0,0 +1,3064 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_darwin_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCKS_PER_SEC = 1000000
+ PTHREAD_CANCEL_ASYNCHRONOUS = 0x00
+ PTHREAD_CANCEL_DEFERRED = 0x02
+ PTHREAD_CANCEL_DISABLE = 0x00
+ PTHREAD_CANCEL_ENABLE = 0x01
+ PTHREAD_CREATE_DETACHED = 2
+ PTHREAD_CREATE_JOINABLE = 1
+ PTHREAD_EXPLICIT_SCHED = 2
+ PTHREAD_INHERIT_SCHED = 1
+ PTHREAD_MUTEX_DEFAULT = 0
+ PTHREAD_MUTEX_ERRORCHECK = 1
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_POLICY_FAIRSHARE_NP = 1
+ PTHREAD_MUTEX_POLICY_FIRSTFIT_NP = 3
+ PTHREAD_MUTEX_RECURSIVE = 2
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 2
+ PTHREAD_PROCESS_PRIVATE = 2
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 2
+ PTHREAD_SCOPE_SYSTEM = 1
+ QOS_MIN_RELATIVE_PRIORITY = -15
+ SCHED_FIFO = 4
+ SCHED_OTHER = 1
+ SCHED_RR = 2
+ TIME_UTC = 1
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_PORT_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_SIG_init = 0x3CB0B1BB
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_ERRORCHECK_MUTEX_SIG_init = 0x32AAABA1
+ X_PTHREAD_FIRSTFIT_MUTEX_SIG_init = 0x32AAABA3
+ X_PTHREAD_H = 0
+ X_PTHREAD_IMPL_H_ = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_SIG_init = 0x32AAABA7
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_SIG_init = 0x30B1BCBA
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_QOS_H = 0
+ X_PTHREAD_RECURSIVE_MUTEX_SIG_init = 0x32AAABA2
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_SIG_init = 0x2DA8B3B4
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_SCHED_H_ = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SYS_QOS_H = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+// Copyright (c) 2013-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2013-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// !
+// @typedef qos_class_t
+//
+// @abstract
+// An abstract thread quality of service (QOS) classification.
+//
+// @discussion
+// Thread quality of service (QOS) classes are ordered abstract representations
+// of the nature of work that is expected to be performed by a pthread, dispatch
+// queue, or NSOperation. Each class specifies a maximum thread scheduling
+// priority for that band (which may be used in combination with a relative
+// priority offset within the band), as well as quality of service
+// characteristics for timer latency, CPU throughput, I/O throughput, network
+// socket traffic management behavior and more.
+//
+// A best effort is made to allocate available system resources to every QOS
+// class. Quality of service degredation only occurs during system resource
+// contention, proportionally to the QOS class. That said, QOS classes
+// representing user-initiated work attempt to achieve peak throughput while
+// QOS classes for other work attempt to achieve peak energy and thermal
+// efficiency, even in the absence of contention. Finally, the use of QOS
+// classes does not allow threads to supersede any limits that may be applied
+// to the overall process.
+
+// !
+// @constant QOS_CLASS_USER_INTERACTIVE
+// @abstract A QOS class which indicates work performed by this thread
+// is interactive with the user.
+// @discussion Such work is requested to run at high priority relative to other
+// work on the system. Specifying this QOS class is a request to run with
+// nearly all available system CPU and I/O bandwidth even under contention.
+// This is not an energy-efficient QOS class to use for large tasks. The use of
+// this QOS class should be limited to critical interaction with the user such
+// as handling events on the main event loop, view drawing, animation, etc.
+//
+// @constant QOS_CLASS_USER_INITIATED
+// @abstract A QOS class which indicates work performed by this thread
+// was initiated by the user and that the user is likely waiting for the
+// results.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive work, but relatively higher than other work on the system. This
+// is not an energy-efficient QOS class to use for large tasks. Its use
+// should be limited to operations of short enough duration that the user is
+// unlikely to switch tasks while waiting for the results. Typical
+// user-initiated work will have progress indicated by the display of
+// placeholder content or modal user interface.
+//
+// @constant QOS_CLASS_DEFAULT
+// @abstract A default QOS class used by the system in cases where more specific
+// QOS class information is not available.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive and user-initiated work, but relatively higher than utility and
+// background tasks. Threads created by pthread_create() without an attribute
+// specifying a QOS class will default to QOS_CLASS_DEFAULT. This QOS class
+// value is not intended to be used as a work classification, it should only be
+// set when propagating or restoring QOS class values provided by the system.
+//
+// @constant QOS_CLASS_UTILITY
+// @abstract A QOS class which indicates work performed by this thread
+// may or may not be initiated by the user and that the user is unlikely to be
+// immediately waiting for the results.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive and user-initiated work, but relatively higher than low-level
+// system maintenance tasks. The use of this QOS class indicates the work
+// should be run in an energy and thermally-efficient manner. The progress of
+// utility work may or may not be indicated to the user, but the effect of such
+// work is user-visible.
+//
+// @constant QOS_CLASS_BACKGROUND
+// @abstract A QOS class which indicates work performed by this thread was not
+// initiated by the user and that the user may be unaware of the results.
+// @discussion Such work is requested to run at a priority below other work.
+// The use of this QOS class indicates the work should be run in the most energy
+// and thermally-efficient manner.
+//
+// @constant QOS_CLASS_UNSPECIFIED
+// @abstract A QOS class value which indicates the absence or removal of QOS
+// class information.
+// @discussion As an API return value, may indicate that threads or pthread
+// attributes were configured with legacy API incompatible or in conflict with
+// the QOS class system.
+
+const ( /* qos.h:130:1: */
+ QOS_CLASS_USER_INTERACTIVE = 33
+ QOS_CLASS_USER_INITIATED = 25
+ QOS_CLASS_DEFAULT = 21
+ QOS_CLASS_UTILITY = 17
+ QOS_CLASS_BACKGROUND = 9
+ QOS_CLASS_UNSPECIFIED = 0
+)
+
+const ( /* time.h:153:1: */
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
+// All Rights Reserved
+//
+// Permission to use, copy, modify, and distribute this software and
+// its documentation for any purpose and without fee is hereby granted,
+// provided that the above copyright notice appears in all copies and
+// that both the copyright notice and this permission notice appear in
+// supporting documentation.
+//
+// OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE.
+//
+// IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+// NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+//
+// MkLinux
+
+// POSIX Threads - IEEE 1003.1c
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Internal implementation details
+
+// This whole header file will disappear, so don't depend on it...
+
+// [Internal] data structure signatures
+
+// POSIX scheduling policies
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Scheduling paramters
+type Sched_param = struct {
+ Fsched_priority int32
+ F__opaque [4]int8
+} /* sched.h:35:1 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+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 */
+
+type Clockid_t = uint32 /* time.h:172:3 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+type Qos_class_t = uint32 /* qos.h:130:1 */
+
+// !
+// @typedef pthread_override_t
+//
+// @abstract
+// An opaque object representing a QOS class override of a thread.
+//
+// @discussion
+// A QOS class override of a target thread expresses that an item of pending
+// work classified with a specific QOS class and relative priority depends on
+// the completion of the work currently being executed by the thread (e.g. due
+// to ordering requirements).
+//
+// While overrides are in effect, the target thread will execute at the maximum
+// QOS class and relative priority of all overrides and of the QOS class
+// requested by the thread itself.
+//
+// A QOS class override does not modify the target thread's requested QOS class
+// value and the effect of an override is not visible to the qos_class_self()
+// and pthread_get_qos_class_np() interfaces.
+
+type Pthread_override_t = uintptr /* qos.h:211:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// mach_port_t - a named port right
+//
+// In user-space, "rights" are represented by the name of the
+// right in the Mach port namespace. Even so, this type is
+// presented as a unique one to more clearly denote the presence
+// of a right coming along with the name.
+//
+// Often, various rights for a port held in a single name space
+// will coalesce and are, therefore, be identified by a single name
+// [this is the case for send and receive rights]. But not
+// always [send-once rights currently get a unique name for
+// each right].
+//
+// This definition of mach_port_t is only for user-space.
+//
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mach_port_t = X__darwin_mach_port_t /* _mach_port_t.h:50:30 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go b/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go
new file mode 100644
index 00000000..0cc05623
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go
@@ -0,0 +1,3055 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_darwin_arm64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCKS_PER_SEC = 1000000
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ PTHREAD_CANCEL_ASYNCHRONOUS = 0x00
+ PTHREAD_CANCEL_DEFERRED = 0x02
+ PTHREAD_CANCEL_DISABLE = 0x00
+ PTHREAD_CANCEL_ENABLE = 0x01
+ PTHREAD_CREATE_DETACHED = 2
+ PTHREAD_CREATE_JOINABLE = 1
+ PTHREAD_EXPLICIT_SCHED = 2
+ PTHREAD_INHERIT_SCHED = 1
+ PTHREAD_MUTEX_DEFAULT = 0
+ PTHREAD_MUTEX_ERRORCHECK = 1
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_POLICY_FAIRSHARE_NP = 1
+ PTHREAD_MUTEX_POLICY_FIRSTFIT_NP = 3
+ PTHREAD_MUTEX_RECURSIVE = 2
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 2
+ PTHREAD_PROCESS_PRIVATE = 2
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 2
+ PTHREAD_SCOPE_SYSTEM = 1
+ QOS_MIN_RELATIVE_PRIORITY = -15
+ SCHED_FIFO = 4
+ SCHED_OTHER = 1
+ SCHED_RR = 2
+ TIME_UTC = 1
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_PORT_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_SIG_init = 0x3CB0B1BB
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_ERRORCHECK_MUTEX_SIG_init = 0x32AAABA1
+ X_PTHREAD_FIRSTFIT_MUTEX_SIG_init = 0x32AAABA3
+ X_PTHREAD_H = 0
+ X_PTHREAD_IMPL_H_ = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_SIG_init = 0x32AAABA7
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_SIG_init = 0x30B1BCBA
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_QOS_H = 0
+ X_PTHREAD_RECURSIVE_MUTEX_SIG_init = 0x32AAABA2
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_SIG_init = 0x2DA8B3B4
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_SCHED_H_ = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SYS_QOS_H = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+// Copyright (c) 2013-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2013-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// !
+// @typedef qos_class_t
+//
+// @abstract
+// An abstract thread quality of service (QOS) classification.
+//
+// @discussion
+// Thread quality of service (QOS) classes are ordered abstract representations
+// of the nature of work that is expected to be performed by a pthread, dispatch
+// queue, or NSOperation. Each class specifies a maximum thread scheduling
+// priority for that band (which may be used in combination with a relative
+// priority offset within the band), as well as quality of service
+// characteristics for timer latency, CPU throughput, I/O throughput, network
+// socket traffic management behavior and more.
+//
+// A best effort is made to allocate available system resources to every QOS
+// class. Quality of service degredation only occurs during system resource
+// contention, proportionally to the QOS class. That said, QOS classes
+// representing user-initiated work attempt to achieve peak throughput while
+// QOS classes for other work attempt to achieve peak energy and thermal
+// efficiency, even in the absence of contention. Finally, the use of QOS
+// classes does not allow threads to supersede any limits that may be applied
+// to the overall process.
+
+// !
+// @constant QOS_CLASS_USER_INTERACTIVE
+// @abstract A QOS class which indicates work performed by this thread
+// is interactive with the user.
+// @discussion Such work is requested to run at high priority relative to other
+// work on the system. Specifying this QOS class is a request to run with
+// nearly all available system CPU and I/O bandwidth even under contention.
+// This is not an energy-efficient QOS class to use for large tasks. The use of
+// this QOS class should be limited to critical interaction with the user such
+// as handling events on the main event loop, view drawing, animation, etc.
+//
+// @constant QOS_CLASS_USER_INITIATED
+// @abstract A QOS class which indicates work performed by this thread
+// was initiated by the user and that the user is likely waiting for the
+// results.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive work, but relatively higher than other work on the system. This
+// is not an energy-efficient QOS class to use for large tasks. Its use
+// should be limited to operations of short enough duration that the user is
+// unlikely to switch tasks while waiting for the results. Typical
+// user-initiated work will have progress indicated by the display of
+// placeholder content or modal user interface.
+//
+// @constant QOS_CLASS_DEFAULT
+// @abstract A default QOS class used by the system in cases where more specific
+// QOS class information is not available.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive and user-initiated work, but relatively higher than utility and
+// background tasks. Threads created by pthread_create() without an attribute
+// specifying a QOS class will default to QOS_CLASS_DEFAULT. This QOS class
+// value is not intended to be used as a work classification, it should only be
+// set when propagating or restoring QOS class values provided by the system.
+//
+// @constant QOS_CLASS_UTILITY
+// @abstract A QOS class which indicates work performed by this thread
+// may or may not be initiated by the user and that the user is unlikely to be
+// immediately waiting for the results.
+// @discussion Such work is requested to run at a priority below critical user-
+// interactive and user-initiated work, but relatively higher than low-level
+// system maintenance tasks. The use of this QOS class indicates the work
+// should be run in an energy and thermally-efficient manner. The progress of
+// utility work may or may not be indicated to the user, but the effect of such
+// work is user-visible.
+//
+// @constant QOS_CLASS_BACKGROUND
+// @abstract A QOS class which indicates work performed by this thread was not
+// initiated by the user and that the user may be unaware of the results.
+// @discussion Such work is requested to run at a priority below other work.
+// The use of this QOS class indicates the work should be run in the most energy
+// and thermally-efficient manner.
+//
+// @constant QOS_CLASS_UNSPECIFIED
+// @abstract A QOS class value which indicates the absence or removal of QOS
+// class information.
+// @discussion As an API return value, may indicate that threads or pthread
+// attributes were configured with legacy API incompatible or in conflict with
+// the QOS class system.
+
+const ( /* qos.h:130:1: */
+ QOS_CLASS_USER_INTERACTIVE = 33
+ QOS_CLASS_USER_INITIATED = 25
+ QOS_CLASS_DEFAULT = 21
+ QOS_CLASS_UTILITY = 17
+ QOS_CLASS_BACKGROUND = 9
+ QOS_CLASS_UNSPECIFIED = 0
+)
+
+const ( /* time.h:153:1: */
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+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 */
+
+// Copyright (c) 2000-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
+// All Rights Reserved
+//
+// Permission to use, copy, modify, and distribute this software and
+// its documentation for any purpose and without fee is hereby granted,
+// provided that the above copyright notice appears in all copies and
+// that both the copyright notice and this permission notice appear in
+// supporting documentation.
+//
+// OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE.
+//
+// IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+// NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+//
+// MkLinux
+
+// POSIX Threads - IEEE 1003.1c
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Internal implementation details
+
+// This whole header file will disappear, so don't depend on it...
+
+// [Internal] data structure signatures
+
+// POSIX scheduling policies
+
+// Scheduling paramters
+type Sched_param = struct {
+ Fsched_priority int32
+ F__opaque [4]int8
+} /* sched.h:35:1 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+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 */
+
+type Clockid_t = uint32 /* time.h:172:3 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+type Qos_class_t = uint32 /* qos.h:130:1 */
+
+// !
+// @typedef pthread_override_t
+//
+// @abstract
+// An opaque object representing a QOS class override of a thread.
+//
+// @discussion
+// A QOS class override of a target thread expresses that an item of pending
+// work classified with a specific QOS class and relative priority depends on
+// the completion of the work currently being executed by the thread (e.g. due
+// to ordering requirements).
+//
+// While overrides are in effect, the target thread will execute at the maximum
+// QOS class and relative priority of all overrides and of the QOS class
+// requested by the thread itself.
+//
+// A QOS class override does not modify the target thread's requested QOS class
+// value and the effect of an override is not visible to the qos_class_self()
+// and pthread_get_qos_class_np() interfaces.
+
+type Pthread_override_t = uintptr /* qos.h:211:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// mach_port_t - a named port right
+//
+// In user-space, "rights" are represented by the name of the
+// right in the Mach port namespace. Even so, this type is
+// presented as a unique one to more clearly denote the presence
+// of a right coming along with the name.
+//
+// Often, various rights for a port held in a single name space
+// will coalesce and are, therefore, be identified by a single name
+// [this is the case for send and receive rights]. But not
+// always [send-once rights currently get a unique name for
+// each right].
+//
+// This definition of mach_port_t is only for user-space.
+//
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mach_port_t = X__darwin_mach_port_t /* _mach_port_t.h:50:30 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+
+// !
+// @typedef pthread_jit_write_callback_t
+// The type of a function that can be supplied to {@link
+// pthread_jit_write_with_callback_np} to write to the MAP_JIT region while it
+// is writeable.
+//
+// @param ctx
+// A pointer to context that will be passed through to the callback function.
+//
+// @result
+// A result code to be returned to the caller of @{link
+// pthread_jit_write_with_callback_np}. The system does not interpret/act on
+// the value of this result.
+type Pthread_jit_write_callback_t = uintptr /* pthread.h:581:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_freebsd_386.go b/vendor/modernc.org/libc/pthread/pthread_freebsd_386.go
new file mode 100644
index 00000000..b4190236
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_freebsd_386.go
@@ -0,0 +1,1169 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_freebsd_386.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_BOOTTIME = 5
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_COARSE = 12
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_COARSE = 10
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_CANCEL_ASYNCHRONOUS = 2
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_DISABLE = 1
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_DETACHED = 0x1
+ PTHREAD_DONE_INIT = 1
+ PTHREAD_EXPLICIT_SCHED = 0
+ PTHREAD_INHERIT_SCHED = 0x4
+ PTHREAD_KEYS_MAX = 256
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_NEEDS_INIT = 0
+ PTHREAD_NOFLOAT = 0x8
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 2
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 0
+ PTHREAD_SCOPE_SYSTEM = 0x2
+ PTHREAD_STACK_MIN = 2048
+ PTHREAD_THREADS_MAX = 4294967295
+ SCHED_FIFO = 1
+ SCHED_OTHER = 2
+ SCHED_RR = 3
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_LOCALE_T_DEFINED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_H_ = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_SCHED_H_ = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SYS__CLOCK_ID_H = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ I386 = 1
+ Unix = 1
+)
+
+// Run-time invariant values:
+
+// Flags for threads and thread attributes.
+
+// Values for process shared/private attributes.
+
+// Flags for cancelling threads
+
+// Flags for once initialization.
+
+// Static once initialization values.
+
+// Static initialization values.
+
+// Default attribute arguments (draft 4, deprecated).
+
+// Mutex types (Single UNIX Specification, Version 2, 1997).
+//
+// Note that a mutex attribute with one of the following types:
+//
+// PTHREAD_MUTEX_NORMAL
+// PTHREAD_MUTEX_RECURSIVE
+//
+// will deviate from POSIX specified semantics.
+const ( /* pthread.h:130:1: */
+ PTHREAD_MUTEX_ERRORCHECK = 1 // Default POSIX mutex
+ PTHREAD_MUTEX_RECURSIVE = 2 // Recursive mutex
+ PTHREAD_MUTEX_NORMAL = 3 // No error checking
+ PTHREAD_MUTEX_ADAPTIVE_NP = 4 // Adaptive mutex, spins briefly before blocking on lock
+ PTHREAD_MUTEX_TYPE_MAX = 5
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+type Pthread_once = struct {
+ Fstate int32
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: (BSD-4-Clause AND BSD-2-Clause-FreeBSD)
+//
+// Copyright (c) 1996, 1997
+// HD Associates, Inc. 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by HD Associates, Inc
+// and Jukka Antero Ukkonen.
+// 4. Neither the name of the author nor the names of any co-contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES 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 HD ASSOCIATES 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.
+
+// -
+// Copyright (c) 2002-2008, Jeffrey Roberson <jeff@freebsd.org>
+// 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 unmodified, 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 AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// POSIX 1003.1b Process Scheduling
+
+// POSIX scheduling policies
+
+type Sched_param = struct{ Fsched_priority int32 } /* sched.h:240:1 */
+
+// POSIX scheduling declarations for userland.
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Pid_t = X__pid_t /* sched.h:253:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// These macros are shared between time.h and sys/time.h.
+
+// Note: The values shown below as a comment for the __POSIX_VISIBLE values are
+// the ones FreeBSD traditionally used based on our reading of the POSIX
+// standards. However, glibc uses 199309 for all of them, even those many were
+// not defined there. To remain bug compatible with glibc means more software
+// that relied on the glibc behavior will compile easily on FreeBSD.
+//
+// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl
+// port until it can be updated properly. It incorrectly assumes that this was a
+// standard value. It will be moved back to the __BSD_VISIBLE section once the
+// issue is corrected.
+
+// FreeBSD-specific clocks.
+
+// Linux compatible names.
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+type Clock_t = X__clock_t /* time.h:63:19 */
+
+// New in POSIX 1003.1b-1993.
+type Clockid_t = X__clockid_t /* time.h:82:21 */
+
+type Timer_t = X__timer_t /* time.h:87:19 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// 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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* time.h:101:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+type X_pthread_cleanup_info = struct{ Fpthread_cleanup_pad [8]X__uintptr_t } /* pthread.h:143:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_freebsd_amd64.go b/vendor/modernc.org/libc/pthread/pthread_freebsd_amd64.go
new file mode 100644
index 00000000..40f19fc5
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_freebsd_amd64.go
@@ -0,0 +1,1123 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_freebsd_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_CANCEL_ASYNCHRONOUS = 2
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_DISABLE = 1
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_DETACHED = 0x1
+ PTHREAD_DONE_INIT = 1
+ PTHREAD_EXPLICIT_SCHED = 0
+ PTHREAD_INHERIT_SCHED = 0x4
+ PTHREAD_KEYS_MAX = 256
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_NEEDS_INIT = 0
+ PTHREAD_NOFLOAT = 0x8
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 2
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 0
+ PTHREAD_SCOPE_SYSTEM = 0x2
+ PTHREAD_STACK_MIN = 2048
+ PTHREAD_THREADS_MAX = 18446744073709551615
+ SCHED_FIFO = 1
+ SCHED_OTHER = 2
+ SCHED_RR = 3
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LOCALE_T_DEFINED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_H_ = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_SCHED_H_ = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ Unix = 1
+)
+
+// Run-time invariant values:
+
+// Flags for threads and thread attributes.
+
+// Values for process shared/private attributes.
+
+// Flags for cancelling threads
+
+// Flags for once initialization.
+
+// Static once initialization values.
+
+// Static initialization values.
+
+// Default attribute arguments (draft 4, deprecated).
+
+// Mutex types (Single UNIX Specification, Version 2, 1997).
+//
+// Note that a mutex attribute with one of the following types:
+//
+// PTHREAD_MUTEX_NORMAL
+// PTHREAD_MUTEX_RECURSIVE
+//
+// will deviate from POSIX specified semantics.
+const ( /* pthread.h:130:1: */
+ PTHREAD_MUTEX_ERRORCHECK = 1 // Default POSIX mutex
+ PTHREAD_MUTEX_RECURSIVE = 2 // Recursive mutex
+ PTHREAD_MUTEX_NORMAL = 3 // No error checking
+ PTHREAD_MUTEX_ADAPTIVE_NP = 4 // Adaptive mutex, spins briefly before blocking on lock
+ PTHREAD_MUTEX_TYPE_MAX = 5
+)
+
+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 */
+type Pthread_once = struct {
+ Fstate int32
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: (BSD-4-Clause AND BSD-2-Clause-FreeBSD)
+//
+// Copyright (c) 1996, 1997
+// HD Associates, Inc. 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by HD Associates, Inc
+// and Jukka Antero Ukkonen.
+// 4. Neither the name of the author nor the names of any co-contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES 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 HD ASSOCIATES 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.
+
+// -
+// Copyright (c) 2002-2008, Jeffrey Roberson <jeff@freebsd.org>
+// 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 unmodified, 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 AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// POSIX 1003.1b Process Scheduling
+
+// POSIX scheduling policies
+
+type Sched_param = struct{ Fsched_priority int32 } /* sched.h:240:1 */
+
+// POSIX scheduling declarations for userland.
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Pid_t = X__pid_t /* sched.h:253:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+type Clock_t = X__clock_t /* time.h:62:19 */
+
+// New in POSIX 1003.1b-1993.
+type Clockid_t = X__clockid_t /* time.h:81:21 */
+
+type Timer_t = X__timer_t /* time.h:86:19 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// 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
+ }
+} /* timespec.h:60:1 */
+
+// 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
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:129:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+type X_pthread_cleanup_info = struct{ Fpthread_cleanup_pad [8]X__uintptr_t } /* pthread.h:143:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_linux_386.go b/vendor/modernc.org/libc/pthread/pthread_linux_386.go
new file mode 100644
index 00000000..0558924b
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_linux_386.go
@@ -0,0 +1,1847 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_386.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_ONCE_INIT = 0
+ SCHED_FIFO = 1
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_CPU_SET_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_SCHED_H = 1
+ X_BITS_SETJMP_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES_STRUCT_SCHED_PARAM = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ 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_PTHREAD_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SCHED_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Read-write lock types.
+const ( /* pthread.h:100:1: */
+ PTHREAD_RWLOCK_PREFER_READER_NP = 0
+ PTHREAD_RWLOCK_PREFER_WRITER_NP = 1
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2
+ PTHREAD_RWLOCK_DEFAULT_NP = 0
+)
+
+// Read-write lock initializers.
+
+// Scheduler inheritance.
+const ( /* pthread.h:120:1: */
+ PTHREAD_INHERIT_SCHED = 0
+ PTHREAD_EXPLICIT_SCHED = 1
+)
+
+// Scope handling.
+const ( /* pthread.h:130:1: */
+ PTHREAD_SCOPE_SYSTEM = 0
+ PTHREAD_SCOPE_PROCESS = 1
+)
+
+// Process shared or private flag.
+const ( /* pthread.h:140:1: */
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+)
+
+// Cancellation
+const ( /* pthread.h:164:1: */
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CANCEL_DISABLE = 1
+)
+const ( /* pthread.h:171:1: */
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_ASYNCHRONOUS = 1
+)
+
+// Determine the wordsize from the preprocessor defines.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// Detach state.
+const ( /* pthread.h:33:1: */
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+)
+
+// Mutex types.
+const ( /* pthread.h:43:1: */
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_MUTEX_RECURSIVE_NP = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 2
+ PTHREAD_MUTEX_ADAPTIVE_NP = 3
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_RECURSIVE = 1
+ PTHREAD_MUTEX_ERRORCHECK = 2
+ PTHREAD_MUTEX_DEFAULT = 0
+)
+
+// Robust mutex or not flags.
+const ( /* pthread.h:65:1: */
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_MUTEX_STALLED_NP = 0
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_ROBUST_NP = 1
+)
+
+// Mutex protocols.
+const ( /* pthread.h:77:1: */
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_PROTECT = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 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/>.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
+// 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
+// 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) 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
+// 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/>.
+
+// Get type definitions.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Pid_t = X__pid_t /* sched.h:38:17 */
+
+// Get system specific constant and data structure definitions.
+// Definitions of constants and data structure for POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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/>.
+
+// Scheduling algorithms.
+
+// Sched parameter structure. Generic version.
+// 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
+// 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/>.
+
+// Data structure to describe a process' schedulability.
+type Sched_param = struct{ Fsched_priority int32 } /* struct_sched_param.h:23:1 */
+
+// Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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 definition for CPU sets.
+
+// Type for array elements in 'cpu_set_t'.
+type X__cpu_mask = uint32 /* cpu-set.h:32:25 */
+
+// Basic access functions.
+
+// Data structure to describe CPU mask.
+type Cpu_set_t = struct{ F__bits [32]X__cpu_mask } /* cpu-set.h:42:3 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+// 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/>.
+
+// 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.
+
+// 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 */
+
+// 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/>.
+
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Copyright (C) 2001-2020 Free Software 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 the machine-dependent type `jmp_buf'. x86-64 version.
+
+// Determine the wordsize from the preprocessor defines.
+
+type X__jmp_buf = [6]int32 /* setjmp.h:35:13 */
+
+// Conditional variable handling.
+
+// Cleanup buffers
+type X_pthread_cleanup_buffer = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__canceltype int32
+ F__prev uintptr
+} /* pthread.h:155:1 */
+
+// Cancellation handling with integration into exception handling.
+
+type X__pthread_unwind_buf_t = struct {
+ F__cancel_jmp_buf [1]struct {
+ F__cancel_jmp_buf X__jmp_buf
+ F__mask_was_saved int32
+ }
+ F__pad [4]uintptr
+} /* pthread.h:507:3 */
+
+// No special attributes by default.
+
+// Structure to hold the cleanup handler information.
+type X__pthread_cleanup_frame = struct {
+ F__cancel_routine uintptr
+ F__cancel_arg uintptr
+ F__do_it int32
+ F__cancel_type int32
+} /* pthread.h:516:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_linux_amd64.go b/vendor/modernc.org/libc/pthread/pthread_linux_amd64.go
new file mode 100644
index 00000000..fcff0c8a
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_linux_amd64.go
@@ -0,0 +1,1865 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_ONCE_INIT = 0
+ SCHED_FIFO = 1
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_CPU_SET_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_SCHED_H = 1
+ X_BITS_SETJMP_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES_STRUCT_SCHED_PARAM = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PTHREAD_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SCHED_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Read-write lock types.
+const ( /* pthread.h:100:1: */
+ PTHREAD_RWLOCK_PREFER_READER_NP = 0
+ PTHREAD_RWLOCK_PREFER_WRITER_NP = 1
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2
+ PTHREAD_RWLOCK_DEFAULT_NP = 0
+)
+
+// Read-write lock initializers.
+
+// Scheduler inheritance.
+const ( /* pthread.h:120:1: */
+ PTHREAD_INHERIT_SCHED = 0
+ PTHREAD_EXPLICIT_SCHED = 1
+)
+
+// Scope handling.
+const ( /* pthread.h:130:1: */
+ PTHREAD_SCOPE_SYSTEM = 0
+ PTHREAD_SCOPE_PROCESS = 1
+)
+
+// Process shared or private flag.
+const ( /* pthread.h:140:1: */
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+)
+
+// Cancellation
+const ( /* pthread.h:164:1: */
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CANCEL_DISABLE = 1
+)
+const ( /* pthread.h:171:1: */
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_ASYNCHRONOUS = 1
+)
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// Detach state.
+const ( /* pthread.h:33:1: */
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+)
+
+// Mutex types.
+const ( /* pthread.h:43:1: */
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_MUTEX_RECURSIVE_NP = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 2
+ PTHREAD_MUTEX_ADAPTIVE_NP = 3
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_RECURSIVE = 1
+ PTHREAD_MUTEX_ERRORCHECK = 2
+ PTHREAD_MUTEX_DEFAULT = 0
+)
+
+// Robust mutex or not flags.
+const ( /* pthread.h:65:1: */
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_MUTEX_STALLED_NP = 0
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_ROBUST_NP = 1
+)
+
+// Mutex protocols.
+const ( /* pthread.h:77:1: */
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_PROTECT = 2
+)
+
+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 */
+
+// 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/>.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
+// 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
+// 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) 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
+// 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/>.
+
+// Get type definitions.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Pid_t = X__pid_t /* sched.h:38:17 */
+
+// Get system specific constant and data structure definitions.
+// Definitions of constants and data structure for POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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/>.
+
+// Scheduling algorithms.
+
+// Sched parameter structure. Generic version.
+// 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
+// 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/>.
+
+// Data structure to describe a process' schedulability.
+type Sched_param = struct{ Fsched_priority int32 } /* struct_sched_param.h:23:1 */
+
+// Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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 definition for CPU sets.
+
+// Type for array elements in 'cpu_set_t'.
+type X__cpu_mask = uint64 /* cpu-set.h:32:25 */
+
+// Basic access functions.
+
+// Data structure to describe CPU mask.
+type Cpu_set_t = struct{ F__bits [16]X__cpu_mask } /* cpu-set.h:42:3 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+// 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/>.
+
+// 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_internal_list = struct {
+ F__prev uintptr
+ F__next uintptr
+} /* thread-shared-types.h:49:9 */
+
+// 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/>.
+
+// 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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Copyright (C) 2001-2020 Free Software 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 the machine-dependent type `jmp_buf'. x86-64 version.
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+
+type X__jmp_buf = [8]int64 /* setjmp.h:31:18 */
+
+// Conditional variable handling.
+
+// Cleanup buffers
+type X_pthread_cleanup_buffer = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__canceltype int32
+ F__ccgo_pad1 [4]byte
+ F__prev uintptr
+} /* pthread.h:155:1 */
+
+// Cancellation handling with integration into exception handling.
+
+type X__pthread_unwind_buf_t = struct {
+ F__cancel_jmp_buf [1]struct {
+ F__cancel_jmp_buf X__jmp_buf
+ F__mask_was_saved int32
+ F__ccgo_pad1 [4]byte
+ }
+ F__pad [4]uintptr
+} /* pthread.h:507:3 */
+
+// No special attributes by default.
+
+// Structure to hold the cleanup handler information.
+type X__pthread_cleanup_frame = struct {
+ F__cancel_routine uintptr
+ F__cancel_arg uintptr
+ F__do_it int32
+ F__cancel_type int32
+} /* pthread.h:516:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_linux_arm.go b/vendor/modernc.org/libc/pthread/pthread_linux_arm.go
new file mode 100644
index 00000000..006f92eb
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_linux_arm.go
@@ -0,0 +1,1974 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_arm.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_ONCE_INIT = 0
+ SCHED_FIFO = 1
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_CPU_SET_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_SCHED_H = 1
+ X_BITS_SETJMP_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES_STRUCT_SCHED_PARAM = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PTHREAD_H = 1
+ X_SCHED_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Read-write lock types.
+const ( /* pthread.h:100:1: */
+ PTHREAD_RWLOCK_PREFER_READER_NP = 0
+ PTHREAD_RWLOCK_PREFER_WRITER_NP = 1
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2
+ PTHREAD_RWLOCK_DEFAULT_NP = 0
+)
+
+// Read-write lock initializers.
+
+// Scheduler inheritance.
+const ( /* pthread.h:120:1: */
+ PTHREAD_INHERIT_SCHED = 0
+ PTHREAD_EXPLICIT_SCHED = 1
+)
+
+// Scope handling.
+const ( /* pthread.h:130:1: */
+ PTHREAD_SCOPE_SYSTEM = 0
+ PTHREAD_SCOPE_PROCESS = 1
+)
+
+// Process shared or private flag.
+const ( /* pthread.h:140:1: */
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+)
+
+// Cancellation
+const ( /* pthread.h:164:1: */
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CANCEL_DISABLE = 1
+)
+const ( /* pthread.h:171:1: */
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_ASYNCHRONOUS = 1
+)
+
+// 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/>.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// Detach state.
+const ( /* pthread.h:33:1: */
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+)
+
+// Mutex types.
+const ( /* pthread.h:43:1: */
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_MUTEX_RECURSIVE_NP = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 2
+ PTHREAD_MUTEX_ADAPTIVE_NP = 3
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_RECURSIVE = 1
+ PTHREAD_MUTEX_ERRORCHECK = 2
+ PTHREAD_MUTEX_DEFAULT = 0
+)
+
+// Robust mutex or not flags.
+const ( /* pthread.h:65:1: */
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_MUTEX_STALLED_NP = 0
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_ROBUST_NP = 1
+)
+
+// Mutex protocols.
+const ( /* pthread.h:77:1: */
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_PROTECT = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 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/>.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
+// 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
+// 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) 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
+// 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/>.
+
+// Get type definitions.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Pid_t = X__pid_t /* sched.h:38:17 */
+
+// Get system specific constant and data structure definitions.
+// Definitions of constants and data structure for POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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/>.
+
+// Scheduling algorithms.
+
+// Sched parameter structure. Generic version.
+// 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
+// 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/>.
+
+// Data structure to describe a process' schedulability.
+type Sched_param = struct{ Fsched_priority int32 } /* struct_sched_param.h:23:1 */
+
+// Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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 definition for CPU sets.
+
+// Type for array elements in 'cpu_set_t'.
+type X__cpu_mask = uint32 /* cpu-set.h:32:25 */
+
+// Basic access functions.
+
+// Data structure to describe CPU mask.
+type Cpu_set_t = struct{ F__bits [32]X__cpu_mask } /* cpu-set.h:42:3 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+// 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/>.
+
+// 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/>.
+
+// 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 */
+
+// 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/>.
+
+// 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/>.
+
+// 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.
+//
+// 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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Copyright (C) 2004-2020 Free Software 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 the machine-dependent type `jmp_buf'. ARM EABI version.
+
+// The exact set of registers saved may depend on the particular core
+// in use, as some coprocessor registers may need to be saved. The C
+// Library ABI requires that the buffer be 8-byte aligned, and
+// recommends that the buffer contain 64 words. The first 26 words
+// are occupied by sp, lr, v1-v6, sl, fp, and d8-d15.
+type X__jmp_buf = [64]int32 /* setjmp.h:33:13 */
+
+// Conditional variable handling.
+
+// Cleanup buffers
+type X_pthread_cleanup_buffer = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__canceltype int32
+ F__prev uintptr
+} /* pthread.h:155:1 */
+
+// Cancellation handling with integration into exception handling.
+
+type X__pthread_unwind_buf_t = struct {
+ F__cancel_jmp_buf [1]struct {
+ F__cancel_jmp_buf X__jmp_buf
+ F__mask_was_saved int32
+ }
+ F__pad [4]uintptr
+} /* pthread.h:507:3 */
+
+// No special attributes by default.
+
+// Structure to hold the cleanup handler information.
+type X__pthread_cleanup_frame = struct {
+ F__cancel_routine uintptr
+ F__cancel_arg uintptr
+ F__do_it int32
+ F__cancel_type int32
+} /* pthread.h:516:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_linux_arm64.go b/vendor/modernc.org/libc/pthread/pthread_linux_arm64.go
new file mode 100644
index 00000000..58441cdd
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_linux_arm64.go
@@ -0,0 +1,1983 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_arm64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_ONCE_INIT = 0
+ SCHED_FIFO = 1
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_CPU_SET_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_SCHED_H = 1
+ X_BITS_SETJMP_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES_STRUCT_SCHED_PARAM = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PTHREAD_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SCHED_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Read-write lock types.
+const ( /* pthread.h:100:1: */
+ PTHREAD_RWLOCK_PREFER_READER_NP = 0
+ PTHREAD_RWLOCK_PREFER_WRITER_NP = 1
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2
+ PTHREAD_RWLOCK_DEFAULT_NP = 0
+)
+
+// Read-write lock initializers.
+
+// Scheduler inheritance.
+const ( /* pthread.h:120:1: */
+ PTHREAD_INHERIT_SCHED = 0
+ PTHREAD_EXPLICIT_SCHED = 1
+)
+
+// Scope handling.
+const ( /* pthread.h:130:1: */
+ PTHREAD_SCOPE_SYSTEM = 0
+ PTHREAD_SCOPE_PROCESS = 1
+)
+
+// Process shared or private flag.
+const ( /* pthread.h:140:1: */
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+)
+
+// Cancellation
+const ( /* pthread.h:164:1: */
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CANCEL_DISABLE = 1
+)
+const ( /* pthread.h:171:1: */
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_ASYNCHRONOUS = 1
+)
+
+// 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/>.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// Detach state.
+const ( /* pthread.h:33:1: */
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+)
+
+// Mutex types.
+const ( /* pthread.h:43:1: */
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_MUTEX_RECURSIVE_NP = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 2
+ PTHREAD_MUTEX_ADAPTIVE_NP = 3
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_RECURSIVE = 1
+ PTHREAD_MUTEX_ERRORCHECK = 2
+ PTHREAD_MUTEX_DEFAULT = 0
+)
+
+// Robust mutex or not flags.
+const ( /* pthread.h:65:1: */
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_MUTEX_STALLED_NP = 0
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_ROBUST_NP = 1
+)
+
+// Mutex protocols.
+const ( /* pthread.h:77:1: */
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_PROTECT = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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/>.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
+// 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
+// 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) 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
+// 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/>.
+
+// Get type definitions.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Pid_t = X__pid_t /* sched.h:38:17 */
+
+// Get system specific constant and data structure definitions.
+// Definitions of constants and data structure for POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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/>.
+
+// Scheduling algorithms.
+
+// Sched parameter structure. Generic version.
+// 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
+// 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/>.
+
+// Data structure to describe a process' schedulability.
+type Sched_param = struct{ Fsched_priority int32 } /* struct_sched_param.h:23:1 */
+
+// Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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 definition for CPU sets.
+
+// Type for array elements in 'cpu_set_t'.
+type X__cpu_mask = uint64 /* cpu-set.h:32:25 */
+
+// Basic access functions.
+
+// Data structure to describe CPU mask.
+type Cpu_set_t = struct{ F__bits [16]X__cpu_mask } /* cpu-set.h:42:3 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+// 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/>.
+
+// 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_internal_list = struct {
+ F__prev uintptr
+ F__next uintptr
+} /* thread-shared-types.h:49:9 */
+
+// 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/>.
+
+// 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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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/>.
+
+// Jump buffer contains:
+// x19-x28, x29(fp), x30(lr), (x31)sp, d8-d15. Other registers are not
+// saved.
+type X__jmp_buf = [22]uint64 /* setjmp.h:30:42 */
+
+// Conditional variable handling.
+
+// Cleanup buffers
+type X_pthread_cleanup_buffer = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__canceltype int32
+ F__ccgo_pad1 [4]byte
+ F__prev uintptr
+} /* pthread.h:155:1 */
+
+// Cancellation handling with integration into exception handling.
+
+type X__pthread_unwind_buf_t = struct {
+ F__cancel_jmp_buf [1]struct {
+ F__cancel_jmp_buf X__jmp_buf
+ F__mask_was_saved int32
+ F__ccgo_pad1 [4]byte
+ }
+ F__pad [4]uintptr
+} /* pthread.h:507:3 */
+
+// No special attributes by default.
+
+// Structure to hold the cleanup handler information.
+type X__pthread_cleanup_frame = struct {
+ F__cancel_routine uintptr
+ F__cancel_arg uintptr
+ F__do_it int32
+ F__cancel_type int32
+} /* pthread.h:516:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_linux_s390x.go b/vendor/modernc.org/libc/pthread/pthread_linux_s390x.go
new file mode 100644
index 00000000..b7b3049c
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_linux_s390x.go
@@ -0,0 +1,1885 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_linux_s390x.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_ONCE_INIT = 0
+ SCHED_FIFO = 1
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_CPU_SET_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_SCHED_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES_STRUCT_SCHED_PARAM = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PTHREAD_H = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SCHED_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Read-write lock types.
+const ( /* pthread.h:100:1: */
+ PTHREAD_RWLOCK_PREFER_READER_NP = 0
+ PTHREAD_RWLOCK_PREFER_WRITER_NP = 1
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2
+ PTHREAD_RWLOCK_DEFAULT_NP = 0
+)
+
+// Read-write lock initializers.
+
+// Scheduler inheritance.
+const ( /* pthread.h:120:1: */
+ PTHREAD_INHERIT_SCHED = 0
+ PTHREAD_EXPLICIT_SCHED = 1
+)
+
+// Scope handling.
+const ( /* pthread.h:130:1: */
+ PTHREAD_SCOPE_SYSTEM = 0
+ PTHREAD_SCOPE_PROCESS = 1
+)
+
+// Process shared or private flag.
+const ( /* pthread.h:140:1: */
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+)
+
+// Cancellation
+const ( /* pthread.h:164:1: */
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CANCEL_DISABLE = 1
+)
+const ( /* pthread.h:171:1: */
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_ASYNCHRONOUS = 1
+)
+
+// Determine the wordsize from the preprocessor defines.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// Detach state.
+const ( /* pthread.h:33:1: */
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+)
+
+// Mutex types.
+const ( /* pthread.h:43:1: */
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_MUTEX_RECURSIVE_NP = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 2
+ PTHREAD_MUTEX_ADAPTIVE_NP = 3
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_RECURSIVE = 1
+ PTHREAD_MUTEX_ERRORCHECK = 2
+ PTHREAD_MUTEX_DEFAULT = 0
+)
+
+// Robust mutex or not flags.
+const ( /* pthread.h:65:1: */
+ PTHREAD_MUTEX_STALLED = 0
+ PTHREAD_MUTEX_STALLED_NP = 0
+ PTHREAD_MUTEX_ROBUST = 1
+ PTHREAD_MUTEX_ROBUST_NP = 1
+)
+
+// Mutex protocols.
+const ( /* pthread.h:77:1: */
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_PROTECT = 2
+)
+
+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 */
+
+// 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/>.
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
+// 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
+// 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) 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
+// 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/>.
+
+// Get type definitions.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Pid_t = X__pid_t /* sched.h:38:17 */
+
+// Get system specific constant and data structure definitions.
+// Definitions of constants and data structure for POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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/>.
+
+// Scheduling algorithms.
+
+// Sched parameter structure. Generic version.
+// 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
+// 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/>.
+
+// Data structure to describe a process' schedulability.
+type Sched_param = struct{ Fsched_priority int32 } /* struct_sched_param.h:23:1 */
+
+// Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
+// scheduling interface.
+// 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
+// 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 definition for CPU sets.
+
+// Type for array elements in 'cpu_set_t'.
+type X__cpu_mask = uint64 /* cpu-set.h:32:25 */
+
+// Basic access functions.
+
+// Data structure to describe CPU mask.
+type Cpu_set_t = struct{ F__bits [16]X__cpu_mask } /* cpu-set.h:42:3 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+// 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/>.
+
+// 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_internal_list = struct {
+ F__prev uintptr
+ F__next uintptr
+} /* thread-shared-types.h:49:9 */
+
+// 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/>.
+
+// 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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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 the machine-dependent type `jmp_buf'. IBM s390 version.
+
+// Determine the wordsize from the preprocessor defines.
+
+type X__s390_jmp_buf = struct {
+ F__gregs [10]int64
+ F__fpregs [8]int64
+} /* setjmp.h:31:9 */
+
+// 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
+// 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 the machine-dependent type `jmp_buf'. IBM s390 version.
+
+// Determine the wordsize from the preprocessor defines.
+
+type X__jmp_buf = [1]X__s390_jmp_buf /* setjmp.h:43:3 */
+
+// Conditional variable handling.
+
+// Cleanup buffers
+type X_pthread_cleanup_buffer = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__canceltype int32
+ F__ccgo_pad1 [4]byte
+ F__prev uintptr
+} /* pthread.h:155:1 */
+
+// Cancellation handling with integration into exception handling.
+
+type X__pthread_unwind_buf_t = struct {
+ F__cancel_jmp_buf [1]struct {
+ F__cancel_jmp_buf X__jmp_buf
+ F__mask_was_saved int32
+ F__ccgo_pad1 [4]byte
+ }
+ F__pad [4]uintptr
+} /* pthread.h:507:3 */
+
+// No special attributes by default.
+
+// Structure to hold the cleanup handler information.
+type X__pthread_cleanup_frame = struct {
+ F__cancel_routine uintptr
+ F__cancel_arg uintptr
+ F__do_it int32
+ F__cancel_type int32
+} /* pthread.h:516:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_netbsd_amd64.go b/vendor/modernc.org/libc/pthread/pthread_netbsd_amd64.go
new file mode 100644
index 00000000..8165861a
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_netbsd_amd64.go
@@ -0,0 +1,2741 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_netbsd_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+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
+ 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
+ CLONE_CSIGNAL = 0x000000ff
+ CLONE_FILES = 0x00000400
+ CLONE_FS = 0x00000200
+ CLONE_PID = 0x00001000
+ CLONE_PTRACE = 0x00002000
+ CLONE_SIGHAND = 0x00000800
+ CLONE_VFORK = 0x00004000
+ CLONE_VM = 0x00000100
+ CPUSTATES = 5
+ CP_IDLE = 4
+ CP_INTR = 3
+ CP_NICE = 1
+ CP_SYS = 2
+ CP_USER = 0
+ 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
+ PTHREAD_BARRIER_SERIAL_THREAD = 1234567
+ PTHREAD_CANCEL_ASYNCHRONOUS = 1
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_DISABLE = 1
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_EXPLICIT_SCHED = 1
+ PTHREAD_INHERIT_SCHED = 0
+ PTHREAD_MAX_NAMELEN_NP = 32
+ PTHREAD_MUTEX_DEFAULT = 0
+ PTHREAD_MUTEX_ERRORCHECK = 1
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_RECURSIVE = 2
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 2
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 0
+ PTHREAD_SCOPE_SYSTEM = 1
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SCHED_FIFO = 1
+ SCHED_NONE = -1
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ 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_H = 0
+ 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_SCHED_H_ = 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_SCHED_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_SIGTYPES_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ 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: 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: 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
+
+// $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
+
+// $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 Clock_t = uint32 /* time.h:49:23 */
+
+type Time_t = X__int64_t /* time.h:54:22 */
+
+type Clockid_t = int32 /* time.h:64:25 */
+
+type Timer_t = int32 /* time.h:69:23 */
+
+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 */
+
+// ISO/IEC 9899:201x 7.27.1/3 Components of time
+// $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.
+
+// $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 Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* timespec.h:47:1 */
+
+// $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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+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: 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.
+
+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 Ssize_t = int64 /* types.h:284: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 */
+
+// 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
+
+// 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: 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 */
+
+// $NetBSD: sched.h,v 1.12 2009/01/11 03:04:12 christos Exp $
+
+// -
+// Copyright (c) 2001 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.
+
+// $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: sched.h,v 1.76 2016/07/03 14:24:59 christos Exp $
+
+// -
+// Copyright (c) 1999, 2000, 2001, 2002, 2007, 2008 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Ross Harvey, Jason R. Thorpe, Nathan J. Williams, Andrew Doran and
+// Daniel Sieger.
+//
+// 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.
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)kern_clock.c 8.5 (Berkeley) 1/21/94
+
+// $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
+
+type Sched_param = struct{ Fsched_priority int32 } /* sched.h:80:1 */
+
+type Pthread_cleanup_store = struct{ Fpad [4]uintptr } /* pthread.h:170:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go b/vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go
new file mode 100644
index 00000000..a1bee6a5
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go
@@ -0,0 +1,2020 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_openbsd_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ARG_MAX = 524288
+ BC_BASE_MAX = 2147483647
+ BC_DIM_MAX = 65535
+ BC_SCALE_MAX = 2147483647
+ BC_STRING_MAX = 2147483647
+ BIG_ENDIAN = 4321
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_OBJERR = 3
+ BYTE_ORDER = 1234
+ CHAR_BIT = 8
+ CHAR_MAX = 0x7f
+ CHAR_MIN = -128
+ CHILD_MAX = 80
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ CLK_TCK = 100
+ CLOCKS_PER_SEC = 100
+ CLOCK_BOOTTIME = 6
+ CLOCK_MONOTONIC = 3
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 4
+ CLOCK_UPTIME = 5
+ COLL_WEIGHTS_MAX = 2
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ EMT_TAGOVF = 1
+ EXPR_NEST_MAX = 32
+ FD_SETSIZE = 1024
+ FPE_FLTDIV = 3
+ FPE_FLTINV = 7
+ FPE_FLTOVF = 4
+ FPE_FLTRES = 6
+ FPE_FLTSUB = 8
+ FPE_FLTUND = 5
+ FPE_INTDIV = 1
+ FPE_INTOVF = 2
+ GID_MAX = 4294967295
+ HOST_NAME_MAX = 255
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 3
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 2
+ ILL_ILLTRP = 4
+ ILL_PRVOPC = 5
+ ILL_PRVREG = 6
+ INT_MAX = 0x7fffffff
+ INT_MIN = -2147483648
+ IOV_MAX = 1024
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LITTLE_ENDIAN = 1234
+ LLONG_MAX = 0x7fffffffffffffff
+ LLONG_MIN = -9223372036854775808
+ LOGIN_NAME_MAX = 32
+ LONG_BIT = 64
+ LONG_MAX = 0x7fffffffffffffff
+ LONG_MIN = -9223372036854775808
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MB_LEN_MAX = 4
+ MINSIGSTKSZ = 12288
+ NAME_MAX = 255
+ NBBY = 8
+ NGROUPS_MAX = 16
+ NL_ARGMAX = 9
+ NL_LANGMAX = 14
+ NL_MSGMAX = 32767
+ NL_SETMAX = 255
+ NL_TEXTMAX = 255
+ NSIG = 33
+ NSIGBUS = 3
+ NSIGCLD = 6
+ NSIGEMT = 1
+ NSIGFPE = 8
+ NSIGILL = 8
+ NSIGSEGV = 2
+ NSIGTRAP = 2
+ NZERO = 20
+ OPEN_MAX = 64
+ PATH_MAX = 1024
+ PDP_ENDIAN = 3412
+ PIPE_BUF = 512
+ PTHREAD_BARRIER_SERIAL_THREAD = -1
+ PTHREAD_CANCEL_ASYNCHRONOUS = 2
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_DISABLE = 1
+ PTHREAD_CANCEL_ENABLE = 0
+ PTHREAD_CREATE_DETACHED = 1
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_DESTRUCTOR_ITERATIONS = 4
+ PTHREAD_DETACHED = 0x1
+ PTHREAD_DONE_INIT = 1
+ PTHREAD_EXPLICIT_SCHED = 0
+ PTHREAD_INHERIT_SCHED = 0x4
+ PTHREAD_KEYS_MAX = 256
+ PTHREAD_NEEDS_INIT = 0
+ PTHREAD_NOFLOAT = 0x8
+ PTHREAD_PRIO_INHERIT = 1
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 2
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 0
+ PTHREAD_SCOPE_SYSTEM = 0x2
+ PTHREAD_STACK_MIN = 4096
+ PTHREAD_THREADS_MAX = 18446744073709551615
+ QUAD_MAX = 0x7fffffffffffffff
+ QUAD_MIN = -9223372036854775808
+ RE_DUP_MAX = 255
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SCHAR_MAX = 0x7f
+ SCHAR_MIN = -128
+ SCHED_FIFO = 1
+ SCHED_OTHER = 2
+ SCHED_RR = 3
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEM_VALUE_MAX = 4294967295
+ SHRT_MAX = 0x7fff
+ SHRT_MIN = -32768
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 28672
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTHR = 32
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SIZE_T_MAX = 18446744073709551615
+ SI_LWP = -1
+ SI_MAXSZ = 128
+ SI_NOINFO = 32767
+ SI_QUEUE = -2
+ SI_TIMER = -3
+ SI_USER = 0
+ SSIZE_MAX = 9223372036854775807
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SYMLINK_MAX = 1024
+ SYMLOOP_MAX = 32
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ TTY_NAME_MAX = 260
+ UCHAR_MAX = 0xff
+ UID_MAX = 4294967295
+ UINT_MAX = 0xffffffff
+ ULLONG_MAX = 0xffffffffffffffff
+ ULONG_MAX = 0xffffffffffffffff
+ UQUAD_MAX = 0xffffffffffffffff
+ USHRT_MAX = 0xffff
+ WORD_BIT = 32
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LIMITS_H_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE_LIMITS_H_ = 0
+ X_MACHINE_SIGNAL_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_NSIG = 33
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_POSIX2_BC_BASE_MAX = 99
+ X_POSIX2_BC_DIM_MAX = 2048
+ X_POSIX2_BC_SCALE_MAX = 99
+ X_POSIX2_BC_STRING_MAX = 1000
+ X_POSIX2_CHARCLASS_NAME_MAX = 14
+ X_POSIX2_COLL_WEIGHTS_MAX = 2
+ X_POSIX2_EXPR_NEST_MAX = 32
+ X_POSIX2_LINE_MAX = 2048
+ X_POSIX2_RE_DUP_MAX = 255
+ X_POSIX_ARG_MAX = 4096
+ X_POSIX_CHILD_MAX = 25
+ X_POSIX_CLOCKRES_MIN = 20000000
+ X_POSIX_HOST_NAME_MAX = 255
+ X_POSIX_LINK_MAX = 8
+ X_POSIX_LOGIN_NAME_MAX = 9
+ X_POSIX_MAX_CANON = 255
+ X_POSIX_MAX_INPUT = 255
+ X_POSIX_NAME_MAX = 14
+ X_POSIX_NGROUPS_MAX = 8
+ X_POSIX_OPEN_MAX = 20
+ X_POSIX_PATH_MAX = 256
+ X_POSIX_PIPE_BUF = 512
+ X_POSIX_RE_DUP_MAX = 255
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SEM_VALUE_MAX = 32767
+ X_POSIX_SSIZE_MAX = 32767
+ X_POSIX_STREAM_MAX = 8
+ X_POSIX_SYMLINK_MAX = 255
+ X_POSIX_SYMLOOP_MAX = 8
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_THREADS_MAX = 4
+ X_POSIX_TTY_NAME_MAX = 9
+ X_POSIX_TZNAME_MAX = 6
+ X_PTHREAD_H_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SCHED_H_ = 0
+ X_SELECT_DEFINED_ = 0
+ X_SIGSET_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_LIMITS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_SIGINFO_H = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TIME_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIMESPEC_DECLARED = 0
+ X_TIMEVAL_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ X_XOPEN_IOV_MAX = 16
+ X_XOPEN_NAME_MAX = 255
+ X_XOPEN_PATH_MAX = 1024
+ Unix = 1
+)
+
+// Flags for once initialization.
+
+// Static once initialization values.
+
+// Static initialization values.
+
+// Mutex types.
+const ( /* pthread.h:168:1: */
+ PTHREAD_MUTEX_ERRORCHECK = 1 // Error checking mutex
+ PTHREAD_MUTEX_RECURSIVE = 2 // Recursive mutex
+ PTHREAD_MUTEX_NORMAL = 3 // No error checking
+ PTHREAD_MUTEX_STRICT_NP = 4 // Strict error checking
+ PTHREAD_MUTEX_TYPE_MAX = 5
+)
+
+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 */
+
+// $OpenBSD: pthread.h,v 1.4 2018/03/05 01:15:26 deraadt Exp $
+
+// Copyright (c) 1993, 1994 by Chris Provenzano, proven@mit.edu
+// Copyright (c) 1995-1998 by John Birrell <jb@cimlogic.com.au>
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by Chris Provenzano.
+// 4. The name of Chris Provenzano may not be used to endorse or promote
+// products derived from this software without specific prior written
+// permission.
+//
+// THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``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 CHRIS PROVENZANO 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.
+//
+// $FreeBSD: pthread.h,v 1.13 1999/07/31 08:36:07 rse Exp $
+
+// Header files.
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $
+// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft 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.2 (Berkeley) 7/10/94
+
+// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther 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
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* select.h:41:1 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* select.h:49:1 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+// We don't want to pollute the namespace with select(2) internals.
+// Non-underscore versions are exposed later #if __BSD_VISIBLE
+type X__fd_mask = Uint32_t /* select.h:70:18 */
+
+type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */
+
+type Fd_set = Fd_set1 /* select.h:76:3 */
+
+type Sigset_t = uint32 /* select.h:122:22 */
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:72:1 */
+
+// Operations on timevals.
+
+// Operations on timespecs.
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:148:1 */
+
+// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE})
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:157:1 */
+
+// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $
+// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $
+
+// Copyright (c) 1989 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 5.12 (Berkeley) 3/9/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha 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.
+
+// Per-process and per-thread clocks encode the PID or TID into the
+// high bits, with the type in the bottom bits
+
+// Structure defined by POSIX 1003.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:56:1 */
+
+type Locale_t = uintptr /* time.h:107:14 */
+
+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:111:1 */
+
+// $OpenBSD: signal.h,v 1.29 2018/04/18 16:05:20 deraadt Exp $
+// $NetBSD: signal.h,v 1.21 1996/02/09 18:25:32 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.2 (Berkeley) 1/21/94
+
+// $OpenBSD: signal.h,v 1.9 2016/05/10 18:39:42 deraadt Exp $
+// $NetBSD: signal.h,v 1.2 2003/04/28 23:16:17 bjh21 Exp $
+
+// Copyright (c) 1982, 1986, 1989, 1991 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.
+//
+// @(#)signal.h 7.16 (Berkeley) 3/17/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+type Sig_atomic_t = int32 /* signal.h:40:13 */
+
+// Information pushed on stack when a signal is delivered.
+// This is used by the kernel to restore state following
+// execution of the signal handler. It is also made available
+// to the handler to allow it to restore state properly if
+// a non-standard exit is performed.
+type Sigcontext = struct {
+ Fsc_rdi int64
+ Fsc_rsi int64
+ Fsc_rdx int64
+ Fsc_rcx int64
+ Fsc_r8 int64
+ Fsc_r9 int64
+ Fsc_r10 int64
+ Fsc_r11 int64
+ Fsc_r12 int64
+ Fsc_r13 int64
+ Fsc_r14 int64
+ Fsc_r15 int64
+ Fsc_rbp int64
+ Fsc_rbx int64
+ Fsc_rax int64
+ Fsc_gs int64
+ Fsc_fs int64
+ Fsc_es int64
+ Fsc_ds int64
+ Fsc_trapno int64
+ Fsc_err int64
+ Fsc_rip int64
+ Fsc_cs int64
+ Fsc_rflags int64
+ Fsc_rsp int64
+ Fsc_ss int64
+ Fsc_fpstate uintptr
+ F__sc_unused int32
+ Fsc_mask int32
+ Fsc_cookie int64
+} /* signal.h:54:1 */
+
+// Language spec says we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+
+// $OpenBSD: siginfo.h,v 1.12 2017/04/07 04:48:44 guenther Exp $
+
+// Copyright (c) 1997 Theo de Raadt
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* siginfo.h:33:1 */
+
+// Negative signal codes are reserved for future use for
+// user generated signals.
+
+// The machine dependent signal codes (SIGILL, SIGFPE,
+// SIGSEGV, and SIGBUS)
+
+// SIGTRAP signal codes
+
+// SIGCHLD signal codes
+
+// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $
+// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft 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.2 (Berkeley) 7/10/94
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_code int32
+ Fsi_errno int32
+ F__ccgo_pad1 [4]byte
+ F_data struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [29]int32
+ F__ccgo_pad2 [4]byte
+ }
+} /* siginfo.h:173:3 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:112:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// Flags for sigprocmask:
+
+type Sig_t = uintptr /* signal.h:146:14 */ // type of signal function
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:152:1 */
+
+// Macro for converting signal number to a mask suitable for
+// sigblock().
+
+// Structure used in sigaltstack call.
+type Sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size Size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:176:9 */
+
+// Macro for converting signal number to a mask suitable for
+// sigblock().
+
+// Structure used in sigaltstack call.
+type Stack_t = Sigaltstack /* signal.h:180:3 */
+
+type Ucontext_t = Sigcontext /* signal.h:190:27 */
+
+// $OpenBSD: limits.h,v 1.19 2015/01/20 22:09:50 tedu Exp $
+// $NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $
+
+// Copyright (c) 1988 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.
+//
+// @(#)limits.h 5.9 (Berkeley) 4/3/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: limits.h,v 1.10 2012/06/30 20:21:10 guenther Exp $
+// Copyright (c) 2002 Marc Espie.
+//
+// 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 OPENBSD PROJECT 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 OPENBSD
+// PROJECT 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.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// Common definitions for limits.h.
+
+// Legacy
+// $OpenBSD: limits.h,v 1.6 2015/04/30 13:42:08 millert Exp $
+
+// Copyright (c) 1988 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.
+//
+// @(#)limits.h 7.2 (Berkeley) 6/28/90
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// max value for unsigned long
+// max value for a signed long
+// min value for a signed long
+
+// max value for unsigned long long
+// max value for a signed long long
+// min value for a signed long long
+
+// $OpenBSD: syslimits.h,v 1.14 2020/04/02 18:00:00 deraadt Exp $
+// $NetBSD: syslimits.h,v 1.12 1995/10/05 05:26:19 thorpej Exp $
+
+// Copyright (c) 1988, 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/93
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: sched.h,v 1.1 2017/10/15 23:40:33 guenther Exp $
+
+// sched.h: POSIX 1003.1b Process Scheduling header
+
+// -
+// Copyright (c) 1996, 1997
+// HD Associates, Inc. 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by HD Associates, Inc
+// and Jukka Antero Ukkonen.
+// 4. Neither the name of the author nor the names of any co-contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES 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 HD ASSOCIATES 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.
+//
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $
+// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $
+
+// Copyright (c) 1989 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 5.12 (Berkeley) 3/9/91
+
+// Scheduling policies
+
+type Sched_param = struct{ Fsched_priority int32 } /* sched.h:51:1 */
+
+type Pthread_once = struct {
+ Fstate int32
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* pthread.h:101:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* pthread.h:112:26 */
+type Pthread_attr_t = uintptr /* pthread.h:113:30 */
+type Pthread_mutex_t = uintptr /* pthread.h:114:39 */
+type Pthread_mutexattr_t = uintptr /* pthread.h:115:35 */
+type Pthread_cond_t = uintptr /* pthread.h:116:30 */
+type Pthread_condattr_t = uintptr /* pthread.h:117:34 */
+type Pthread_key_t = int32 /* pthread.h:118:16 */
+type Pthread_once_t = Pthread_once /* pthread.h:119:30 */
+type Pthread_rwlock_t = uintptr /* pthread.h:120:32 */
+type Pthread_rwlockattr_t = uintptr /* pthread.h:121:35 */
+type Pthread_barrier_t = uintptr /* pthread.h:122:33 */
+type Pthread_barrierattr_t = uintptr /* pthread.h:123:36 */
+type Pthread_spinlock_t = uintptr /* pthread.h:124:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* pthread.h:132:14 */
+type Pthread_startroutine_t = uintptr /* pthread.h:133:14 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_windows_386.go b/vendor/modernc.org/libc/pthread/pthread_windows_386.go
new file mode 100644
index 00000000..c18aec3f
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_windows_386.go
@@ -0,0 +1,1165 @@
+// Code generated by 'ccgo pthread/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 pthread/pthread_windows_386.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 100
+ EADDRNOTAVAIL = 101
+ EAFNOSUPPORT = 102
+ EAGAIN = 11
+ EALREADY = 103
+ EBADF = 9
+ EBADMSG = 104
+ EBUSY = 16
+ ECANCELED = 105
+ ECHILD = 10
+ ECONNABORTED = 106
+ ECONNREFUSED = 107
+ ECONNRESET = 108
+ EDEADLK = 36
+ EDEADLOCK = 36
+ EDESTADDRREQ = 109
+ EDOM = 33
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTUNREACH = 110
+ EIDRM = 111
+ EILSEQ = 42
+ EINPROGRESS = 112
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 113
+ EISDIR = 21
+ ELOOP = 114
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 115
+ ENAMETOOLONG = 38
+ ENETDOWN = 116
+ ENETRESET = 117
+ ENETUNREACH = 118
+ ENFILE = 23
+ ENOBUFS = 119
+ ENODATA = 120
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOFILE = 2
+ ENOLCK = 39
+ ENOLINK = 121
+ ENOMEM = 12
+ ENOMSG = 122
+ ENOPROTOOPT = 123
+ ENOSPC = 28
+ ENOSR = 124
+ ENOSTR = 125
+ ENOSYS = 40
+ ENOTCONN = 126
+ ENOTDIR = 20
+ ENOTEMPTY = 41
+ ENOTRECOVERABLE = 127
+ ENOTSOCK = 128
+ ENOTSUP = 129
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 130
+ EOVERFLOW = 132
+ EOWNERDEAD = 133
+ EPERM = 1
+ EPIPE = 32
+ EPROTO = 134
+ EPROTONOSUPPORT = 135
+ EPROTOTYPE = 136
+ ERANGE = 34
+ EROFS = 30
+ ESPIPE = 29
+ ESRCH = 3
+ ETIME = 137
+ ETIMEDOUT = 138
+ ETXTBSY = 139
+ EWOULDBLOCK = 140
+ EXDEV = 18
+ GENERIC_ERRORCHECK_INITIALIZER = -2
+ GENERIC_INITIALIZER = -1
+ GENERIC_NORMAL_INITIALIZER = -1
+ GENERIC_RECURSIVE_INITIALIZER = -3
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MAX_READ_LOCKS = 2147483646
+ MB_LEN_MAX = 5
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ NSIG = 23
+ OLD_P_OVERLAY = 2
+ PATH_MAX = 260
+ PTHREAD_BARRIER_SERIAL_THREAD = 1
+ PTHREAD_CANCEL_ASYNCHRONOUS = 0x02
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_DISABLE = 0
+ PTHREAD_CANCEL_ENABLE = 0x01
+ PTHREAD_CREATE_DETACHED = 0x04
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_DEFAULT_ATTR = 1
+ PTHREAD_DESTRUCTOR_ITERATIONS = 256
+ PTHREAD_EXPLICIT_SCHED = 0
+ PTHREAD_INHERIT_SCHED = 0x08
+ PTHREAD_KEYS_MAX = 1048576
+ PTHREAD_MUTEX_ADAPTIVE_NP = 0
+ PTHREAD_MUTEX_DEFAULT = 0
+ PTHREAD_MUTEX_ERRORCHECK = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 1
+ PTHREAD_MUTEX_FAST_NP = 0
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_PRIVATE = 0
+ PTHREAD_MUTEX_RECURSIVE = 2
+ PTHREAD_MUTEX_RECURSIVE_NP = 2
+ PTHREAD_MUTEX_SHARED = 1
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_ONCE_INIT = 0
+ PTHREAD_PRIO_INHERIT = 8
+ PTHREAD_PRIO_MULT = 32
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 16
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 0
+ PTHREAD_SCOPE_SYSTEM = 0x10
+ PTHREAD_THREADS_MAX = 2019
+ P_DETACH = 4
+ P_NOWAIT = 1
+ P_NOWAITO = 3
+ P_OVERLAY = 2
+ P_WAIT = 0
+ RWLS_PER_THREAD = 8
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SCHED_FIFO = 1
+ SCHED_MAX = 2
+ SCHED_MIN = 0
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ SEM_NSEMS_MAX = 1024
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIGABRT = 22
+ SIGABRT2 = 22
+ SIGABRT_COMPAT = 6
+ SIGBREAK = 21
+ SIGFPE = 8
+ SIGILL = 4
+ SIGINT = 2
+ SIGSEGV = 11
+ SIGTERM = 15
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ SIZE_MAX = 4294967295
+ SSIZE_MAX = 2147483647
+ STRUNCATE = 80
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ USHRT_MAX = 65535
+ WAIT_CHILD = 0
+ WAIT_GRANDCHILD = 1
+ WIN32 = 1
+ WINNT = 1
+ WINPTHREAD_API = 0
+ WIN_PTHREADS_H = 0
+ WIN_PTHREADS_PTHREAD_COMPAT_H = 0
+ WIN_PTHREADS_SIGNAL_H = 0
+ WIN_PTHREADS_UNISTD_H = 0
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ANSI_STDDEF_H = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_ERRNO_DEFINED = 0
+ X_CRT_GETPID_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_SYSTEM_DEFINED = 0
+ X_CRT_TERMINATE_DEFINED = 0
+ X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0
+ X_CRT_WSYSTEM_DEFINED = 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_GCC_LIMITS_H_ = 0
+ X_GCC_MAX_ALIGN_T = 0
+ X_GTHREAD_USE_MUTEX_INIT_FUNC = 1
+ X_I16_MAX = 32767
+ X_I16_MIN = -32768
+ X_I32_MAX = 2147483647
+ X_I32_MIN = -2147483648
+ X_I64_MAX = 9223372036854775807
+ X_I64_MIN = -9223372036854775808
+ X_I8_MAX = 127
+ X_I8_MIN = -128
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CORECRT_STARTUP = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_ERRNO = 0
+ X_INC_LIMITS = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_PROCESS = 0
+ X_INC_SIGNAL = 0
+ X_INC_STDDEF = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LIMITS_H___ = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_OLD_P_OVERLAY = 2
+ X_PGLOBAL = 0
+ X_PID_T_ = 0
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CLOCK_SELECTION = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 256
+ X_POSIX_THREAD_KEYS_MAX = 1048576
+ X_POSIX_TIMEOUTS = 200112
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_P_DETACH = 4
+ X_P_NOWAIT = 1
+ X_P_NOWAITO = 3
+ X_P_OVERLAY = 2
+ X_P_WAIT = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_ERRCODE_VALUES_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIGSET_T_ = 0
+ X_SIG_ATOMIC_T_DEFINED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SPAWNV_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_STDDEF_H = 0
+ X_STDDEF_H_ = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMEB_DEFINED = 0
+ X_TIMEB_H_ = 0
+ X_TIMEB_H_S = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UI16_MAX = 0xffff
+ X_UI32_MAX = 0xffffffff
+ X_UI64_MAX = 0xffffffffffffffff
+ X_UI8_MAX = 0xff
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WAIT_CHILD = 0
+ X_WAIT_GRANDCHILD = 1
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WEXEC_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WSPAWN_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Parts of this library are derived by:
+//
+// Posix Threads library for Microsoft Windows
+//
+// Use at own risk, there is no implied warranty to this code.
+// It uses undocumented features of Microsoft Windows that can change
+// at any time in the future.
+//
+// (C) 2010 Lockless Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of Lockless Inc. 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN
+// 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 COPYRIGHT HOLDER 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.
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+// snaroff@next.com says the NeXT needs this.
+// Irix 5.1 needs this.
+
+// 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_
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// If this symbol has done its job, get rid of it.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// 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.
+
+// A null pointer constant.
+
+// Offset of member MEMBER in a struct of type TYPE.
+
+// Type whose alignment is supported in every context and is at least
+// as great as that of any standard type not using alignment
+// specifiers.
+type Max_align_t = struct {
+ F__max_align_ll int64
+ F__max_align_ld float64
+} /* stddef.h:427:3 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+// *
+// 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 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.
+
+// Posix thread extensions.
+
+// Extension defined as by report VC 10+ defines error-numbers.
+
+// Defined as WSAETIMEDOUT.
+
+// *
+// 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 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.
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int32 /* types.h:60:13 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+type Mode_t = X_mode_t /* types.h:77:17 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+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
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* types.h:94:1 */
+
+type X_sigset_t = uint32 /* types.h:106:23 */
+
+type X_PVFV = uintptr /* corecrt_startup.h:20:14 */
+type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
+type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
+
+type X_onexit_table_t1 = struct {
+ F_first uintptr
+ F_last uintptr
+ F_end uintptr
+} /* corecrt_startup.h:24:9 */
+
+type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
+
+type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
+
+// Includes a definition of _pid_t and pid_t
+// *
+// 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.
+
+type X_beginthread_proc_type = uintptr /* process.h:32:16 */
+type X_beginthreadex_proc_type = uintptr /* process.h:33:20 */
+
+type X_tls_callback_type = uintptr /* process.h:61:16 */
+
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// *
+// 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 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.
+
+// File system limits
+//
+// NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
+// required for the NUL. TODO: Test?
+// NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
+// are semantically identical, with a limit of 259 characters for the
+// path name, plus one for a terminating NUL, for a total of 260.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+// *
+// 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 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.
+
+//
+// Copyright (c) 2013-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Windows has rudimentary signals support.
+
+type Sig_atomic_t = int32 /* signal.h:18:15 */
+
+type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
+
+// *
+// 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 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.
+
+type X__timeb32 = struct {
+ Ftime X__time32_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:53:3 */
+
+type Timeb = struct {
+ Ftime Time_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:61:3 */
+
+type X__timeb64 = struct {
+ Ftime X__time64_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:69:3 */
+
+// maximum number of times a read lock may be obtained
+
+// No fork() in windows - so ignore this
+
+// unsupported stuff:
+
+type Pthread_once_t = int32 /* pthread.h:180:14 */
+type Pthread_mutexattr_t = uint32 /* pthread.h:181:18 */
+type Pthread_key_t = uint32 /* pthread.h:182:18 */
+type Pthread_barrierattr_t = uintptr /* pthread.h:183:14 */
+type Pthread_condattr_t = int32 /* pthread.h:184:13 */
+type Pthread_rwlockattr_t = int32 /* pthread.h:185:13 */
+
+//
+// struct _pthread_v;
+//
+// typedef struct pthread_t {
+// struct _pthread_v *p;
+// int x;
+// } pthread_t;
+
+type Pthread_t = Uintptr_t /* pthread.h:196:19 */
+
+type X_pthread_cleanup1 = struct {
+ Ffunc uintptr
+ Farg uintptr
+ Fnext uintptr
+} /* pthread.h:198:9 */
+
+type X_pthread_cleanup = X_pthread_cleanup1 /* pthread.h:198:33 */
+
+// Note that if async cancelling is used, then there is a race here
+
+// Windows doesn't have this, so declare it ourselves.
+
+// Some POSIX realtime extensions, mostly stubbed
+
+type Sched_param = struct{ Fsched_priority int32 } /* pthread.h:239:1 */
+
+type Pthread_attr_t1 = struct {
+ Fp_state uint32
+ Fstack uintptr
+ Fs_size Size_t
+ Fparam struct{ Fsched_priority int32 }
+} /* pthread.h:251:9 */
+
+type Pthread_attr_t = Pthread_attr_t1 /* pthread.h:251:31 */
+
+// synchronization objects
+type Pthread_spinlock_t = Intptr_t /* pthread.h:268:18 */
+type Pthread_mutex_t = Intptr_t /* pthread.h:269:18 */
+type Pthread_cond_t = Intptr_t /* pthread.h:270:18 */
+type Pthread_rwlock_t = Intptr_t /* pthread.h:271:18 */
+type Pthread_barrier_t = uintptr /* pthread.h:272:14 */
+
+type Clockid_t = int32 /* pthread.h:389:13 */
+
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Set defines described by the POSIX Threads Extension (1003.1c-1995)
+// _SC_THREADS
+// Basic support for POSIX threads is available. The functions
+//
+// pthread_atfork(),
+// pthread_attr_destroy(),
+// pthread_attr_getdetachstate(),
+// pthread_attr_getschedparam(),
+// pthread_attr_init(),
+// pthread_attr_setdetachstate(),
+// pthread_attr_setschedparam(),
+// pthread_cancel(),
+// pthread_cleanup_push(),
+// pthread_cleanup_pop(),
+// pthread_cond_broadcast(),
+// pthread_cond_destroy(),
+// pthread_cond_init(),
+// pthread_cond_signal(),
+// pthread_cond_timedwait(),
+// pthread_cond_wait(),
+// pthread_condattr_destroy(),
+// pthread_condattr_init(),
+// pthread_create(),
+// pthread_detach(),
+// pthread_equal(),
+// pthread_exit(),
+// pthread_getspecific(),
+// pthread_join(,
+// pthread_key_create(),
+// pthread_key_delete(),
+// pthread_mutex_destroy(),
+// pthread_mutex_init(),
+// pthread_mutex_lock(),
+// pthread_mutex_trylock(),
+// pthread_mutex_unlock(),
+// pthread_mutexattr_destroy(),
+// pthread_mutexattr_init(),
+// pthread_once(),
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init(),
+// pthread_self(),
+// pthread_setcancelstate(),
+// pthread_setcanceltype(),
+// pthread_setspecific(),
+// pthread_testcancel()
+//
+// are present.
+
+// _SC_READER_WRITER_LOCKS
+// This option implies the _POSIX_THREADS option. Conversely, under
+// POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
+//
+// The functions
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init()
+//
+// are present.
+
+// _SC_SPIN_LOCKS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_spin_destroy(),
+// pthread_spin_init(),
+// pthread_spin_lock(),
+// pthread_spin_trylock(),
+// pthread_spin_unlock()
+//
+// are present.
+
+// _SC_BARRIERS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_barrier_destroy(),
+// pthread_barrier_init(),
+// pthread_barrier_wait(),
+// pthread_barrierattr_destroy(),
+// pthread_barrierattr_init()
+//
+// are present.
+
+// _SC_TIMEOUTS
+// The functions
+//
+// mq_timedreceive(), - not supported
+// mq_timedsend(), - not supported
+// posix_trace_timedgetnext_event(), - not supported
+// pthread_mutex_timedlock(),
+// pthread_rwlock_timedrdlock(),
+// pthread_rwlock_timedwrlock(),
+// sem_timedwait(),
+//
+// are present.
+
+// _SC_TIMERS - not supported
+// The functions
+//
+// clock_getres(),
+// clock_gettime(),
+// clock_settime(),
+// nanosleep(),
+// timer_create(),
+// timer_delete(),
+// timer_gettime(),
+// timer_getoverrun(),
+// timer_settime()
+//
+// are present.
+// #undef _POSIX_TIMERS
+
+// _SC_CLOCK_SELECTION
+// This option implies the _POSIX_TIMERS option. The functions
+//
+// pthread_condattr_getclock(),
+// pthread_condattr_setclock(),
+// clock_nanosleep()
+//
+// are present.
+
+// _SC_SEMAPHORES
+// The include file <semaphore.h> is present. The functions
+//
+// sem_close(),
+// sem_destroy(),
+// sem_getvalue(),
+// sem_init(),
+// sem_open(),
+// sem_post(),
+// sem_trywait(),
+// sem_unlink(),
+// sem_wait()
+//
+// are present.
+
+// Wrap cancellation points.
+
+// We deal here with a gcc issue for posix threading on Windows.
+// We would need to change here gcc's gthr-posix.h header, but this
+// got rejected. So we deal it within this header.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread/pthread_windows_amd64.go b/vendor/modernc.org/libc/pthread/pthread_windows_amd64.go
new file mode 100644
index 00000000..31f34bad
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread/pthread_windows_amd64.go
@@ -0,0 +1,1172 @@
+// Code generated by 'ccgo pthread\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 pthread\pthread_windows_amd64.go -pkgname pthread', DO NOT EDIT.
+
+package pthread
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ E2BIG = 7
+ EACCES = 13
+ EADDRINUSE = 100
+ EADDRNOTAVAIL = 101
+ EAFNOSUPPORT = 102
+ EAGAIN = 11
+ EALREADY = 103
+ EBADF = 9
+ EBADMSG = 104
+ EBUSY = 16
+ ECANCELED = 105
+ ECHILD = 10
+ ECONNABORTED = 106
+ ECONNREFUSED = 107
+ ECONNRESET = 108
+ EDEADLK = 36
+ EDEADLOCK = 36
+ EDESTADDRREQ = 109
+ EDOM = 33
+ EEXIST = 17
+ EFAULT = 14
+ EFBIG = 27
+ EHOSTUNREACH = 110
+ EIDRM = 111
+ EILSEQ = 42
+ EINPROGRESS = 112
+ EINTR = 4
+ EINVAL = 22
+ EIO = 5
+ EISCONN = 113
+ EISDIR = 21
+ ELOOP = 114
+ EMFILE = 24
+ EMLINK = 31
+ EMSGSIZE = 115
+ ENAMETOOLONG = 38
+ ENETDOWN = 116
+ ENETRESET = 117
+ ENETUNREACH = 118
+ ENFILE = 23
+ ENOBUFS = 119
+ ENODATA = 120
+ ENODEV = 19
+ ENOENT = 2
+ ENOEXEC = 8
+ ENOFILE = 2
+ ENOLCK = 39
+ ENOLINK = 121
+ ENOMEM = 12
+ ENOMSG = 122
+ ENOPROTOOPT = 123
+ ENOSPC = 28
+ ENOSR = 124
+ ENOSTR = 125
+ ENOSYS = 40
+ ENOTCONN = 126
+ ENOTDIR = 20
+ ENOTEMPTY = 41
+ ENOTRECOVERABLE = 127
+ ENOTSOCK = 128
+ ENOTSUP = 129
+ ENOTTY = 25
+ ENXIO = 6
+ EOPNOTSUPP = 130
+ EOVERFLOW = 132
+ EOWNERDEAD = 133
+ EPERM = 1
+ EPIPE = 32
+ EPROTO = 134
+ EPROTONOSUPPORT = 135
+ EPROTOTYPE = 136
+ ERANGE = 34
+ EROFS = 30
+ ESPIPE = 29
+ ESRCH = 3
+ ETIME = 137
+ ETIMEDOUT = 138
+ ETXTBSY = 139
+ EWOULDBLOCK = 140
+ EXDEV = 18
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MAX_READ_LOCKS = 2147483646
+ MB_LEN_MAX = 5
+ 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
+ NSIG = 23
+ OLD_P_OVERLAY = 2
+ PATH_MAX = 260
+ PTHREAD_BARRIER_SERIAL_THREAD = 1
+ PTHREAD_CANCEL_ASYNCHRONOUS = 0x02
+ PTHREAD_CANCEL_DEFERRED = 0
+ PTHREAD_CANCEL_DISABLE = 0
+ PTHREAD_CANCEL_ENABLE = 0x01
+ PTHREAD_CREATE_DETACHED = 0x04
+ PTHREAD_CREATE_JOINABLE = 0
+ PTHREAD_DEFAULT_ATTR = 1
+ PTHREAD_DESTRUCTOR_ITERATIONS = 256
+ PTHREAD_EXPLICIT_SCHED = 0
+ PTHREAD_INHERIT_SCHED = 0x08
+ PTHREAD_KEYS_MAX = 1048576
+ PTHREAD_MUTEX_ADAPTIVE_NP = 0
+ PTHREAD_MUTEX_DEFAULT = 0
+ PTHREAD_MUTEX_ERRORCHECK = 1
+ PTHREAD_MUTEX_ERRORCHECK_NP = 1
+ PTHREAD_MUTEX_FAST_NP = 0
+ PTHREAD_MUTEX_NORMAL = 0
+ PTHREAD_MUTEX_PRIVATE = 0
+ PTHREAD_MUTEX_RECURSIVE = 2
+ PTHREAD_MUTEX_RECURSIVE_NP = 2
+ PTHREAD_MUTEX_SHARED = 1
+ PTHREAD_MUTEX_TIMED_NP = 0
+ PTHREAD_ONCE_INIT = 0
+ PTHREAD_PRIO_INHERIT = 8
+ PTHREAD_PRIO_MULT = 32
+ PTHREAD_PRIO_NONE = 0
+ PTHREAD_PRIO_PROTECT = 16
+ PTHREAD_PROCESS_PRIVATE = 0
+ PTHREAD_PROCESS_SHARED = 1
+ PTHREAD_SCOPE_PROCESS = 0
+ PTHREAD_SCOPE_SYSTEM = 0x10
+ PTHREAD_THREADS_MAX = 2019
+ P_DETACH = 4
+ P_NOWAIT = 1
+ P_NOWAITO = 3
+ P_OVERLAY = 2
+ P_WAIT = 0
+ RWLS_PER_THREAD = 8
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SCHED_FIFO = 1
+ SCHED_MAX = 2
+ SCHED_MIN = 0
+ SCHED_OTHER = 0
+ SCHED_RR = 2
+ SEM_NSEMS_MAX = 1024
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIGABRT = 22
+ SIGABRT2 = 22
+ SIGABRT_COMPAT = 6
+ SIGBREAK = 21
+ SIGFPE = 8
+ SIGILL = 4
+ SIGINT = 2
+ SIGSEGV = 11
+ SIGTERM = 15
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ SIZE_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ STRUNCATE = 80
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ USHRT_MAX = 65535
+ WAIT_CHILD = 0
+ WAIT_GRANDCHILD = 1
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ WINPTHREAD_API = 0
+ WIN_PTHREADS_H = 0
+ WIN_PTHREADS_PTHREAD_COMPAT_H = 0
+ WIN_PTHREADS_SIGNAL_H = 0
+ WIN_PTHREADS_UNISTD_H = 0
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ANSI_STDDEF_H = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_ERRNO_DEFINED = 0
+ X_CRT_GETPID_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_SYSTEM_DEFINED = 0
+ X_CRT_TERMINATE_DEFINED = 0
+ X_CRT_WSYSTEM_DEFINED = 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_GCC_LIMITS_H_ = 0
+ X_GCC_MAX_ALIGN_T = 0
+ X_GTHREAD_USE_MUTEX_INIT_FUNC = 1
+ X_I16_MAX = 32767
+ X_I16_MIN = -32768
+ X_I32_MAX = 2147483647
+ X_I32_MIN = -2147483648
+ X_I64_MAX = 9223372036854775807
+ X_I64_MIN = -9223372036854775808
+ X_I8_MAX = 127
+ X_I8_MIN = -128
+ X_INC_CORECRT_STARTUP = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_ERRNO = 0
+ X_INC_LIMITS = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_PROCESS = 0
+ X_INC_SIGNAL = 0
+ X_INC_STDDEF = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LIMITS_H___ = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_OLD_P_OVERLAY = 2
+ X_PGLOBAL = 0
+ X_PID_T_ = 0
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CLOCK_SELECTION = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SEM_NSEMS_MAX = 256
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 256
+ X_POSIX_THREAD_KEYS_MAX = 1048576
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_TIMEOUTS = 200112
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_P_DETACH = 4
+ X_P_NOWAIT = 1
+ X_P_NOWAITO = 3
+ X_P_OVERLAY = 2
+ X_P_WAIT = 0
+ X_REENTRANT = 1
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_ERRCODE_VALUES_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIGSET_T_ = 0
+ X_SIG_ATOMIC_T_DEFINED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SPAWNV_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_STDDEF_H = 0
+ X_STDDEF_H_ = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMEB_DEFINED = 0
+ X_TIMEB_H_ = 0
+ X_TIMEB_H_S = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UI16_MAX = 0xffff
+ X_UI32_MAX = 0xffffffff
+ X_UI64_MAX = 0xffffffffffffffff
+ X_UI8_MAX = 0xff
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WAIT_CHILD = 0
+ X_WAIT_GRANDCHILD = 1
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WEXEC_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WSPAWN_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Parts of this library are derived by:
+//
+// Posix Threads library for Microsoft Windows
+//
+// Use at own risk, there is no implied warranty to this code.
+// It uses undocumented features of Microsoft Windows that can change
+// at any time in the future.
+//
+// (C) 2010 Lockless Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of Lockless Inc. 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN
+// 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 COPYRIGHT HOLDER 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.
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+// snaroff@next.com says the NeXT needs this.
+// Irix 5.1 needs this.
+
+// 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_
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// If this symbol has done its job, get rid of it.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// 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.
+
+// A null pointer constant.
+
+// Offset of member MEMBER in a struct of type TYPE.
+
+// Type whose alignment is supported in every context and is at least
+// as great as that of any standard type not using alignment
+// specifiers.
+type Max_align_t = struct {
+ F__max_align_ll int64
+ F__max_align_ld float64
+} /* stddef.h:426:3 */
+
+// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+// *
+// 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 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.
+
+// Posix thread extensions.
+
+// Extension defined as by report VC 10+ defines error-numbers.
+
+// Defined as WSAETIMEDOUT.
+
+// *
+// 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 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.
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int64 /* types.h:63:17 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+type Mode_t = X_mode_t /* types.h:77:17 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+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
+ F__ccgo_pad1 [4]byte
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ 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_PVFV = uintptr /* corecrt_startup.h:20:14 */
+type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
+type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
+
+type X_onexit_table_t1 = struct {
+ F_first uintptr
+ F_last uintptr
+ F_end uintptr
+} /* corecrt_startup.h:24:9 */
+
+type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
+
+type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
+
+// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// *
+// 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 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.
+
+// File system limits
+//
+// NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
+// required for the NUL. TODO: Test?
+// NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
+// are semantically identical, with a limit of 259 characters for the
+// path name, plus one for a terminating NUL, for a total of 260.
+
+// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+// *
+// 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 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.
+
+//
+// Copyright (c) 2013-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Windows has rudimentary signals support.
+
+type Sig_atomic_t = int32 /* signal.h:18:15 */
+
+type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
+
+// *
+// 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 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.
+
+type X__timeb32 = struct {
+ Ftime X__time32_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:53:3 */
+
+type Timeb = struct {
+ Ftime Time_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:61:3 */
+
+type X__timeb64 = struct {
+ Ftime X__time64_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:69:3 */
+
+// maximum number of times a read lock may be obtained
+
+// No fork() in windows - so ignore this
+
+// unsupported stuff:
+
+type Pthread_once_t = int32 /* pthread.h:180:14 */
+type Pthread_mutexattr_t = uint32 /* pthread.h:181:18 */
+type Pthread_key_t = uint32 /* pthread.h:182:18 */
+type Pthread_barrierattr_t = uintptr /* pthread.h:183:14 */
+type Pthread_condattr_t = int32 /* pthread.h:184:13 */
+type Pthread_rwlockattr_t = int32 /* pthread.h:185:13 */
+
+//
+// struct _pthread_v;
+//
+// typedef struct pthread_t {
+// struct _pthread_v *p;
+// int x;
+// } pthread_t;
+
+type Pthread_t = Uintptr_t /* pthread.h:196:19 */
+
+type X_pthread_cleanup1 = struct {
+ Ffunc uintptr
+ Farg uintptr
+ Fnext uintptr
+} /* pthread.h:198:9 */
+
+type X_pthread_cleanup = X_pthread_cleanup1 /* pthread.h:198:33 */
+
+// Note that if async cancelling is used, then there is a race here
+
+// Windows doesn't have this, so declare it ourselves.
+
+// Some POSIX realtime extensions, mostly stubbed
+
+type Sched_param = struct{ Fsched_priority int32 } /* pthread.h:239:1 */
+
+type Pthread_attr_t1 = struct {
+ Fp_state uint32
+ F__ccgo_pad1 [4]byte
+ Fstack uintptr
+ Fs_size Size_t
+ Fparam struct{ Fsched_priority int32 }
+ F__ccgo_pad2 [4]byte
+} /* pthread.h:251:9 */
+
+type Pthread_attr_t = Pthread_attr_t1 /* pthread.h:251:31 */
+
+// synchronization objects
+type Pthread_spinlock_t = uintptr /* pthread.h:268:14 */
+type Pthread_mutex_t = uintptr /* pthread.h:269:14 */
+type Pthread_cond_t = uintptr /* pthread.h:270:14 */
+type Pthread_rwlock_t = uintptr /* pthread.h:271:14 */
+type Pthread_barrier_t = uintptr /* pthread.h:272:14 */
+
+type Clockid_t = int32 /* pthread.h:389:13 */
+
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Set defines described by the POSIX Threads Extension (1003.1c-1995)
+// _SC_THREADS
+// Basic support for POSIX threads is available. The functions
+//
+// pthread_atfork(),
+// pthread_attr_destroy(),
+// pthread_attr_getdetachstate(),
+// pthread_attr_getschedparam(),
+// pthread_attr_init(),
+// pthread_attr_setdetachstate(),
+// pthread_attr_setschedparam(),
+// pthread_cancel(),
+// pthread_cleanup_push(),
+// pthread_cleanup_pop(),
+// pthread_cond_broadcast(),
+// pthread_cond_destroy(),
+// pthread_cond_init(),
+// pthread_cond_signal(),
+// pthread_cond_timedwait(),
+// pthread_cond_wait(),
+// pthread_condattr_destroy(),
+// pthread_condattr_init(),
+// pthread_create(),
+// pthread_detach(),
+// pthread_equal(),
+// pthread_exit(),
+// pthread_getspecific(),
+// pthread_join(,
+// pthread_key_create(),
+// pthread_key_delete(),
+// pthread_mutex_destroy(),
+// pthread_mutex_init(),
+// pthread_mutex_lock(),
+// pthread_mutex_trylock(),
+// pthread_mutex_unlock(),
+// pthread_mutexattr_destroy(),
+// pthread_mutexattr_init(),
+// pthread_once(),
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init(),
+// pthread_self(),
+// pthread_setcancelstate(),
+// pthread_setcanceltype(),
+// pthread_setspecific(),
+// pthread_testcancel()
+//
+// are present.
+
+// _SC_READER_WRITER_LOCKS
+// This option implies the _POSIX_THREADS option. Conversely, under
+// POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
+//
+// The functions
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init()
+//
+// are present.
+
+// _SC_SPIN_LOCKS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_spin_destroy(),
+// pthread_spin_init(),
+// pthread_spin_lock(),
+// pthread_spin_trylock(),
+// pthread_spin_unlock()
+//
+// are present.
+
+// _SC_BARRIERS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_barrier_destroy(),
+// pthread_barrier_init(),
+// pthread_barrier_wait(),
+// pthread_barrierattr_destroy(),
+// pthread_barrierattr_init()
+//
+// are present.
+
+// _SC_THREAD_SAFE_FUNCTIONS
+// Affected functions are
+//
+// readdir_r(),
+// getgrgid_r(),
+// getgrnam_r(),
+// getpwnam_r(),
+// getpwuid_r(),
+// flockfile(),
+// ftrylockfile(),
+// funlockfile(),
+// getc_unlocked(),
+// getchar_unlocked(),
+// putc_unlocked(),
+// putchar_unlocked(),
+// strerror_r(),
+
+// _SC_TIMEOUTS
+// The functions
+//
+// mq_timedreceive(), - not supported
+// mq_timedsend(), - not supported
+// posix_trace_timedgetnext_event(), - not supported
+// pthread_mutex_timedlock(),
+// pthread_rwlock_timedrdlock(),
+// pthread_rwlock_timedwrlock(),
+// sem_timedwait(),
+//
+// are present.
+
+// _SC_TIMERS - not supported
+// The functions
+//
+// clock_getres(),
+// clock_gettime(),
+// clock_settime(),
+// nanosleep(),
+// timer_create(),
+// timer_delete(),
+// timer_gettime(),
+// timer_getoverrun(),
+// timer_settime()
+//
+// are present.
+// #undef _POSIX_TIMERS
+
+// _SC_CLOCK_SELECTION
+// This option implies the _POSIX_TIMERS option. The functions
+//
+// pthread_condattr_getclock(),
+// pthread_condattr_setclock(),
+// clock_nanosleep()
+//
+// are present.
+
+// _SC_SEMAPHORES
+// The include file <semaphore.h> is present. The functions
+//
+// sem_close(),
+// sem_destroy(),
+// sem_getvalue(),
+// sem_init(),
+// sem_open(),
+// sem_post(),
+// sem_trywait(),
+// sem_unlink(),
+// sem_wait()
+//
+// are present.
+
+// Wrap cancellation points.
+
+// We deal here with a gcc issue for posix threading on Windows.
+// We would need to change here gcc's gthr-posix.h header, but this
+// got rejected. So we deal it within this header.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pthread_all.go b/vendor/modernc.org/libc/pthread_all.go
new file mode 100644
index 00000000..4e2b7f10
--- /dev/null
+++ b/vendor/modernc.org/libc/pthread_all.go
@@ -0,0 +1,44 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !freebsd && !openbsd
+// +build !freebsd,!openbsd
+
+package libc // import "modernc.org/libc"
+
+import (
+ "unsafe"
+
+ "modernc.org/libc/pthread"
+)
+
+// int pthread_attr_init(pthread_attr_t *attr);
+func Xpthread_attr_init(t *TLS, pAttr uintptr) int32 {
+ *(*pthread.Pthread_attr_t)(unsafe.Pointer(pAttr)) = pthread.Pthread_attr_t{}
+ return 0
+}
+
+// The pthread_mutex_init() function shall initialize the mutex referenced by
+// mutex with attributes specified by attr. If attr is NULL, the default mutex
+// attributes are used; the effect shall be the same as passing the address of
+// a default mutex attributes object. Upon successful initialization, the state
+// of the mutex becomes initialized and unlocked.
+//
+// If successful, the pthread_mutex_destroy() and pthread_mutex_init()
+// functions shall return zero; otherwise, an error number shall be returned to
+// indicate the error.
+//
+// int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);
+func Xpthread_mutex_init(t *TLS, pMutex, pAttr uintptr) int32 {
+ typ := pthread.PTHREAD_MUTEX_DEFAULT
+ if pAttr != 0 {
+ typ = int(X__ccgo_pthreadMutexattrGettype(t, pAttr))
+ }
+ mutexesMu.Lock()
+
+ defer mutexesMu.Unlock()
+
+ mutexes[pMutex] = newMutex(typ)
+ return 0
+}
diff --git a/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go b/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go
new file mode 100644
index 00000000..38f65ad6
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_darwin_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go b/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go
new file mode 100644
index 00000000..0231bc16
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_darwin_arm64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_freebsd_386.go b/vendor/modernc.org/libc/pwd/capi_freebsd_386.go
new file mode 100644
index 00000000..26510fa6
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_freebsd_386.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_freebsd_amd64.go b/vendor/modernc.org/libc/pwd/capi_freebsd_amd64.go
new file mode 100644
index 00000000..d488fcf5
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_freebsd_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_linux_386.go b/vendor/modernc.org/libc/pwd/capi_linux_386.go
new file mode 100644
index 00000000..89453ca1
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_386.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_linux_amd64.go b/vendor/modernc.org/libc/pwd/capi_linux_amd64.go
new file mode 100644
index 00000000..cbc2f115
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_linux_arm.go b/vendor/modernc.org/libc/pwd/capi_linux_arm.go
new file mode 100644
index 00000000..32cc57bc
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_arm.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_linux_arm64.go b/vendor/modernc.org/libc/pwd/capi_linux_arm64.go
new file mode 100644
index 00000000..8fb5d138
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_arm64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_linux_s390x.go b/vendor/modernc.org/libc/pwd/capi_linux_s390x.go
new file mode 100644
index 00000000..bc28bad8
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_s390x.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_netbsd_amd64.go b/vendor/modernc.org/libc/pwd/capi_netbsd_amd64.go
new file mode 100644
index 00000000..3ab523bd
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_netbsd_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go b/vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go
new file mode 100644
index 00000000..c5df3b42
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_openbsd_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go b/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go
new file mode 100644
index 00000000..073da409
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go
@@ -0,0 +1,1074 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_darwin_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GID_T = 0
+ X_LP64 = 1
+ X_MASTERPASSWD = "master.passwd"
+ X_MP_DB = "pwd.db"
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PASSWD = "passwd"
+ X_PASSWORD_CHGNOW = -1
+ X_PASSWORD_EFMT1 = 95
+ X_PASSWORD_LEN = 128
+ X_PASSWORD_NOCHG = 0x04
+ X_PASSWORD_NOEXP = 0x08
+ X_PASSWORD_NOGID = 0x02
+ X_PASSWORD_NOUID = 0x01
+ X_PASSWORD_WARNDAYS = 14
+ X_PATH_MASTERPASSWD = "/etc/master.passwd"
+ X_PATH_MASTERPASSWD_LOCK = "/etc/ptmp"
+ X_PATH_MP_DB = "/etc/pwd.db"
+ X_PATH_PASSWD = "/etc/passwd"
+ X_PATH_PWD = "/etc"
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb"
+ X_PATH_SMP_DB = "/etc/spwd.db"
+ X_PWD_H_ = 0
+ X_PW_KEYBYNAME = 49
+ X_PW_KEYBYNUM = 50
+ X_PW_KEYBYUID = 51
+ X_SIZE_T = 0
+ X_SMP_DB = "spwd.db"
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T = 0
+ X_UUID_STRING_T = 0
+ X_UUID_T = 0
+ X_UUID_UUID_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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// 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.
+// Portions Copyright(C) 1995, Jason Downs. 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)pwd.h 8.2 (Berkeley) 1/21/94
+// Portions copyright (c) 2000-2011 Apple Inc. All rights reserved.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid Uid_t
+ Fpw_gid Gid_t
+ Fpw_change X__darwin_time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire X__darwin_time_t
+} /* pwd.h:84:1 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go b/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go
new file mode 100644
index 00000000..1cd771aa
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go
@@ -0,0 +1,1060 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_darwin_arm64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GID_T = 0
+ X_LP64 = 1
+ X_MASTERPASSWD = "master.passwd"
+ X_MP_DB = "pwd.db"
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PASSWD = "passwd"
+ X_PASSWORD_CHGNOW = -1
+ X_PASSWORD_EFMT1 = 95
+ X_PASSWORD_LEN = 128
+ X_PASSWORD_NOCHG = 0x04
+ X_PASSWORD_NOEXP = 0x08
+ X_PASSWORD_NOGID = 0x02
+ X_PASSWORD_NOUID = 0x01
+ X_PASSWORD_WARNDAYS = 14
+ X_PATH_MASTERPASSWD = "/etc/master.passwd"
+ X_PATH_MASTERPASSWD_LOCK = "/etc/ptmp"
+ X_PATH_MP_DB = "/etc/pwd.db"
+ X_PATH_PASSWD = "/etc/passwd"
+ X_PATH_PWD = "/etc"
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb"
+ X_PATH_SMP_DB = "/etc/spwd.db"
+ X_PWD_H_ = 0
+ X_PW_KEYBYNAME = 49
+ X_PW_KEYBYNUM = 50
+ X_PW_KEYBYUID = 51
+ X_SIZE_T = 0
+ X_SMP_DB = "spwd.db"
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T = 0
+ X_UUID_STRING_T = 0
+ X_UUID_T = 0
+ X_UUID_UUID_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 */
+
+// -
+// 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.
+// Portions Copyright(C) 1995, Jason Downs. 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)pwd.h 8.2 (Berkeley) 1/21/94
+// Portions copyright (c) 2000-2011 Apple Inc. All rights reserved.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid Uid_t
+ Fpw_gid Gid_t
+ Fpw_change X__darwin_time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire X__darwin_time_t
+} /* pwd.h:84:1 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_freebsd_386.go b/vendor/modernc.org/libc/pwd/pwd_freebsd_386.go
new file mode 100644
index 00000000..17575d11
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_freebsd_386.go
@@ -0,0 +1,670 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_freebsd_386.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MASTERPASSWD = "master.passwd"
+ X_MP_DB = "pwd.db"
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PASSWD = "passwd"
+ X_PASSWORD_EFMT1 = 95
+ X_PASSWORD_LEN = 128
+ X_PATH_MASTERPASSWD = "/etc/master.passwd"
+ X_PATH_MP_DB = "/etc/pwd.db"
+ X_PATH_PASSWD = "/etc/passwd"
+ X_PATH_PWD = "/etc"
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb"
+ X_PATH_SMP_DB = "/etc/spwd.db"
+ X_PWD_CURRENT_VERSION = 4
+ X_PWD_H_ = 0
+ X_PWF_CHANGE = 16
+ X_PWF_CLASS = 32
+ X_PWF_DIR = 128
+ X_PWF_EXPIRE = 512
+ X_PWF_FILES = 0x1000
+ X_PWF_GECOS = 64
+ X_PWF_GID = 8
+ X_PWF_HESIOD = 0x3000
+ X_PWF_NAME = 1
+ X_PWF_NIS = 0x2000
+ X_PWF_PASSWD = 2
+ X_PWF_SHELL = 256
+ X_PWF_SOURCE = 0x3000
+ X_PWF_UID = 4
+ X_PW_KEYBYNAME = 49
+ X_PW_KEYBYNUM = 50
+ X_PW_KEYBYUID = 51
+ X_PW_KEYYPBYNUM = 53
+ X_PW_KEYYPENABLED = 52
+ X_PW_VERSION_MASK = 240
+ X_SIZE_T_DECLARED = 0
+ X_SMP_DB = "spwd.db"
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// @(#)pwd.h 8.2 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Gid_t = X__gid_t /* pwd.h:47:18 */
+
+type Time_t = X__time_t /* pwd.h:52:18 */
+
+type Uid_t = X__uid_t /* pwd.h:57:18 */
+
+// Historically, the keys in _PATH_MP_DB/_PATH_SMP_DB had the format
+// `1 octet tag | key', where the tag is one of the _PW_KEY* values
+// listed below. These values happen to be ASCII digits. Starting
+// with FreeBSD 5.1, the tag is now still a single octet, but the
+// upper 4 bits are interpreted as a version. Pre-FreeBSD 5.1 format
+// entries are version `3' -- this conveniently results in the same
+// key values as before. The new, architecture-independent entries
+// are version `4'.
+// As it happens, some applications read the database directly.
+// (Bad app, no cookie!) Thus, we leave the _PW_KEY* symbols at their
+// old pre-FreeBSD 5.1 values so these apps still work. Consequently
+// we have to muck around a bit more to get the correct, versioned
+// tag, and that is what the _PW_VERSIONED macro is about.
+
+// The database also contains a key to indicate the format version of
+// the entries therein. There may be other, older versioned entries
+// as well.
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid Uid_t
+ Fpw_gid Gid_t
+ Fpw_change Time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire Time_t
+ Fpw_fields int32
+} /* pwd.h:114:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_freebsd_amd64.go b/vendor/modernc.org/libc/pwd/pwd_freebsd_amd64.go
new file mode 100644
index 00000000..357847e8
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_freebsd_amd64.go
@@ -0,0 +1,676 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_freebsd_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T_DECLARED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MASTERPASSWD = "master.passwd"
+ X_MP_DB = "pwd.db"
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PASSWD = "passwd"
+ X_PASSWORD_EFMT1 = 95
+ X_PASSWORD_LEN = 128
+ X_PATH_MASTERPASSWD = "/etc/master.passwd"
+ X_PATH_MP_DB = "/etc/pwd.db"
+ X_PATH_PASSWD = "/etc/passwd"
+ X_PATH_PWD = "/etc"
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb"
+ X_PATH_SMP_DB = "/etc/spwd.db"
+ X_PWD_CURRENT_VERSION = 4
+ X_PWD_H_ = 0
+ X_PWF_CHANGE = 16
+ X_PWF_CLASS = 32
+ X_PWF_DIR = 128
+ X_PWF_EXPIRE = 512
+ X_PWF_FILES = 0x1000
+ X_PWF_GECOS = 64
+ X_PWF_GID = 8
+ X_PWF_HESIOD = 0x3000
+ X_PWF_NAME = 1
+ X_PWF_NIS = 0x2000
+ X_PWF_PASSWD = 2
+ X_PWF_SHELL = 256
+ X_PWF_SOURCE = 0x3000
+ X_PWF_UID = 4
+ X_PW_KEYBYNAME = 49
+ X_PW_KEYBYNUM = 50
+ X_PW_KEYBYUID = 51
+ X_PW_KEYYPBYNUM = 53
+ X_PW_KEYYPENABLED = 52
+ X_PW_VERSION_MASK = 240
+ X_SIZE_T_DECLARED = 0
+ X_SMP_DB = "spwd.db"
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// @(#)pwd.h 8.2 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Gid_t = X__gid_t /* pwd.h:47:18 */
+
+type Time_t = X__time_t /* pwd.h:52:18 */
+
+type Uid_t = X__uid_t /* pwd.h:57:18 */
+
+// Historically, the keys in _PATH_MP_DB/_PATH_SMP_DB had the format
+// `1 octet tag | key', where the tag is one of the _PW_KEY* values
+// listed below. These values happen to be ASCII digits. Starting
+// with FreeBSD 5.1, the tag is now still a single octet, but the
+// upper 4 bits are interpreted as a version. Pre-FreeBSD 5.1 format
+// entries are version `3' -- this conveniently results in the same
+// key values as before. The new, architecture-independent entries
+// are version `4'.
+// As it happens, some applications read the database directly.
+// (Bad app, no cookie!) Thus, we leave the _PW_KEY* symbols at their
+// old pre-FreeBSD 5.1 values so these apps still work. Consequently
+// we have to muck around a bit more to get the correct, versioned
+// tag, and that is what the _PW_VERSIONED macro is about.
+
+// The database also contains a key to indicate the format version of
+// the entries therein. There may be other, older versioned entries
+// as well.
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid Uid_t
+ Fpw_gid Gid_t
+ Fpw_change Time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire Time_t
+ Fpw_fields int32
+ F__ccgo_pad1 [4]byte
+} /* pwd.h:114:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_linux_386.go b/vendor/modernc.org/libc/pwd/pwd_linux_386.go
new file mode 100644
index 00000000..e77eb404
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_linux_386.go
@@ -0,0 +1,772 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_386.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_PASSWD = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ 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_PWD_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 9.2.2 User Database Access <pwd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* pwd.h:38:17 */
+
+type Uid_t = X__uid_t /* pwd.h:43:17 */
+
+// A record in the user database.
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid X__uid_t
+ Fpw_gid X__gid_t
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+} /* pwd.h:49:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_linux_amd64.go b/vendor/modernc.org/libc/pwd/pwd_linux_amd64.go
new file mode 100644
index 00000000..2f553a21
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_linux_amd64.go
@@ -0,0 +1,786 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_PASSWD = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PWD_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 9.2.2 User Database Access <pwd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* pwd.h:38:17 */
+
+type Uid_t = X__uid_t /* pwd.h:43:17 */
+
+// A record in the user database.
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid X__uid_t
+ Fpw_gid X__gid_t
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+} /* pwd.h:49:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_linux_arm.go b/vendor/modernc.org/libc/pwd/pwd_linux_arm.go
new file mode 100644
index 00000000..4e675af9
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_linux_arm.go
@@ -0,0 +1,831 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_arm.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_PASSWD = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PWD_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 9.2.2 User Database Access <pwd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* pwd.h:38:17 */
+
+type Uid_t = X__uid_t /* pwd.h:43:17 */
+
+// A record in the user database.
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid X__uid_t
+ Fpw_gid X__gid_t
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+} /* pwd.h:49:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_linux_arm64.go b/vendor/modernc.org/libc/pwd/pwd_linux_arm64.go
new file mode 100644
index 00000000..d194350c
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_linux_arm64.go
@@ -0,0 +1,854 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_arm64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_PASSWD = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PWD_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 9.2.2 User Database Access <pwd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* pwd.h:38:17 */
+
+type Uid_t = X__uid_t /* pwd.h:43:17 */
+
+// A record in the user database.
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid X__uid_t
+ Fpw_gid X__gid_t
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+} /* pwd.h:49:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_linux_s390x.go b/vendor/modernc.org/libc/pwd/pwd_linux_s390x.go
new file mode 100644
index 00000000..baefeeab
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_linux_s390x.go
@@ -0,0 +1,785 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_linux_s390x.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ NSS_BUFLEN_PASSWD = 1024
+ X_ATFILE_SOURCE = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_PWD_H = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 9.2.2 User Database Access <pwd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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:214:13 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* pwd.h:38:17 */
+
+type Uid_t = X__uid_t /* pwd.h:43:17 */
+
+// A record in the user database.
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid X__uid_t
+ Fpw_gid X__gid_t
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+} /* pwd.h:49:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_netbsd_amd64.go b/vendor/modernc.org/libc/pwd/pwd_netbsd_amd64.go
new file mode 100644
index 00000000..c84692f4
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_netbsd_amd64.go
@@ -0,0 +1,1622 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_netbsd_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+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_PASSWORD_CHGNOW = -1
+ X_PASSWORD_EFMT1 = 95
+ X_PASSWORD_LEN = 128
+ X_PASSWORD_NOCHG = 0x04
+ X_PASSWORD_NOEXP = 0x08
+ X_PASSWORD_NOGID = 0x02
+ X_PASSWORD_NONDES = 36
+ X_PASSWORD_NOUID = 0x01
+ X_PASSWORD_NOWARN = 0x20
+ X_PASSWORD_OLDFMT = 0x10
+ X_PASSWORD_WARNDAYS = 14
+ X_PATH_MASTERPASSWD = "/etc/master.passwd"
+ X_PATH_MASTERPASSWD_LOCK = "/etc/ptmp"
+ X_PATH_MP_DB = "/etc/pwd.db"
+ X_PATH_PASSWD = "/etc/passwd"
+ X_PATH_PASSWD_CONF = "/etc/passwd.conf"
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb"
+ X_PATH_SMP_DB = "/etc/spwd.db"
+ X_PATH_USERMGMT_CONF = "/etc/usermgmt.conf"
+ 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_PWD_H_ = 0
+ X_PW_KEYBYNAME = 49
+ X_PW_KEYBYNUM = 50
+ X_PW_KEYBYUID = 51
+ 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: 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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+// $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 */
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid X__uid_t
+ Fpw_gid X__gid_t
+ Fpw_change Time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire Time_t
+} /* pwd.h:107:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go b/vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go
new file mode 100644
index 00000000..d26f04f6
--- /dev/null
+++ b/vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go
@@ -0,0 +1,729 @@
+// Code generated by 'ccgo pwd/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 pwd/pwd_openbsd_amd64.go -pkgname pwd', DO NOT EDIT.
+
+package pwd
+
+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
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PASSWORD_EFMT1 = 95
+ X_PASSWORD_LEN = 128
+ X_PASSWORD_NOCHG = 0x04
+ X_PASSWORD_NOEXP = 0x08
+ X_PASSWORD_NOGID = 0x02
+ X_PASSWORD_NOUID = 0x01
+ X_PASSWORD_OMITV7 = 0x02
+ X_PASSWORD_SECUREONLY = 0x01
+ X_PATH_MASTERPASSWD = "/etc/master.passwd"
+ X_PATH_MASTERPASSWD_LOCK = "/etc/ptmp"
+ X_PATH_MP_DB = "/etc/pwd.db"
+ X_PATH_PASSWD = "/etc/passwd"
+ X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb"
+ X_PATH_SMP_DB = "/etc/spwd.db"
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_PWD_H_ = 0
+ X_PW_BUF_LEN = 1024
+ X_PW_KEYBYNAME = 49
+ X_PW_KEYBYNUM = 50
+ X_PW_KEYBYUID = 51
+ X_PW_NAME_LEN = 31
+ X_PW_YPTOKEN = "__YP!"
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: pwd.h,v 1.26 2018/09/13 12:31:15 millert Exp $
+// $NetBSD: pwd.h,v 1.9 1996/05/15 21:36:45 jtc 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.
+// Portions Copyright(C) 1995, 1996, Jason Downs. 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.
+//
+// @(#)pwd.h 8.2 (Berkeley) 1/21/94
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// Should be MAXLOGNAME - 1
+
+// Flags for pw_mkdb(3)
+
+type Passwd = struct {
+ Fpw_name uintptr
+ Fpw_passwd uintptr
+ Fpw_uid Uid_t
+ Fpw_gid Gid_t
+ Fpw_change Time_t
+ Fpw_class uintptr
+ Fpw_gecos uintptr
+ Fpw_dir uintptr
+ Fpw_shell uintptr
+ Fpw_expire Time_t
+} /* pwd.h:80:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/scanf.go b/vendor/modernc.org/libc/scanf.go
new file mode 100644
index 00000000..955db04e
--- /dev/null
+++ b/vendor/modernc.org/libc/scanf.go
@@ -0,0 +1,443 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "strings"
+ "unsafe"
+)
+
+// The format string consists of a sequence of directives which describe how to
+// process the sequence of input characters. If processing of a directive
+// fails, no further input is read, and scanf() returns. A "failure" can
+// be either of the following: input failure, meaning that input characters
+// were unavailable, or matching failure, meaning that the input was
+// inappropriate.
+func scanf(r *strings.Reader, format, args uintptr) (nvalues int32) {
+ var src []byte //TODO-
+ var ok bool
+out:
+ for {
+ c := *(*byte)(unsafe.Pointer(format))
+ src = append(src, c) //TODO-
+ switch c {
+ case '%':
+ var n int
+ var match bool
+ format, n, match = scanfConversion(r, format, &args)
+ if !match {
+ break out
+ }
+
+ nvalues += int32(n)
+ ok = true
+ case 0:
+ break out
+ case ' ', '\t', '\n', '\r', '\v', '\f':
+ format = skipWhiteSpace(format)
+ ok = true
+ next:
+ for {
+ c, err := r.ReadByte()
+ if err != nil {
+ break out
+ }
+
+ switch c {
+ case ' ', '\t', '\n', '\r', '\v', '\f':
+ // nop
+ default:
+ r.UnreadByte()
+ break next
+ }
+ }
+ default:
+ c2, err := r.ReadByte()
+ if err != nil {
+ break out
+ }
+
+ if c2 != c {
+ r.UnreadByte()
+ break out
+ }
+
+ format++
+ ok = true
+ }
+ }
+ if ok {
+ return nvalues
+ }
+
+ return -1 // stdio.EOF but not defined for windows
+}
+
+func scanfConversion(r *strings.Reader, format uintptr, args *uintptr) (_ uintptr, nvalues int, match bool) {
+ format++ // '%'
+
+ // Each conversion specification in format begins with either the character '%'
+ // or the character sequence "%n$" (see below for the distinction) followed by:
+
+ mod := 0
+ width := -1
+flags:
+ for {
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case '*':
+ // An optional '*' assignment-suppression character: scanf() reads input as
+ // directed by the conversion specification, but discards the input. No
+ // corresponding pointer argument is re‐ quired, and this specification is not
+ // included in the count of successful assignments returned by scanf().
+ format++
+ panic(todo(""))
+ case '\'':
+ // For decimal conversions, an optional quote character ('). This specifies
+ // that the input number may include thousands' separators as defined by the
+ // LC_NUMERIC category of the current locale. (See setlocale(3).) The quote
+ // character may precede or follow the '*' assignment-suppression character.
+ format++
+ panic(todo(""))
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ // An optional decimal integer which specifies the maximum field width.
+ // Reading of characters stops either when this maximum is reached or when a
+ // nonmatching character is found, whichever happens first. Most conversions
+ // discard initial white space characters (the exceptions are noted below), and
+ // these discarded characters don't count toward the maximum field width.
+ // String input conversions store a terminating null byte ('\0') to mark the
+ // end of the input; the maximum field width does not include this terminator.
+ width = 0
+ num:
+ for {
+ var digit int
+ switch c := *(*byte)(unsafe.Pointer(format)); {
+ default:
+ break num
+ case c >= '0' && c <= '9':
+ format++
+ digit = int(c) - '0'
+ }
+ width0 := width
+ width = 10*width + digit
+ if width < width0 {
+ panic(todo(""))
+ }
+ }
+ case 'h', 'j', 'l', 'L', 'q', 't', 'z':
+ format, mod = parseLengthModifier(format)
+ default:
+ break flags
+ }
+ }
+
+ // A conversion specifier that specifies the type of input conversion to be
+ // performed.
+ switch c := *(*byte)(unsafe.Pointer(format)); c {
+ case '%':
+ // Matches a literal '%'. That is, %% in the format string matches a single
+ // input '%' character. No conversion is done (but initial white space
+ // characters are discarded), and assign‐ ment does not occur.
+ format++
+ panic(todo(""))
+ case 'd':
+ // Matches an optionally signed decimal integer; the next pointer must be a
+ // pointer to int.
+ format++
+ skipReaderWhiteSpace(r)
+ var digit, n uint64
+ allowSign := true
+ neg := false
+ dec:
+ for ; width != 0; width-- {
+ c, err := r.ReadByte()
+ if err != nil {
+ if match {
+ break dec
+ }
+
+ panic(todo("", err))
+ }
+
+ if allowSign {
+ switch c {
+ case '-':
+ allowSign = false
+ neg = true
+ continue
+ case '+':
+ allowSign = false
+ continue
+ }
+ }
+
+ switch {
+ case c >= '0' && c <= '9':
+ digit = uint64(c) - '0'
+ default:
+ r.UnreadByte()
+ break dec
+ }
+ match = true
+ n0 := n
+ n = n*10 + digit
+ if n < n0 {
+ panic(todo(""))
+ }
+ }
+ if !match {
+ break
+ }
+
+ arg := VaUintptr(args)
+ v := int64(n)
+ if neg {
+ v = -v
+ }
+ switch mod {
+ case modNone:
+ *(*int32)(unsafe.Pointer(arg)) = int32(v)
+ case modH:
+ *(*int16)(unsafe.Pointer(arg)) = int16(v)
+ case modHH:
+ *(*int8)(unsafe.Pointer(arg)) = int8(v)
+ case modL:
+ *(*long)(unsafe.Pointer(arg)) = long(n)
+ default:
+ panic(todo(""))
+ }
+ nvalues = 1
+ case 'D':
+ // Equivalent to ld; this exists only for backward compatibility. (Note:
+ // thus only in libc4. In libc5 and glibc the %D is silently ignored, causing
+ // old programs to fail mysteriously.)
+ format++
+ panic(todo(""))
+ case 'i':
+ // Matches an optionally signed integer; the next pointer must be a pointer to
+ // int. The integer is read in base 16 if it begins with 0x or 0X, in base 8
+ // if it begins with 0, and in base 10 otherwise. Only characters that
+ // correspond to the base are used.
+ format++
+ panic(todo(""))
+ case 'o':
+ // Matches an unsigned octal integer; the next pointer must be a pointer to
+ // unsigned int.
+ format++
+ panic(todo(""))
+ case 'u':
+ // Matches an unsigned decimal integer; the next pointer must be a pointer to
+ // unsigned int.
+ format++
+ panic(todo(""))
+ case 'x', 'X':
+ // Matches an unsigned hexadecimal integer; the next pointer must be a pointer
+ // to unsigned int.
+ format++
+ skipReaderWhiteSpace(r)
+ var digit, n uint64
+ allowPrefix := true
+ var b []byte
+ hex:
+ for ; width != 0; width-- {
+ c, err := r.ReadByte()
+ if err != nil {
+ if match {
+ break hex
+ }
+
+ panic(todo("", err))
+ }
+
+ if allowPrefix {
+ if len(b) == 1 && b[0] == '0' && (c == 'x' || c == 'X') {
+ allowPrefix = false
+ match = false
+ b = nil
+ continue
+ }
+
+ b = append(b, c)
+ }
+
+ switch {
+ case c >= '0' && c <= '9':
+ digit = uint64(c) - '0'
+ case c >= 'a' && c <= 'f':
+ digit = uint64(c) - 'a' + 10
+ case c >= 'A' && c <= 'F':
+ digit = uint64(c) - 'A' + 10
+ default:
+ r.UnreadByte()
+ break hex
+ }
+ match = true
+ n0 := n
+ n = n<<4 + digit
+ if n < n0 {
+ panic(todo(""))
+ }
+ }
+ if !match {
+ break
+ }
+
+ arg := VaUintptr(args)
+ switch mod {
+ case modNone:
+ *(*uint32)(unsafe.Pointer(arg)) = uint32(n)
+ case modH:
+ *(*uint16)(unsafe.Pointer(arg)) = uint16(n)
+ case modHH:
+ *(*byte)(unsafe.Pointer(arg)) = byte(n)
+ case modL:
+ *(*ulong)(unsafe.Pointer(arg)) = ulong(n)
+ default:
+ panic(todo(""))
+ }
+ nvalues = 1
+ case 'f', 'e', 'g', 'E', 'a':
+ // Matches an optionally signed floating-point number; the next pointer must be
+ // a pointer to float.
+ format++
+ panic(todo(""))
+ case 's':
+ // Matches a sequence of non-white-space characters; the next pointer must be
+ // a pointer to the initial element of a character array that is long enough to
+ // hold the input sequence and the terminating null byte ('\0'), which is added
+ // automatically. The input string stops at white space or at the maximum
+ // field width, whichever occurs first.
+ format++
+ panic(todo(""))
+ case 'c':
+ // Matches a sequence of characters whose length is specified by the maximum
+ // field width (default 1); the next pointer must be a pointer to char, and
+ // there must be enough room for all the characters (no terminating null byte
+ // is added). The usual skip of leading white space is suppressed. To skip
+ // white space first, use an explicit space in the format.
+ format++
+ panic(todo(""))
+ case '[':
+ // Matches a nonempty sequence of characters from the specified set of
+ // accepted characters; the next pointer must be a pointer to char, and there
+ // must be enough room for all the char‐ acters in the string, plus a
+ // terminating null byte. The usual skip of leading white space is suppressed.
+ // The string is to be made up of characters in (or not in) a particular set;
+ // the set is defined by the characters between the open bracket [ character
+ // and a close bracket ] character. The set excludes those characters if the
+ // first character after the open bracket is a circumflex (^). To include a
+ // close bracket in the set, make it the first character after the open bracket
+ // or the circumflex; any other position will end the set. The hyphen
+ // character - is also special; when placed between two other characters, it
+ // adds all intervening characters to the set. To include a hyphen, make it
+ // the last character before the final close bracket. For instance, [^]0-9-]
+ // means the set "everything except close bracket, zero through nine, and
+ // hyphen". The string ends with the appearance of a character not in the
+ // (or, with a circumflex, in) set or when the field width runs out.
+ format++
+ panic(todo(""))
+ case 'p':
+ // Matches a pointer value (as printed by %p in printf(3); the next pointer
+ // must be a pointer to a pointer to void.
+ format++
+ skipReaderWhiteSpace(r)
+ c, err := r.ReadByte()
+ if err != nil {
+ panic(todo(""))
+ }
+
+ if c != '0' {
+ r.UnreadByte()
+ panic(todo(""))
+ }
+
+ if c, err = r.ReadByte(); err != nil {
+ panic(todo(""))
+ }
+
+ if c != 'x' && c != 'X' {
+ r.UnreadByte()
+ panic(todo(""))
+ }
+
+ var digit, n uint64
+ ptr:
+ for ; width != 0; width-- {
+ c, err := r.ReadByte()
+ if err != nil {
+ if match {
+ break ptr
+ }
+
+ panic(todo(""))
+ }
+
+ switch {
+ case c >= '0' && c <= '9':
+ digit = uint64(c) - '0'
+ case c >= 'a' && c <= 'f':
+ digit = uint64(c) - 'a' + 10
+ case c >= 'A' && c <= 'F':
+ digit = uint64(c) - 'A' + 10
+ default:
+ r.UnreadByte()
+ break ptr
+ }
+ match = true
+ n0 := n
+ n = n<<4 + digit
+ if n < n0 {
+ panic(todo(""))
+ }
+ }
+ if !match {
+ break
+ }
+
+ arg := VaUintptr(args)
+ *(*uintptr)(unsafe.Pointer(arg)) = uintptr(n)
+ nvalues = 1
+ case 'n':
+ // Nothing is expected; instead, the number of characters consumed thus far
+ // from the input is stored through the next pointer, which must be a pointer
+ // to int. This is not a conversion and does not increase the count returned
+ // by the function. The assignment can be suppressed with the *
+ // assignment-suppression character, but the effect on the return value is
+ // undefined. Therefore %*n conversions should not be used.
+ format++
+ panic(todo(""))
+ default:
+ panic(todo("%#U", c))
+ }
+
+ return format, nvalues, match
+}
+
+func skipReaderWhiteSpace(r *strings.Reader) error {
+ for {
+ c, err := r.ReadByte()
+ if err != nil {
+ return err
+ }
+
+ switch c {
+ case ' ', '\t', '\n', '\r', '\v', '\f':
+ // ok
+ default:
+ r.UnreadByte()
+ return nil
+ }
+ }
+}
+
+func skipWhiteSpace(s uintptr) uintptr {
+ for {
+ switch c := *(*byte)(unsafe.Pointer(s)); c {
+ case ' ', '\t', '\n', '\r', '\v', '\f':
+ s++
+ default:
+ return s
+ }
+ }
+}
diff --git a/vendor/modernc.org/libc/signal/capi_darwin_amd64.go b/vendor/modernc.org/libc/signal/capi_darwin_amd64.go
new file mode 100644
index 00000000..bb67e54a
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo signal/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 signal/signal_darwin_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/signal/capi_darwin_arm64.go b/vendor/modernc.org/libc/signal/capi_darwin_arm64.go
new file mode 100644
index 00000000..57a49213
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_darwin_arm64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_freebsd_386.go b/vendor/modernc.org/libc/signal/capi_freebsd_386.go
new file mode 100644
index 00000000..8bc6ff39
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_freebsd_386.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_freebsd_amd64.go b/vendor/modernc.org/libc/signal/capi_freebsd_amd64.go
new file mode 100644
index 00000000..218bb0ad
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_freebsd_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_linux_386.go b/vendor/modernc.org/libc/signal/capi_linux_386.go
new file mode 100644
index 00000000..92c263a3
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_386.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_linux_amd64.go b/vendor/modernc.org/libc/signal/capi_linux_amd64.go
new file mode 100644
index 00000000..990d5bf9
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_linux_arm.go b/vendor/modernc.org/libc/signal/capi_linux_arm.go
new file mode 100644
index 00000000..03de5408
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_arm.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_linux_arm64.go b/vendor/modernc.org/libc/signal/capi_linux_arm64.go
new file mode 100644
index 00000000..a55b1d49
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_arm64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_linux_s390x.go b/vendor/modernc.org/libc/signal/capi_linux_s390x.go
new file mode 100644
index 00000000..f7a596ff
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_s390x.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_netbsd_amd64.go b/vendor/modernc.org/libc/signal/capi_netbsd_amd64.go
new file mode 100644
index 00000000..d69eae6c
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_netbsd_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_openbsd_amd64.go b/vendor/modernc.org/libc/signal/capi_openbsd_amd64.go
new file mode 100644
index 00000000..43b1b50d
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_openbsd_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_windows_386.go b/vendor/modernc.org/libc/signal/capi_windows_386.go
new file mode 100644
index 00000000..2ac7e272
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal/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 signal/signal_windows_386.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/capi_windows_amd64.go b/vendor/modernc.org/libc/signal/capi_windows_amd64.go
new file mode 100644
index 00000000..56dec23f
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo signal\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 signal\signal_windows_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/signal/more_darwin_amd64.go b/vendor/modernc.org/libc/signal/more_darwin_amd64.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_darwin_amd64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_darwin_arm64.go b/vendor/modernc.org/libc/signal/more_darwin_arm64.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_darwin_arm64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_freebsd_386.go b/vendor/modernc.org/libc/signal/more_freebsd_386.go
new file mode 100644
index 00000000..c1791b2a
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_freebsd_386.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // sys/sys/signal.h:139:#define SIG_DFL ((__sighandler_t *)0)
+ SIG_DFL = 0
+ // sys/sys/signal.h:140:#define SIG_IGN ((__sighandler_t *)1)
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_freebsd_amd64.go b/vendor/modernc.org/libc/signal/more_freebsd_amd64.go
new file mode 100644
index 00000000..c1791b2a
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_freebsd_amd64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // sys/sys/signal.h:139:#define SIG_DFL ((__sighandler_t *)0)
+ SIG_DFL = 0
+ // sys/sys/signal.h:140:#define SIG_IGN ((__sighandler_t *)1)
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_linux_386.go b/vendor/modernc.org/libc/signal/more_linux_386.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_linux_386.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_linux_amd64.go b/vendor/modernc.org/libc/signal/more_linux_amd64.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_linux_amd64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_linux_arm.go b/vendor/modernc.org/libc/signal/more_linux_arm.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_linux_arm.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_linux_arm64.go b/vendor/modernc.org/libc/signal/more_linux_arm64.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_linux_arm64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_linux_s390x.go b/vendor/modernc.org/libc/signal/more_linux_s390x.go
new file mode 100644
index 00000000..25cc318b
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_linux_s390x.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+ SIG_DFL = 0
+ // /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_netbsd_amd64.go b/vendor/modernc.org/libc/signal/more_netbsd_amd64.go
new file mode 100644
index 00000000..c1791b2a
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_netbsd_amd64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // sys/sys/signal.h:139:#define SIG_DFL ((__sighandler_t *)0)
+ SIG_DFL = 0
+ // sys/sys/signal.h:140:#define SIG_IGN ((__sighandler_t *)1)
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/more_openbsd_amd64.go b/vendor/modernc.org/libc/signal/more_openbsd_amd64.go
new file mode 100644
index 00000000..c1791b2a
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/more_openbsd_amd64.go
@@ -0,0 +1,12 @@
+// Copyright 2020 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package signal
+
+const (
+ // sys/sys/signal.h:139:#define SIG_DFL ((__sighandler_t *)0)
+ SIG_DFL = 0
+ // sys/sys/signal.h:140:#define SIG_IGN ((__sighandler_t *)1)
+ SIG_IGN = 1
+)
diff --git a/vendor/modernc.org/libc/signal/signal_darwin_amd64.go b/vendor/modernc.org/libc/signal/signal_darwin_amd64.go
new file mode 100644
index 00000000..efd05e83
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_darwin_amd64.go
@@ -0,0 +1,4798 @@
+// Code generated by 'ccgo signal/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 signal/signal_darwin_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_NOOP = 0
+ BUS_OBJERR = 3
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_NOOP = 0
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ FPE_FLTDIV = 1
+ FPE_FLTINV = 5
+ FPE_FLTOVF = 2
+ FPE_FLTRES = 4
+ FPE_FLTSUB = 6
+ FPE_FLTUND = 3
+ FPE_INTDIV = 7
+ FPE_INTOVF = 8
+ FPE_NOOP = 0
+ FP_CHOP = 3
+ FP_PREC_24B = 0
+ FP_PREC_53B = 2
+ FP_PREC_64B = 3
+ FP_RND_DOWN = 1
+ FP_RND_NEAR = 0
+ FP_RND_UP = 2
+ FP_STATE_BYTES = 512
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 5
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 4
+ ILL_ILLTRP = 2
+ ILL_NOOP = 0
+ ILL_PRVOPC = 3
+ ILL_PRVREG = 6
+ MINSIGSTKSZ = 32768
+ NSIG = 32
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ SA_64REGSET = 0x0200
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SA_USERSPACE_MASK = 127
+ SA_USERTRAMP = 0x0100
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_NOOP = 0
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 3
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 131072
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SI_ASYNCIO = 0x10004
+ SI_MESGQ = 0x10005
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_USER = 0x10001
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_SIGNAL_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_I386_SIGNAL_H_ = 1
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_I386__STRUCTS_H_ = 0
+ X_MACH_MACHINE__STRUCTS_H_ = 0
+ X_MCONTEXT_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_T = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_USER_SIGNAL_H = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 3/30/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.2 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1992 NeXT Computer, Inc.
+//
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+type Sig_atomic_t = int32 /* signal.h:39:13 */
+
+// Language spec sez we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+// SIG_HOLD is chosen to avoid KERN_SIG_* values in <sys/signalvar.h>
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// @OSF_COPYRIGHT@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+// i386 is the structure that is exported to user threads for
+// use in status/mutate calls. This structure should never change.
+//
+
+type X__darwin_i386_thread_state = struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+} /* _structs.h:46:1 */
+
+// This structure should be double-word aligned for performance
+
+type X__darwin_fp_control = struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+} /* _structs.h:92:1 */
+
+type X__darwin_fp_control_t = X__darwin_fp_control /* _structs.h:117:28 */
+
+// Status word.
+
+type X__darwin_fp_status = struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+} /* _structs.h:150:1 */
+
+type X__darwin_fp_status_t = X__darwin_fp_status /* _structs.h:167:27 */
+
+// defn of 80bit x87 FPU or MMX register
+
+type X__darwin_mmst_reg = struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+} /* _structs.h:194:1 */
+
+// defn of 128 bit XMM regs
+
+type X__darwin_xmm_reg = struct{ F__xmm_reg [16]int8 } /* _structs.h:213:1 */
+
+// defn of 256 bit YMM regs
+
+type X__darwin_ymm_reg = struct{ F__ymm_reg [32]int8 } /* _structs.h:229:1 */
+
+// defn of 512 bit ZMM regs
+
+type X__darwin_zmm_reg = struct{ F__zmm_reg [64]int8 } /* _structs.h:245:1 */
+
+type X__darwin_opmask_reg = struct{ F__opmask_reg [8]int8 } /* _structs.h:259:1 */
+
+// Floating point state.
+
+type X__darwin_i386_float_state = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+} /* _structs.h:281:1 */
+
+type X__darwin_i386_avx_state = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+} /* _structs.h:318:1 */
+
+type X__darwin_i386_avx512_state = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+} /* _structs.h:364:1 */
+
+type X__darwin_i386_exception_state = struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+} /* _structs.h:575:1 */
+
+type X__darwin_x86_debug_state32 = struct {
+ F__dr0 uint32
+ F__dr1 uint32
+ F__dr2 uint32
+ F__dr3 uint32
+ F__dr4 uint32
+ F__dr5 uint32
+ F__dr6 uint32
+ F__dr7 uint32
+} /* _structs.h:595:1 */
+
+type X__x86_pagein_state = struct{ F__pagein_error int32 } /* _structs.h:622:1 */
+
+// 64 bit versions of the above
+
+type X__darwin_x86_thread_state64 = struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+} /* _structs.h:633:1 */
+
+// 64 bit versions of the above (complete)
+
+type X__darwin_x86_thread_full_state64 = struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+} /* _structs.h:691:1 */
+
+type X__darwin_x86_float_state64 = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+} /* _structs.h:714:1 */
+
+type X__darwin_x86_avx_state64 = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+} /* _structs.h:765:1 */
+
+type X__darwin_x86_avx512_state64 = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh8 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh9 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh10 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh11 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh12 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh13 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh14 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh15 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmm16 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm17 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm18 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm19 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm20 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm21 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm22 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm23 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm24 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm25 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm26 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm27 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm28 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm29 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm30 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm31 struct{ F__zmm_reg [64]int8 }
+} /* _structs.h:833:1 */
+
+type X__darwin_x86_exception_state64 = struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+} /* _structs.h:1172:1 */
+
+type X__darwin_x86_debug_state64 = struct {
+ F__dr0 X__uint64_t
+ F__dr1 X__uint64_t
+ F__dr2 X__uint64_t
+ F__dr3 X__uint64_t
+ F__dr4 X__uint64_t
+ F__dr5 X__uint64_t
+ F__dr6 X__uint64_t
+ F__dr7 X__uint64_t
+} /* _structs.h:1192:1 */
+
+type X__darwin_x86_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t } /* _structs.h:1220:1 */
+
+type X__darwin_mcontext32 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+ }
+ F__ss struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ }
+} /* _mcontext.h:39:1 */
+
+type X__darwin_mcontext_avx32 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+ }
+ F__ss struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ }
+} /* _mcontext.h:47:1 */
+
+type X__darwin_mcontext_avx512_32 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+ }
+ F__ss struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ }
+} /* _mcontext.h:56:1 */
+
+type X__darwin_mcontext64 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:97:1 */
+
+type X__darwin_mcontext64_full = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:105:1 */
+
+type X__darwin_mcontext_avx64 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:113:1 */
+
+type X__darwin_mcontext_avx64_full = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:121:1 */
+
+type X__darwin_mcontext_avx512_64 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh8 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh9 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh10 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh11 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh12 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh13 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh14 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh15 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmm16 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm17 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm18 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm19 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm20 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm21 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm22 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm23 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm24 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm25 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm26 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm27 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm28 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm29 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm30 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm31 struct{ F__zmm_reg [64]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:130:1 */
+
+type X__darwin_mcontext_avx512_64_full = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh8 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh9 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh10 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh11 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh12 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh13 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh14 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh15 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmm16 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm17 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm18 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm19 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm20 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm21 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm22 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm23 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm24 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm25 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm26 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm27 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm28 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm29 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm30 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm31 struct{ F__zmm_reg [64]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:138:1 */
+
+type Mcontext_t = uintptr /* _mcontext.h:204:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type X__darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* _sigaltstack.h:42:1 */
+
+type Stack_t = X__darwin_sigaltstack /* _sigaltstack.h:48:33 */ // [???] signal stack
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+} /* _ucontext.h:42:1 */
+
+// user context
+type Ucontext_t = X__darwin_ucontext /* _ucontext.h:56:33 */ // [???] user context
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:158:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:168:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+} /* signal.h:177:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:188:3 */
+
+// When the signal is SIGILL or SIGFPE, si_addr contains the address of
+// the faulting instruction.
+// When the signal is SIGSEGV or SIGBUS, si_addr contains the address of
+// the faulting memory reference. Although for x86 there are cases of SIGSEGV
+// for which si_addr cannot be determined and is NULL.
+// If the signal is SIGCHLD, the si_pid field will contain the child process ID,
+// si_status contains the exit value or signal and
+// si_uid contains the real user ID of the process that sent the signal.
+
+// Values for si_code
+
+// Codes for SIGILL
+
+// Codes for SIGFPE
+
+// Codes for SIGSEGV
+
+// Codes for SIGBUS
+
+// Codes for SIGTRAP
+
+// Codes for SIGCHLD
+
+// Codes for SIGPOLL
+
+// union for signal handlers
+type X__sigaction_u = struct{ F__sa_handler uintptr } /* signal.h:269:1 */
+
+// Signal vector template for Kernel user boundary
+type X__sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:276:1 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:286:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// This will provide 64bit register set in a 32bit user address space
+
+// the following are the only bits we support from user space, the
+// rest are for kernel use only.
+
+// Flags for sigprocmask:
+
+// POSIX 1003.1b required values.
+
+type Sig_t = uintptr /* signal.h:331:14 */ // type of signal function
+
+// Structure used in sigaltstack call.
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:348:1 */
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:367:1 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_darwin_arm64.go b/vendor/modernc.org/libc/signal/signal_darwin_arm64.go
new file mode 100644
index 00000000..d9827248
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_darwin_arm64.go
@@ -0,0 +1,3118 @@
+// Code generated by 'ccgo signal/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 signal/signal_darwin_arm64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_NOOP = 0
+ BUS_OBJERR = 3
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_NOOP = 0
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ FPE_FLTDIV = 1
+ FPE_FLTINV = 5
+ FPE_FLTOVF = 2
+ FPE_FLTRES = 4
+ FPE_FLTSUB = 6
+ FPE_FLTUND = 3
+ FPE_INTDIV = 7
+ FPE_INTOVF = 8
+ FPE_NOOP = 0
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 5
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 4
+ ILL_ILLTRP = 2
+ ILL_NOOP = 0
+ ILL_PRVOPC = 3
+ ILL_PRVREG = 6
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ MINSIGSTKSZ = 32768
+ NSIG = 32
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ SA_64REGSET = 0x0200
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SA_USERSPACE_MASK = 127
+ SA_USERTRAMP = 0x0100
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_NOOP = 0
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 3
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 131072
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SI_ASYNCIO = 0x10004
+ SI_MESGQ = 0x10005
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_USER = 0x10001
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM_SIGNAL_ = 1
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_SIGNAL_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__MCONTEXT_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_ARM__STRUCTS_H_ = 0
+ X_MACH_MACHINE__STRUCTS_H_ = 0
+ X_MCONTEXT_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_T = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_USER_SIGNAL_H = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 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 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 3/30/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.2 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2009 Apple, Inc. All rights reserved.
+// Copyright (c) 1992 NeXT Computer, Inc.
+//
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+type Sig_atomic_t = int32 /* signal.h:17:13 */
+
+// Language spec sez we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+// SIG_HOLD is chosen to avoid KERN_SIG_* values in <sys/signalvar.h>
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// @OSF_COPYRIGHT@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type X__darwin_arm_exception_state = struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+} /* _structs.h:41:1 */
+
+type X__darwin_arm_exception_state64 = struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+} /* _structs.h:59:1 */
+
+type X__darwin_arm_thread_state = struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+} /* _structs.h:77:1 */
+
+// By default, the pointer fields in the arm_thread_state64_t structure are
+// opaque on the arm64e architecture and require the use of accessor macros.
+// This mode can also be enabled on the arm64 architecture by building with
+// -D__DARWIN_OPAQUE_ARM_THREAD_STATE64=1.
+
+type X__darwin_arm_thread_state64 = struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+} /* _structs.h:136:1 */
+
+// Accessor macros for arm_thread_state64_t pointer fields
+
+// Return pc field of arm_thread_state64_t as a data pointer value
+// Return pc field of arm_thread_state64_t as a function pointer
+// Set pc field of arm_thread_state64_t to a function pointer
+// Return lr field of arm_thread_state64_t as a data pointer value
+// Return lr field of arm_thread_state64_t as a function pointer
+// Set lr field of arm_thread_state64_t to a function pointer
+// Return sp field of arm_thread_state64_t as a data pointer value
+// Set sp field of arm_thread_state64_t to a data pointer value
+// Return fp field of arm_thread_state64_t as a data pointer value
+// Set fp field of arm_thread_state64_t to a data pointer value
+// Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t
+
+type X__darwin_arm_vfp_state = struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+} /* _structs.h:424:1 */
+
+type X__darwin_arm_neon_state64 = struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:443:1 */
+
+type X__darwin_arm_neon_state = struct {
+ F__v [16]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:450:1 */
+
+type X__arm_pagein_state = struct{ F__pagein_error int32 } /* _structs.h:514:1 */
+
+// Debug State
+
+// ARM's arm_debug_state is ARM64's arm_legacy_debug_state
+
+type X__arm_legacy_debug_state = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+} /* _structs.h:551:1 */
+
+type X__darwin_arm_debug_state32 = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:574:1 */
+
+type X__darwin_arm_debug_state64 = struct {
+ F__bvr [16]X__uint64_t
+ F__bcr [16]X__uint64_t
+ F__wvr [16]X__uint64_t
+ F__wcr [16]X__uint64_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:584:1 */
+
+type X__darwin_arm_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t } /* _structs.h:616:1 */
+
+type X__darwin_mcontext32 = struct {
+ F__es struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+ }
+ F__ss struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+ }
+ F__fs struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+ }
+} /* _mcontext.h:41:1 */
+
+type X__darwin_mcontext64 = struct {
+ F__es struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+ }
+ F__ss struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+ }
+ F__ns struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+ }
+} /* _mcontext.h:64:1 */
+
+type Mcontext_t = uintptr /* _mcontext.h:85:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type X__darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* _sigaltstack.h:42:1 */
+
+type Stack_t = X__darwin_sigaltstack /* _sigaltstack.h:48:33 */ // [???] signal stack
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+type X__darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+} /* _ucontext.h:43:1 */
+
+// user context
+type Ucontext_t = X__darwin_ucontext /* _ucontext.h:57:33 */ // [???] user context
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:158:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:168:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+} /* signal.h:177:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:188:3 */
+
+// When the signal is SIGILL or SIGFPE, si_addr contains the address of
+// the faulting instruction.
+// When the signal is SIGSEGV or SIGBUS, si_addr contains the address of
+// the faulting memory reference. Although for x86 there are cases of SIGSEGV
+// for which si_addr cannot be determined and is NULL.
+// If the signal is SIGCHLD, the si_pid field will contain the child process ID,
+// si_status contains the exit value or signal and
+// si_uid contains the real user ID of the process that sent the signal.
+
+// Values for si_code
+
+// Codes for SIGILL
+
+// Codes for SIGFPE
+
+// Codes for SIGSEGV
+
+// Codes for SIGBUS
+
+// Codes for SIGTRAP
+
+// Codes for SIGCHLD
+
+// Codes for SIGPOLL
+
+// union for signal handlers
+type X__sigaction_u = struct{ F__sa_handler uintptr } /* signal.h:269:1 */
+
+// Signal vector template for Kernel user boundary
+type X__sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:276:1 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:286:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// This will provide 64bit register set in a 32bit user address space
+
+// the following are the only bits we support from user space, the
+// rest are for kernel use only.
+
+// Flags for sigprocmask:
+
+// POSIX 1003.1b required values.
+
+type Sig_t = uintptr /* signal.h:331:14 */ // type of signal function
+
+// Structure used in sigaltstack call.
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:348:1 */
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:367:1 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_freebsd_386.go b/vendor/modernc.org/libc/signal/signal_freebsd_386.go
new file mode 100644
index 00000000..1ac45993
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_freebsd_386.go
@@ -0,0 +1,1658 @@
+// Code generated by 'ccgo signal/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 signal/signal_freebsd_386.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_OBJERR = 3
+ BUS_OOMERR = 100
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ FPE_FLTDIV = 3
+ FPE_FLTINV = 7
+ FPE_FLTOVF = 4
+ FPE_FLTRES = 6
+ FPE_FLTSUB = 8
+ FPE_FLTUND = 5
+ FPE_INTDIV = 2
+ FPE_INTOVF = 1
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 3
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 2
+ ILL_ILLTRP = 4
+ ILL_PRVOPC = 5
+ ILL_PRVREG = 6
+ MINSIGSTKSZ = 2048
+ NSIG = 32
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_PKUERR = 100
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_KEVENT = 3
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 2
+ SIGEV_THREAD_ID = 4
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGLIBRT = 33
+ SIGLWP = 32
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGRTMAX = 126
+ SIGRTMIN = 65
+ SIGSEGV = 11
+ SIGSTKSZ = 34816
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTHR = 32
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SI_ASYNCIO = 0x10004
+ SI_KERNEL = 0x10006
+ SI_LWP = 0x10007
+ SI_MESGQ = 0x10005
+ SI_NOINFO = 0
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_UNDEFINED = 0
+ SI_USER = 0x10001
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ TRAP_BRKPT = 1
+ TRAP_CAP = 4
+ TRAP_DTRACE = 3
+ TRAP_TRACE = 2
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_MACHINE_SIGNAL_H_ = 0
+ X_MACHINE_UCONTEXT_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MC_FLAG_MASK = 7
+ X_MC_FPFMT_387 = 0x10001
+ X_MC_FPFMT_NODEV = 0x10000
+ X_MC_FPFMT_XMM = 0x10002
+ X_MC_FPOWNED_FPU = 0x20001
+ X_MC_FPOWNED_NONE = 0x20000
+ X_MC_FPOWNED_PCB = 0x20002
+ X_MC_HASBASES = 0x2
+ X_MC_HASFPXSTATE = 0x4
+ X_MC_HASSEGS = 0x1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_SIGNAL_H_ = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_SYS__UCONTEXT_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_X86_SIGNAL_H = 1
+ X_X86_UCONTEXT_H_ = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 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.
+//
+// @(#)signal.h 8.3 (Berkeley) 3/30/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1986, 1989, 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.
+//
+// @(#)signal.h 8.1 (Berkeley) 6/11/93
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1986, 1989, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+// Copyright (c) 2003 Peter Wemm.
+//
+// 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.1 (Berkeley) 6/11/93
+// $FreeBSD$
+
+// Machine-dependent signal definitions
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+type Sig_atomic_t = int32 /* signal.h:47:13 */
+
+type Sigcontext = struct {
+ Fsc_mask struct{ F__bits [4]X__uint32_t }
+ Fsc_onstack int32
+ Fsc_gs int32
+ Fsc_fs int32
+ Fsc_es int32
+ Fsc_ds int32
+ Fsc_edi int32
+ Fsc_esi int32
+ Fsc_ebp int32
+ Fsc_isp int32
+ Fsc_ebx int32
+ Fsc_edx int32
+ Fsc_ecx int32
+ Fsc_eax int32
+ Fsc_trapno int32
+ Fsc_err int32
+ Fsc_eip int32
+ Fsc_cs int32
+ Fsc_efl int32
+ Fsc_esp int32
+ Fsc_ss int32
+ Fsc_len int32
+ Fsc_fpformat int32
+ Fsc_ownedfp int32
+ Fsc_flags int32
+ Fsc_fpstate [128]int32
+ Fsc_fsbase int32
+ Fsc_gsbase int32
+ Fsc_xfpustate int32
+ Fsc_xfpustate_len int32
+ Fsc_spare2 [4]int32
+} /* signal.h:50:1 */
+
+type Pthread_once = struct {
+ Fstate int32
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46:1 */
+
+type Uid_t = X__uid_t /* signal.h:61:18 */
+
+type Sigset_t = X__sigset_t /* signal.h:166:20 */
+
+type Sigval = struct{ Fsival_int int32 } /* signal.h:171:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct{ Fsival_int int32 }
+ F_sigev_un struct {
+ F_threadid X__lwpid_t
+ F__ccgo_pad1 [28]byte
+ }
+} /* signal.h:195:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid X__pid_t
+ Fsi_uid X__uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct{ Fsival_int int32 }
+ F_reason struct {
+ F_fault struct{ F_trapno int32 }
+ F__ccgo_pad1 [28]byte
+ }
+} /* signal.h:229:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:263:3 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_flags int32
+ Fsa_mask Sigset_t
+} /* signal.h:368:1 */
+
+// If SA_SIGINFO is set, sa_sigaction must be used instead of sa_handler.
+
+// a timer set by timer_settime().
+// an asynchronous I/O request.
+// message on an empty message queue.
+
+type Sig_t = uintptr /* signal.h:420:24 */
+
+type Sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__size_t
+ Fss_flags int32
+} /* signal.h:428:9 */
+
+type Stack_t = Sigaltstack /* signal.h:428:26 */
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:452:1 */
+
+// Keep this in one place only
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+} /* signal.h:479:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 2003 Peter Wemm
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Keep _MC_* values similar to amd64
+
+type X__mcontext = struct {
+ Fmc_onstack X__register_t
+ Fmc_gs X__register_t
+ Fmc_fs X__register_t
+ Fmc_es X__register_t
+ Fmc_ds X__register_t
+ Fmc_edi X__register_t
+ Fmc_esi X__register_t
+ Fmc_ebp X__register_t
+ Fmc_isp X__register_t
+ Fmc_ebx X__register_t
+ Fmc_edx X__register_t
+ Fmc_ecx X__register_t
+ Fmc_eax X__register_t
+ Fmc_trapno X__register_t
+ Fmc_err X__register_t
+ Fmc_eip X__register_t
+ Fmc_cs X__register_t
+ Fmc_eflags X__register_t
+ Fmc_esp X__register_t
+ Fmc_ss X__register_t
+ Fmc_len int32
+ Fmc_fpformat int32
+ Fmc_ownedfp int32
+ Fmc_flags X__register_t
+ Fmc_fpstate [128]int32
+ Fmc_fsbase X__register_t
+ Fmc_gsbase X__register_t
+ Fmc_xfpustate X__register_t
+ Fmc_xfpustate_len X__register_t
+ Fmc_spare2 [4]int32
+} /* ucontext.h:44:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 2003 Peter Wemm
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Keep _MC_* values similar to amd64
+
+type Mcontext_t = X__mcontext /* ucontext.h:94:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type X__ucontext = struct {
+ Fuc_sigmask X__sigset_t
+ Fuc_mcontext Mcontext_t
+ Fuc_link uintptr
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__size_t
+ Fss_flags int32
+ }
+ Fuc_flags int32
+ F__spare__ [4]int32
+} /* _ucontext.h:36:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Ucontext_t = X__ucontext /* _ucontext.h:52:3 */
+
+type Pid_t = X__pid_t /* signal.h:60:18 */ // XXX
+type X__pthread_t = uintptr /* signal.h:67:24 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_freebsd_amd64.go b/vendor/modernc.org/libc/signal/signal_freebsd_amd64.go
new file mode 100644
index 00000000..01a6a113
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_freebsd_amd64.go
@@ -0,0 +1,1621 @@
+// Code generated by 'ccgo signal/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 signal/signal_freebsd_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_OBJERR = 3
+ BUS_OOMERR = 100
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ FPE_FLTDIV = 3
+ FPE_FLTINV = 7
+ FPE_FLTOVF = 4
+ FPE_FLTRES = 6
+ FPE_FLTSUB = 8
+ FPE_FLTUND = 5
+ FPE_INTDIV = 2
+ FPE_INTOVF = 1
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 3
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 2
+ ILL_ILLTRP = 4
+ ILL_PRVOPC = 5
+ ILL_PRVREG = 6
+ MINSIGSTKSZ = 2048
+ NSIG = 32
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_PKUERR = 100
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_KEVENT = 3
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 2
+ SIGEV_THREAD_ID = 4
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGLIBRT = 33
+ SIGLWP = 32
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGRTMAX = 126
+ SIGRTMIN = 65
+ SIGSEGV = 11
+ SIGSTKSZ = 34816
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTHR = 32
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SI_ASYNCIO = 0x10004
+ SI_KERNEL = 0x10006
+ SI_LWP = 0x10007
+ SI_MESGQ = 0x10005
+ SI_NOINFO = 0
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_UNDEFINED = 0
+ SI_USER = 0x10001
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ TRAP_BRKPT = 1
+ TRAP_CAP = 4
+ TRAP_DTRACE = 3
+ TRAP_TRACE = 2
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MC_FLAG_MASK = 7
+ X_MC_FPFMT_NODEV = 0x10000
+ X_MC_FPFMT_XMM = 0x10002
+ X_MC_FPOWNED_FPU = 0x20001
+ X_MC_FPOWNED_NONE = 0x20000
+ X_MC_FPOWNED_PCB = 0x20002
+ X_MC_HASBASES = 0x2
+ X_MC_HASFPXSTATE = 0x4
+ X_MC_HASSEGS = 0x1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_SIGNAL_H_ = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_SYS__UCONTEXT_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_X86_SIGNAL_H = 1
+ X_X86_UCONTEXT_H_ = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 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.
+//
+// @(#)signal.h 8.3 (Berkeley) 3/30/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1986, 1989, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+// Copyright (c) 2003 Peter Wemm.
+//
+// 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.1 (Berkeley) 6/11/93
+// $FreeBSD$
+
+// Machine-dependent signal definitions
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+type Sig_atomic_t = int64 /* signal.h:101:14 */
+
+// Information pushed on stack when a signal is delivered.
+// This is used by the kernel to restore state following
+// execution of the signal handler. It is also made available
+// to the handler to allow it to restore state properly if
+// a non-standard exit is performed.
+//
+// The sequence of the fields/registers after sc_mask in struct
+// sigcontext must match those in mcontext_t and struct trapframe.
+type Sigcontext = struct {
+ Fsc_mask struct{ F__bits [4]X__uint32_t }
+ Fsc_onstack int64
+ Fsc_rdi int64
+ Fsc_rsi int64
+ Fsc_rdx int64
+ Fsc_rcx int64
+ Fsc_r8 int64
+ Fsc_r9 int64
+ Fsc_rax int64
+ Fsc_rbx int64
+ Fsc_rbp int64
+ Fsc_r10 int64
+ Fsc_r11 int64
+ Fsc_r12 int64
+ Fsc_r13 int64
+ Fsc_r14 int64
+ Fsc_r15 int64
+ Fsc_trapno int32
+ Fsc_fs int16
+ Fsc_gs int16
+ Fsc_addr int64
+ Fsc_flags int32
+ Fsc_es int16
+ Fsc_ds int16
+ Fsc_err int64
+ Fsc_rip int64
+ Fsc_cs int64
+ Fsc_rflags int64
+ Fsc_rsp int64
+ Fsc_ss int64
+ Fsc_len int64
+ Fsc_fpformat int64
+ Fsc_ownedfp int64
+ Fsc_fpstate [64]int64
+ Fsc_fsbase int64
+ Fsc_gsbase int64
+ Fsc_xfpustate int64
+ Fsc_xfpustate_len int64
+ Fsc_spare [4]int64
+} /* signal.h:114:1 */
+
+type Pthread_once = struct {
+ Fstate int32
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46:1 */
+
+type Uid_t = X__uid_t /* signal.h:61:18 */
+
+type Sigset_t = X__sigset_t /* signal.h:166:20 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:171:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ F_sigev_un struct {
+ F__ccgo_pad1 [0]uint64
+ F_threadid X__lwpid_t
+ F__ccgo_pad2 [60]byte
+ }
+} /* signal.h:195:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid X__pid_t
+ Fsi_uid X__uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ F_reason struct {
+ F__ccgo_pad1 [0]uint64
+ F_fault struct{ F_trapno int32 }
+ F__ccgo_pad2 [36]byte
+ }
+} /* signal.h:229:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:263:3 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_flags int32
+ Fsa_mask Sigset_t
+ F__ccgo_pad1 [4]byte
+} /* signal.h:368:1 */
+
+// If SA_SIGINFO is set, sa_sigaction must be used instead of sa_handler.
+
+// a timer set by timer_settime().
+// an asynchronous I/O request.
+// message on an empty message queue.
+
+type Sig_t = uintptr /* signal.h:420:24 */
+
+type Sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:428:9 */
+
+type Stack_t = Sigaltstack /* signal.h:428:26 */
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:452:1 */
+
+// Keep this in one place only
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:479:1 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 2003 Peter Wemm
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// mc_flags bits. Shall be in sync with TF_XXX.
+
+type X__mcontext = struct {
+ Fmc_onstack X__register_t
+ Fmc_rdi X__register_t
+ Fmc_rsi X__register_t
+ Fmc_rdx X__register_t
+ Fmc_rcx X__register_t
+ Fmc_r8 X__register_t
+ Fmc_r9 X__register_t
+ Fmc_rax X__register_t
+ Fmc_rbx X__register_t
+ Fmc_rbp X__register_t
+ Fmc_r10 X__register_t
+ Fmc_r11 X__register_t
+ Fmc_r12 X__register_t
+ Fmc_r13 X__register_t
+ Fmc_r14 X__register_t
+ Fmc_r15 X__register_t
+ Fmc_trapno X__uint32_t
+ Fmc_fs X__uint16_t
+ Fmc_gs X__uint16_t
+ Fmc_addr X__register_t
+ Fmc_flags X__uint32_t
+ Fmc_es X__uint16_t
+ Fmc_ds X__uint16_t
+ Fmc_err X__register_t
+ Fmc_rip X__register_t
+ Fmc_cs X__register_t
+ Fmc_rflags X__register_t
+ Fmc_rsp X__register_t
+ Fmc_ss X__register_t
+ Fmc_len int64
+ Fmc_fpformat int64
+ Fmc_ownedfp int64
+ Fmc_fpstate [64]int64
+ Fmc_fsbase X__register_t
+ Fmc_gsbase X__register_t
+ Fmc_xfpustate X__register_t
+ Fmc_xfpustate_len X__register_t
+ Fmc_spare [4]int64
+} /* ucontext.h:106:9 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 2003 Peter Wemm
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// mc_flags bits. Shall be in sync with TF_XXX.
+
+type Mcontext_t = X__mcontext /* ucontext.h:164:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type X__ucontext = struct {
+ Fuc_sigmask X__sigset_t
+ Fuc_mcontext Mcontext_t
+ Fuc_link uintptr
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_flags int32
+ F__spare__ [4]int32
+ F__ccgo_pad1 [4]byte
+} /* _ucontext.h:36:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1999 Marcel Moolenaar
+// 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
+// in this position and unchanged.
+// 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. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Ucontext_t = X__ucontext /* _ucontext.h:52:3 */
+
+type Pid_t = X__pid_t /* signal.h:60:18 */ // XXX
+type X__pthread_t = uintptr /* signal.h:67:24 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_linux_386.go b/vendor/modernc.org/libc/signal/signal_linux_386.go
new file mode 100644
index 00000000..b595fb32
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_linux_386.go
@@ -0,0 +1,2170 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_386.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ FP_XSTATE_MAGIC1 = 0x46505853
+ FP_XSTATE_MAGIC2 = 0x46505845
+ MINSIGSTKSZ = 2048
+ NGREG = 19
+ NSIG = 65
+ SA_INTERRUPT = 0x20000000
+ SA_NOCLDSTOP = 1
+ SA_NOCLDWAIT = 2
+ SA_NODEFER = 0x40000000
+ SA_NOMASK = 1073741824
+ SA_ONESHOT = 2147483648
+ SA_ONSTACK = 0x08000000
+ SA_RESETHAND = 0x80000000
+ SA_RESTART = 0x10000000
+ SA_SIGINFO = 4
+ SA_STACK = 134217728
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 7
+ SIGCHLD = 17
+ SIGCLD = 17
+ SIGCONT = 18
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINT = 2
+ SIGIO = 29
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPOLL = 29
+ SIGPROF = 27
+ SIGPWR = 30
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKFLT = 16
+ SIGSTKSZ = 8192
+ SIGSTOP = 19
+ SIGSYS = 31
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 20
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 23
+ SIGUSR1 = 10
+ SIGUSR2 = 12
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ X86_FXSR_MAGIC = 0x0000
+ X_ATFILE_SOURCE = 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_SIGACTION_H = 1
+ X_BITS_SIGCONTEXT_H = 1
+ X_BITS_SIGEVENT_CONSTS_H = 1
+ X_BITS_SIGINFO_ARCH_H = 1
+ X_BITS_SIGINFO_CONSTS_H = 1
+ X_BITS_SIGNUM_GENERIC_H = 1
+ X_BITS_SIGNUM_H = 1
+ X_BITS_SIGSTACK_H = 1
+ X_BITS_SIGTHREAD_H = 1
+ X_BITS_SS_FLAGS_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_ILP32 = 1
+ X_NSIG = 65
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIGNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_UCONTEXT_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// POSIX names to access some of the members.
+
+// sigevent constants. Linux version.
+// 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
+// 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/>.
+
+// `sigev_notify' values.
+const ( /* sigevent-consts.h:27:1: */
+ SIGEV_SIGNAL = 0 // Notify via signal.
+ SIGEV_NONE = 1 // Other notification: meaningless.
+ SIGEV_THREAD = 2 // Deliver via thread creation.
+
+ SIGEV_THREAD_ID = 4
+)
+
+// `si_code' values for SIGSEGV signal.
+const ( /* siginfo-consts.h:119:1: */
+ SEGV_MAPERR = 1 // Address not mapped to object.
+ SEGV_ACCERR = 2 // Invalid permissions for mapped object.
+ SEGV_BNDERR = 3 // Bounds checking failure.
+ SEGV_PKUERR = 4 // Protection key checking failure.
+ SEGV_ACCADI = 5 // ADI not enabled for mapped object.
+ SEGV_ADIDERR = 6 // Disrupting MCD error.
+ SEGV_ADIPERR = 7
+)
+
+// `si_code' values for SIGBUS signal.
+const ( /* siginfo-consts.h:138:1: */
+ BUS_ADRALN = 1 // Invalid address alignment.
+ BUS_ADRERR = 2 // Non-existant physical address.
+ BUS_OBJERR = 3 // Object specific hardware error.
+ BUS_MCEERR_AR = 4 // Hardware memory error: action required.
+ BUS_MCEERR_AO = 5
+)
+
+// `si_code' values for SIGCHLD signal.
+const ( /* siginfo-consts.h:172:1: */
+ CLD_EXITED = 1 // Child has exited.
+ CLD_KILLED = 2 // Child was killed.
+ CLD_DUMPED = 3 // Child terminated abnormally.
+ CLD_TRAPPED = 4 // Traced child has trapped.
+ CLD_STOPPED = 5 // Child has stopped.
+ CLD_CONTINUED = 6
+)
+
+// `si_code' values for SIGPOLL signal.
+const ( /* siginfo-consts.h:189:1: */
+ POLL_IN = 1 // Data input available.
+ POLL_OUT = 2 // Output buffers available.
+ POLL_MSG = 3 // Input message available.
+ POLL_ERR = 4 // I/O error.
+ POLL_PRI = 5 // High priority input available.
+ POLL_HUP = 6
+)
+
+// X/Open requires some more fields with fixed names.
+
+// siginfo constants. Linux version.
+// 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
+// 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/>.
+
+// Most of these constants are uniform across all architectures, but there
+// is one exception.
+// Architecture-specific adjustments to siginfo_t. x86 version.
+
+// Values for `si_code'. Positive values are reserved for kernel-generated
+// signals.
+const ( /* siginfo-consts.h:35:1: */
+ SI_ASYNCNL = -60 // Sent by asynch name lookup completion.
+ SI_DETHREAD = -7 // Sent by execve killing subsidiary
+ // threads.
+ SI_TKILL = -6 // Sent by tkill.
+ SI_SIGIO = -5 // Sent by queued SIGIO.
+ SI_ASYNCIO = -4 // Sent by AIO completion.
+ SI_MESGQ = -3 // Sent by real time mesq state change.
+ SI_TIMER = -2 // Sent by timer expiration.
+ SI_QUEUE = -1 // Sent by sigqueue.
+ SI_USER = 0 // Sent by kill, sigsend.
+ SI_KERNEL = 128
+)
+
+// `si_code' values for SIGILL signal.
+const ( /* siginfo-consts.h:71:1: */
+ ILL_ILLOPC = 1 // Illegal opcode.
+ ILL_ILLOPN = 2 // Illegal operand.
+ ILL_ILLADR = 3 // Illegal addressing mode.
+ ILL_ILLTRP = 4 // Illegal trap.
+ ILL_PRVOPC = 5 // Privileged opcode.
+ ILL_PRVREG = 6 // Privileged register.
+ ILL_COPROC = 7 // Coprocessor error.
+ ILL_BADSTK = 8 // Internal stack error.
+ ILL_BADIADDR = 9
+)
+
+// `si_code' values for SIGFPE signal.
+const ( /* siginfo-consts.h:94:1: */
+ FPE_INTDIV = 1 // Integer divide by zero.
+ FPE_INTOVF = 2 // Integer overflow.
+ FPE_FLTDIV = 3 // Floating point divide by zero.
+ FPE_FLTOVF = 4 // Floating point overflow.
+ FPE_FLTUND = 5 // Floating point underflow.
+ FPE_FLTRES = 6 // Floating point inexact result.
+ FPE_FLTINV = 7 // Floating point invalid operation.
+ FPE_FLTSUB = 8 // Subscript out of range.
+ FPE_FLTUNK = 14 // Undiagnosed floating-point exception.
+ FPE_CONDTRAP = 15
+)
+
+// sigstack, sigaltstack definitions.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Minimum stack size for a signal handler.
+
+// System default stack size.
+
+// ss_flags values for stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Possible values for `ss_flags'.
+const ( /* ss_flags.h:27:1: */
+ SS_ONSTACK = 1
+ SS_DISABLE = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// ISO C99 Standard: 7.14 Signal handling <signal.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Signal number definitions. Linux version.
+// 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
+// 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/>.
+
+// Signal number constants. Generic template.
+// 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
+// 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/>.
+
+// Fake signal functions.
+
+// We define here all the signal names listed in POSIX (1003.1-2008);
+// as of 1003.1-2013, no additional signals have been added by POSIX.
+// We also define here signal names that historically exist in every
+// real-world POSIX variant (e.g. SIGWINCH).
+//
+// Signals in the 1-15 range are defined with their historical numbers.
+// For other signals, we use the BSD numbers.
+// There are two unallocated signal numbers in the 1-31 range: 7 and 29.
+// Signal number 0 is reserved for use as kill(pid, 0), to test whether
+// a process exists without sending it a signal.
+
+// ISO C99 signals.
+
+// Historical signals specified by POSIX.
+
+// New(er) POSIX signals (1003.1-2008, 1003.1-2013).
+
+// Nonstandard signals found in all modern POSIX systems
+// (including both BSD and Linux).
+
+// Archaic names for compatibility.
+
+// Not all systems support real-time signals. bits/signum.h indicates
+// that they are supported by overriding __SIGRTMAX to a value greater
+// than __SIGRTMIN. These constants give the kernel-level hard limits,
+// but some real-time signals may be used internally by glibc. Do not
+// use these constants in application code; use SIGRTMIN and SIGRTMAX
+// (defined in signal.h) instead.
+
+// Biggest signal number + 1 (including real-time signals).
+
+// Adjustments and additions to the signal number constants for
+// most Linux systems.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// An integral type that can be modified atomically, without the
+// possibility of a signal arriving in the middle of the operation.
+type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+type Pid_t = X__pid_t /* signal.h:40:17 */
+type Uid_t = X__uid_t /* signal.h:46:17 */
+
+// We need `struct timespec' later on.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Type for data associated with a signal.
+type Sigval = struct{ Fsival_int int32 } /* __sigval_t.h:24:1 */
+
+type X__sigval_t = Sigval /* __sigval_t.h:30:22 */
+
+// Some fields of siginfo_t have architecture-specific variations.
+// Architecture-specific adjustments to siginfo_t. x86 version.
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ F_sifields struct{ F_pad [29]int32 }
+} /* siginfo_t.h:124:5 */
+
+// Architectures might also add architecture-specific constants.
+// These are all considered GNU extensions.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// To avoid sigval_t (not a standard type name) having C++ name
+// mangling depending on whether the selected standard includes union
+// sigval, it should not be defined at all when using a standard for
+// which the sigval name is not reserved; in that case, headers should
+// not include <bits/types/sigval_t.h> and should use only the
+// internal __sigval_t name.
+
+type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* sigevent_t.h:17:9 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent = struct {
+ Fsigev_value X__sigval_t
+ Fsigev_signo int32
+ Fsigev_notify int32
+ F_sigev_un struct{ F_pad [13]int32 }
+} /* sigevent_t.h:22:9 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */
+
+// Type of a signal handler.
+type X__sighandler_t = uintptr /* signal.h:72:14 */
+
+// 4.4 BSD uses the name `sig_t' for this.
+type Sig_t = X__sighandler_t /* signal.h:190:24 */
+
+// Get the system-specific definitions of `struct sigaction'
+// and the `SA_*' and `SIG_*'. constants.
+// The proper definitions for Linux's sigaction.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Structure describing the action to be taken when a signal arrives.
+type Sigaction = struct {
+ F__sigaction_handler struct{ Fsa_handler X__sighandler_t }
+ Fsa_mask X__sigset_t
+ Fsa_flags int32
+ Fsa_restorer uintptr
+} /* sigaction.h:27:1 */
+
+// Get machine-dependent `struct sigcontext' and signal subcodes.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type X_fpx_sw_bytes = struct {
+ Fmagic1 X__uint32_t
+ Fextended_size X__uint32_t
+ Fxstate_bv X__uint64_t
+ Fxstate_size X__uint32_t
+ F__glibc_reserved1 [7]X__uint32_t
+} /* sigcontext.h:31:1 */
+
+type X_fpreg = struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+} /* sigcontext.h:40:1 */
+
+type X_fpxreg = struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+} /* sigcontext.h:46:1 */
+
+type X_xmmreg = struct{ Felement [4]X__uint32_t } /* sigcontext.h:53:1 */
+
+type X_fpstate = struct {
+ Fcw X__uint32_t
+ Fsw X__uint32_t
+ Ftag X__uint32_t
+ Fipoff X__uint32_t
+ Fcssel X__uint32_t
+ Fdataoff X__uint32_t
+ Fdatasel X__uint32_t
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ }
+ Fstatus uint16
+ Fmagic uint16
+ F_fxsr_env [6]X__uint32_t
+ Fmxcsr X__uint32_t
+ F__glibc_reserved1 X__uint32_t
+ F_fxsr_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+ }
+ F_xmm [8]struct{ Felement [4]X__uint32_t }
+ F__glibc_reserved2 [56]X__uint32_t
+} /* sigcontext.h:62:1 */
+
+// Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+// we need sigcontext. Some packages have come to rely on
+// sigcontext_struct being defined on 32-bit x86, so define this for
+// their benefit.
+
+type Sigcontext = struct {
+ Fgs uint16
+ F__gsh uint16
+ Ffs uint16
+ F__fsh uint16
+ Fes uint16
+ F__esh uint16
+ Fds uint16
+ F__dsh uint16
+ Fedi uint32
+ Fesi uint32
+ Febp uint32
+ Fesp uint32
+ Febx uint32
+ Fedx uint32
+ Fecx uint32
+ Feax uint32
+ Ftrapno uint32
+ Ferr uint32
+ Feip uint32
+ Fcs uint16
+ F__csh uint16
+ Feflags uint32
+ Fesp_at_signal uint32
+ Fss uint16
+ F__ssh uint16
+ Ffpstate uintptr
+ Foldmask uint32
+ Fcr2 uint32
+} /* sigcontext.h:95:1 */
+
+type X_xsave_hdr = struct {
+ Fxstate_bv X__uint64_t
+ F__glibc_reserved1 [2]X__uint64_t
+ F__glibc_reserved2 [5]X__uint64_t
+} /* sigcontext.h:177:1 */
+
+type X_ymmh_state = struct{ Fymmh_space [64]X__uint32_t } /* sigcontext.h:184:1 */
+
+type X_xstate = struct {
+ Ffpstate struct {
+ Fcw X__uint32_t
+ Fsw X__uint32_t
+ Ftag X__uint32_t
+ Fipoff X__uint32_t
+ Fcssel X__uint32_t
+ Fdataoff X__uint32_t
+ Fdatasel X__uint32_t
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ }
+ Fstatus uint16
+ Fmagic uint16
+ F_fxsr_env [6]X__uint32_t
+ Fmxcsr X__uint32_t
+ F__glibc_reserved1 X__uint32_t
+ F_fxsr_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+ }
+ F_xmm [8]struct{ Felement [4]X__uint32_t }
+ F__glibc_reserved2 [56]X__uint32_t
+ }
+ Fxstate_hdr struct {
+ Fxstate_bv X__uint64_t
+ F__glibc_reserved1 [2]X__uint64_t
+ F__glibc_reserved2 [5]X__uint64_t
+ }
+ Fymmh struct{ Fymmh_space [64]X__uint32_t }
+} /* sigcontext.h:189:1 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure describing a signal stack.
+type Stack_t = struct {
+ Fss_sp uintptr
+ Fss_flags int32
+ Fss_size Size_t
+} /* stack_t.h:31:5 */
+
+// This will define `ucontext_t' and `mcontext_t'.
+// Copyright (C) 2001-2020 Free Software 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Type for general register.
+type Greg_t = int32 /* ucontext.h:156:13 */
+
+// Number of general registers.
+
+// Container for all general registers.
+type Gregset_t = [19]Greg_t /* ucontext.h:165:16 */
+
+// Definitions taken from the kernel headers.
+type X_libc_fpreg = struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+} /* ucontext.h:213:1 */
+
+type X_libc_fpstate = struct {
+ Fcw uint32
+ Fsw uint32
+ Ftag uint32
+ Fipoff uint32
+ Fcssel uint32
+ Fdataoff uint32
+ Fdatasel uint32
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ }
+ Fstatus uint32
+} /* ucontext.h:219:1 */
+
+// Structure to describe FPU registers.
+type Fpregset_t = uintptr /* ucontext.h:233:30 */
+
+// Context to describe whole processor state.
+type Mcontext_t = struct {
+ Fgregs Gregset_t
+ Ffpregs Fpregset_t
+ Foldmask uint32
+ Fcr2 uint32
+} /* ucontext.h:244:5 */
+
+// Userlevel context.
+type Ucontext_t1 = struct {
+ Fuc_flags uint32
+ Fuc_link uintptr
+ Fuc_stack Stack_t
+ Fuc_mcontext Mcontext_t
+ Fuc_sigmask Sigset_t
+ F__fpregs_mem struct {
+ Fcw uint32
+ Fsw uint32
+ Ftag uint32
+ Fipoff uint32
+ Fcssel uint32
+ Fdataoff uint32
+ Fdatasel uint32
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ }
+ Fstatus uint32
+ }
+ F__ssp [4]uint32
+} /* ucontext.h:247:9 */
+
+// Userlevel context.
+type Ucontext_t = Ucontext_t1 /* ucontext.h:256:5 */
+
+// Define struct sigstack.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Structure describing a signal stack (obsolete).
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+} /* struct_sigstack.h:23:1 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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.
+
+// 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 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// System-specific extensions.
+// System-specific extensions of <signal.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_linux_amd64.go b/vendor/modernc.org/libc/signal/signal_linux_amd64.go
new file mode 100644
index 00000000..0212ae92
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_linux_amd64.go
@@ -0,0 +1,2188 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ FP_XSTATE_MAGIC1 = 0x46505853
+ FP_XSTATE_MAGIC2 = 0x46505845
+ MINSIGSTKSZ = 2048
+ NGREG = 23
+ NSIG = 65
+ SA_INTERRUPT = 0x20000000
+ SA_NOCLDSTOP = 1
+ SA_NOCLDWAIT = 2
+ SA_NODEFER = 0x40000000
+ SA_NOMASK = 1073741824
+ SA_ONESHOT = 2147483648
+ SA_ONSTACK = 0x08000000
+ SA_RESETHAND = 0x80000000
+ SA_RESTART = 0x10000000
+ SA_SIGINFO = 4
+ SA_STACK = 134217728
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 7
+ SIGCHLD = 17
+ SIGCLD = 17
+ SIGCONT = 18
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINT = 2
+ SIGIO = 29
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPOLL = 29
+ SIGPROF = 27
+ SIGPWR = 30
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKFLT = 16
+ SIGSTKSZ = 8192
+ SIGSTOP = 19
+ SIGSYS = 31
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 20
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 23
+ SIGUSR1 = 10
+ SIGUSR2 = 12
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ X_ATFILE_SOURCE = 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_SIGACTION_H = 1
+ X_BITS_SIGCONTEXT_H = 1
+ X_BITS_SIGEVENT_CONSTS_H = 1
+ X_BITS_SIGINFO_ARCH_H = 1
+ X_BITS_SIGINFO_CONSTS_H = 1
+ X_BITS_SIGNUM_GENERIC_H = 1
+ X_BITS_SIGNUM_H = 1
+ X_BITS_SIGSTACK_H = 1
+ X_BITS_SIGTHREAD_H = 1
+ X_BITS_SS_FLAGS_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_NSIG = 65
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIGNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_UCONTEXT_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// POSIX names to access some of the members.
+
+// sigevent constants. Linux version.
+// 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
+// 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/>.
+
+// `sigev_notify' values.
+const ( /* sigevent-consts.h:27:1: */
+ SIGEV_SIGNAL = 0 // Notify via signal.
+ SIGEV_NONE = 1 // Other notification: meaningless.
+ SIGEV_THREAD = 2 // Deliver via thread creation.
+
+ SIGEV_THREAD_ID = 4
+)
+
+// `si_code' values for SIGSEGV signal.
+const ( /* siginfo-consts.h:119:1: */
+ SEGV_MAPERR = 1 // Address not mapped to object.
+ SEGV_ACCERR = 2 // Invalid permissions for mapped object.
+ SEGV_BNDERR = 3 // Bounds checking failure.
+ SEGV_PKUERR = 4 // Protection key checking failure.
+ SEGV_ACCADI = 5 // ADI not enabled for mapped object.
+ SEGV_ADIDERR = 6 // Disrupting MCD error.
+ SEGV_ADIPERR = 7
+)
+
+// `si_code' values for SIGBUS signal.
+const ( /* siginfo-consts.h:138:1: */
+ BUS_ADRALN = 1 // Invalid address alignment.
+ BUS_ADRERR = 2 // Non-existant physical address.
+ BUS_OBJERR = 3 // Object specific hardware error.
+ BUS_MCEERR_AR = 4 // Hardware memory error: action required.
+ BUS_MCEERR_AO = 5
+)
+
+// `si_code' values for SIGCHLD signal.
+const ( /* siginfo-consts.h:172:1: */
+ CLD_EXITED = 1 // Child has exited.
+ CLD_KILLED = 2 // Child was killed.
+ CLD_DUMPED = 3 // Child terminated abnormally.
+ CLD_TRAPPED = 4 // Traced child has trapped.
+ CLD_STOPPED = 5 // Child has stopped.
+ CLD_CONTINUED = 6
+)
+
+// `si_code' values for SIGPOLL signal.
+const ( /* siginfo-consts.h:189:1: */
+ POLL_IN = 1 // Data input available.
+ POLL_OUT = 2 // Output buffers available.
+ POLL_MSG = 3 // Input message available.
+ POLL_ERR = 4 // I/O error.
+ POLL_PRI = 5 // High priority input available.
+ POLL_HUP = 6
+)
+
+// X/Open requires some more fields with fixed names.
+
+// siginfo constants. Linux version.
+// 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
+// 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/>.
+
+// Most of these constants are uniform across all architectures, but there
+// is one exception.
+// Architecture-specific adjustments to siginfo_t. x86 version.
+
+// Values for `si_code'. Positive values are reserved for kernel-generated
+// signals.
+const ( /* siginfo-consts.h:35:1: */
+ SI_ASYNCNL = -60 // Sent by asynch name lookup completion.
+ SI_DETHREAD = -7 // Sent by execve killing subsidiary
+ // threads.
+ SI_TKILL = -6 // Sent by tkill.
+ SI_SIGIO = -5 // Sent by queued SIGIO.
+ SI_ASYNCIO = -4 // Sent by AIO completion.
+ SI_MESGQ = -3 // Sent by real time mesq state change.
+ SI_TIMER = -2 // Sent by timer expiration.
+ SI_QUEUE = -1 // Sent by sigqueue.
+ SI_USER = 0 // Sent by kill, sigsend.
+ SI_KERNEL = 128
+)
+
+// `si_code' values for SIGILL signal.
+const ( /* siginfo-consts.h:71:1: */
+ ILL_ILLOPC = 1 // Illegal opcode.
+ ILL_ILLOPN = 2 // Illegal operand.
+ ILL_ILLADR = 3 // Illegal addressing mode.
+ ILL_ILLTRP = 4 // Illegal trap.
+ ILL_PRVOPC = 5 // Privileged opcode.
+ ILL_PRVREG = 6 // Privileged register.
+ ILL_COPROC = 7 // Coprocessor error.
+ ILL_BADSTK = 8 // Internal stack error.
+ ILL_BADIADDR = 9
+)
+
+// `si_code' values for SIGFPE signal.
+const ( /* siginfo-consts.h:94:1: */
+ FPE_INTDIV = 1 // Integer divide by zero.
+ FPE_INTOVF = 2 // Integer overflow.
+ FPE_FLTDIV = 3 // Floating point divide by zero.
+ FPE_FLTOVF = 4 // Floating point overflow.
+ FPE_FLTUND = 5 // Floating point underflow.
+ FPE_FLTRES = 6 // Floating point inexact result.
+ FPE_FLTINV = 7 // Floating point invalid operation.
+ FPE_FLTSUB = 8 // Subscript out of range.
+ FPE_FLTUNK = 14 // Undiagnosed floating-point exception.
+ FPE_CONDTRAP = 15
+)
+
+// sigstack, sigaltstack definitions.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Minimum stack size for a signal handler.
+
+// System default stack size.
+
+// ss_flags values for stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Possible values for `ss_flags'.
+const ( /* ss_flags.h:27:1: */
+ SS_ONSTACK = 1
+ SS_DISABLE = 2
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.14 Signal handling <signal.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Signal number definitions. Linux version.
+// 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
+// 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/>.
+
+// Signal number constants. Generic template.
+// 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
+// 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/>.
+
+// Fake signal functions.
+
+// We define here all the signal names listed in POSIX (1003.1-2008);
+// as of 1003.1-2013, no additional signals have been added by POSIX.
+// We also define here signal names that historically exist in every
+// real-world POSIX variant (e.g. SIGWINCH).
+//
+// Signals in the 1-15 range are defined with their historical numbers.
+// For other signals, we use the BSD numbers.
+// There are two unallocated signal numbers in the 1-31 range: 7 and 29.
+// Signal number 0 is reserved for use as kill(pid, 0), to test whether
+// a process exists without sending it a signal.
+
+// ISO C99 signals.
+
+// Historical signals specified by POSIX.
+
+// New(er) POSIX signals (1003.1-2008, 1003.1-2013).
+
+// Nonstandard signals found in all modern POSIX systems
+// (including both BSD and Linux).
+
+// Archaic names for compatibility.
+
+// Not all systems support real-time signals. bits/signum.h indicates
+// that they are supported by overriding __SIGRTMAX to a value greater
+// than __SIGRTMIN. These constants give the kernel-level hard limits,
+// but some real-time signals may be used internally by glibc. Do not
+// use these constants in application code; use SIGRTMIN and SIGRTMAX
+// (defined in signal.h) instead.
+
+// Biggest signal number + 1 (including real-time signals).
+
+// Adjustments and additions to the signal number constants for
+// most Linux systems.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// An integral type that can be modified atomically, without the
+// possibility of a signal arriving in the middle of the operation.
+type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+type Pid_t = X__pid_t /* signal.h:40:17 */
+type Uid_t = X__uid_t /* signal.h:46:17 */
+
+// We need `struct timespec' later on.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Type for data associated with a signal.
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* __sigval_t.h:24:1 */
+
+type X__sigval_t = Sigval /* __sigval_t.h:30:22 */
+
+// Some fields of siginfo_t have architecture-specific variations.
+// Architecture-specific adjustments to siginfo_t. x86 version.
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ F__pad0 int32
+ F_sifields struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [28]int32
+ }
+} /* siginfo_t.h:124:5 */
+
+// Architectures might also add architecture-specific constants.
+// These are all considered GNU extensions.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// To avoid sigval_t (not a standard type name) having C++ name
+// mangling depending on whether the selected standard includes union
+// sigval, it should not be defined at all when using a standard for
+// which the sigval name is not reserved; in that case, headers should
+// not include <bits/types/sigval_t.h> and should use only the
+// internal __sigval_t name.
+
+type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* sigevent_t.h:17:9 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent = struct {
+ Fsigev_value X__sigval_t
+ Fsigev_signo int32
+ Fsigev_notify int32
+ F_sigev_un struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [12]int32
+ }
+} /* sigevent_t.h:22:9 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */
+
+// Type of a signal handler.
+type X__sighandler_t = uintptr /* signal.h:72:14 */
+
+// 4.4 BSD uses the name `sig_t' for this.
+type Sig_t = X__sighandler_t /* signal.h:190:24 */
+
+// Get the system-specific definitions of `struct sigaction'
+// and the `SA_*' and `SIG_*'. constants.
+// The proper definitions for Linux's sigaction.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Structure describing the action to be taken when a signal arrives.
+type Sigaction = struct {
+ F__sigaction_handler struct{ Fsa_handler X__sighandler_t }
+ Fsa_mask X__sigset_t
+ Fsa_flags int32
+ F__ccgo_pad1 [4]byte
+ Fsa_restorer uintptr
+} /* sigaction.h:27:1 */
+
+// Get machine-dependent `struct sigcontext' and signal subcodes.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type X_fpx_sw_bytes = struct {
+ Fmagic1 X__uint32_t
+ Fextended_size X__uint32_t
+ Fxstate_bv X__uint64_t
+ Fxstate_size X__uint32_t
+ F__glibc_reserved1 [7]X__uint32_t
+} /* sigcontext.h:31:1 */
+
+type X_fpreg = struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+} /* sigcontext.h:40:1 */
+
+type X_fpxreg = struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+} /* sigcontext.h:46:1 */
+
+type X_xmmreg = struct{ Felement [4]X__uint32_t } /* sigcontext.h:53:1 */
+
+type X_fpstate = struct {
+ Fcwd X__uint16_t
+ Fswd X__uint16_t
+ Fftw X__uint16_t
+ Ffop X__uint16_t
+ Frip X__uint64_t
+ Frdp X__uint64_t
+ Fmxcsr X__uint32_t
+ Fmxcr_mask X__uint32_t
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+ }
+ F_xmm [16]struct{ Felement [4]X__uint32_t }
+ F__glibc_reserved1 [24]X__uint32_t
+} /* sigcontext.h:123:1 */
+
+type Sigcontext = struct {
+ Fr8 X__uint64_t
+ Fr9 X__uint64_t
+ Fr10 X__uint64_t
+ Fr11 X__uint64_t
+ Fr12 X__uint64_t
+ Fr13 X__uint64_t
+ Fr14 X__uint64_t
+ Fr15 X__uint64_t
+ Frdi X__uint64_t
+ Frsi X__uint64_t
+ Frbp X__uint64_t
+ Frbx X__uint64_t
+ Frdx X__uint64_t
+ Frax X__uint64_t
+ Frcx X__uint64_t
+ Frsp X__uint64_t
+ Frip X__uint64_t
+ Feflags X__uint64_t
+ Fcs uint16
+ Fgs uint16
+ Ffs uint16
+ F__pad0 uint16
+ Ferr X__uint64_t
+ Ftrapno X__uint64_t
+ Foldmask X__uint64_t
+ Fcr2 X__uint64_t
+ F__184 struct{ Ffpstate uintptr }
+ F__reserved1 [8]X__uint64_t
+} /* sigcontext.h:139:1 */
+
+type X_xsave_hdr = struct {
+ Fxstate_bv X__uint64_t
+ F__glibc_reserved1 [2]X__uint64_t
+ F__glibc_reserved2 [5]X__uint64_t
+} /* sigcontext.h:177:1 */
+
+type X_ymmh_state = struct{ Fymmh_space [64]X__uint32_t } /* sigcontext.h:184:1 */
+
+type X_xstate = struct {
+ Ffpstate struct {
+ Fcwd X__uint16_t
+ Fswd X__uint16_t
+ Fftw X__uint16_t
+ Ffop X__uint16_t
+ Frip X__uint64_t
+ Frdp X__uint64_t
+ Fmxcsr X__uint32_t
+ Fmxcr_mask X__uint32_t
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+ }
+ F_xmm [16]struct{ Felement [4]X__uint32_t }
+ F__glibc_reserved1 [24]X__uint32_t
+ }
+ Fxstate_hdr struct {
+ Fxstate_bv X__uint64_t
+ F__glibc_reserved1 [2]X__uint64_t
+ F__glibc_reserved2 [5]X__uint64_t
+ }
+ Fymmh struct{ Fymmh_space [64]X__uint32_t }
+} /* sigcontext.h:189:1 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure describing a signal stack.
+type Stack_t = struct {
+ Fss_sp uintptr
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ Fss_size Size_t
+} /* stack_t.h:31:5 */
+
+// This will define `ucontext_t' and `mcontext_t'.
+// Copyright (C) 2001-2020 Free Software 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Type for general register.
+type Greg_t = int64 /* ucontext.h:37:37 */
+
+// Number of general registers.
+
+// Container for all general registers.
+type Gregset_t = [23]Greg_t /* ucontext.h:46:16 */
+
+type X_libc_fpxreg = struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+} /* ucontext.h:101:1 */
+
+type X_libc_xmmreg = struct{ Felement [4]X__uint32_t } /* ucontext.h:108:1 */
+
+type X_libc_fpstate = struct {
+ Fcwd X__uint16_t
+ Fswd X__uint16_t
+ Fftw X__uint16_t
+ Ffop X__uint16_t
+ Frip X__uint64_t
+ Frdp X__uint64_t
+ Fmxcsr X__uint32_t
+ Fmxcr_mask X__uint32_t
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+ }
+ F_xmm [16]struct{ Felement [4]X__uint32_t }
+ F__glibc_reserved1 [24]X__uint32_t
+} /* ucontext.h:113:1 */
+
+// Structure to describe FPU registers.
+type Fpregset_t = uintptr /* ucontext.h:130:30 */
+
+// Context to describe whole processor state.
+type Mcontext_t = struct {
+ Fgregs Gregset_t
+ Ffpregs Fpregset_t
+ F__reserved1 [8]uint64
+} /* ucontext.h:139:3 */
+
+// Userlevel context.
+type Ucontext_t1 = struct {
+ Fuc_flags uint64
+ Fuc_link uintptr
+ Fuc_stack Stack_t
+ Fuc_mcontext Mcontext_t
+ Fuc_sigmask Sigset_t
+ F__fpregs_mem struct {
+ Fcwd X__uint16_t
+ Fswd X__uint16_t
+ Fftw X__uint16_t
+ Ffop X__uint16_t
+ Frip X__uint64_t
+ Frdp X__uint64_t
+ Fmxcsr X__uint32_t
+ Fmxcr_mask X__uint32_t
+ F_st [8]struct {
+ Fsignificand [4]uint16
+ Fexponent uint16
+ F__glibc_reserved1 [3]uint16
+ }
+ F_xmm [16]struct{ Felement [4]X__uint32_t }
+ F__glibc_reserved1 [24]X__uint32_t
+ }
+ F__ssp [4]uint64
+} /* ucontext.h:142:9 */
+
+// Userlevel context.
+type Ucontext_t = Ucontext_t1 /* ucontext.h:151:5 */
+
+// Define struct sigstack.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Structure describing a signal stack (obsolete).
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* struct_sigstack.h:23:1 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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_internal_list = struct {
+ F__prev uintptr
+ F__next uintptr
+} /* thread-shared-types.h:49:9 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// System-specific extensions.
+// System-specific extensions of <signal.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_linux_arm.go b/vendor/modernc.org/libc/signal/signal_linux_arm.go
new file mode 100644
index 00000000..74b0ed42
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_linux_arm.go
@@ -0,0 +1,2210 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_arm.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ MINSIGSTKSZ = 2048
+ NGREG = 18
+ NSIG = 65
+ SA_INTERRUPT = 0x20000000
+ SA_NOCLDSTOP = 1
+ SA_NOCLDWAIT = 2
+ SA_NODEFER = 0x40000000
+ SA_NOMASK = 1073741824
+ SA_ONESHOT = 2147483648
+ SA_ONSTACK = 0x08000000
+ SA_RESETHAND = 0x80000000
+ SA_RESTART = 0x10000000
+ SA_SIGINFO = 4
+ SA_STACK = 134217728
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 7
+ SIGCHLD = 17
+ SIGCLD = 17
+ SIGCONT = 18
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINT = 2
+ SIGIO = 29
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPOLL = 29
+ SIGPROF = 27
+ SIGPWR = 30
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKFLT = 16
+ SIGSTKSZ = 8192
+ SIGSTOP = 19
+ SIGSYS = 31
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 20
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 23
+ SIGUSR1 = 10
+ SIGUSR2 = 12
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ X_ASMARM_SIGCONTEXT_H = 0
+ X_ATFILE_SOURCE = 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_SIGACTION_H = 1
+ X_BITS_SIGCONTEXT_H = 1
+ X_BITS_SIGEVENT_CONSTS_H = 1
+ X_BITS_SIGINFO_ARCH_H = 1
+ X_BITS_SIGINFO_CONSTS_H = 1
+ X_BITS_SIGNUM_GENERIC_H = 1
+ X_BITS_SIGNUM_H = 1
+ X_BITS_SIGSTACK_H = 1
+ X_BITS_SIGTHREAD_H = 1
+ X_BITS_SS_FLAGS_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_NSIG = 65
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIGNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_UCONTEXT_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// POSIX names to access some of the members.
+
+// sigevent constants. Linux version.
+// 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
+// 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/>.
+
+// `sigev_notify' values.
+const ( /* sigevent-consts.h:27:1: */
+ SIGEV_SIGNAL = 0 // Notify via signal.
+ SIGEV_NONE = 1 // Other notification: meaningless.
+ SIGEV_THREAD = 2 // Deliver via thread creation.
+
+ SIGEV_THREAD_ID = 4
+)
+
+// `si_code' values for SIGSEGV signal.
+const ( /* siginfo-consts.h:119:1: */
+ SEGV_MAPERR = 1 // Address not mapped to object.
+ SEGV_ACCERR = 2 // Invalid permissions for mapped object.
+ SEGV_BNDERR = 3 // Bounds checking failure.
+ SEGV_PKUERR = 4 // Protection key checking failure.
+ SEGV_ACCADI = 5 // ADI not enabled for mapped object.
+ SEGV_ADIDERR = 6 // Disrupting MCD error.
+ SEGV_ADIPERR = 7
+)
+
+// `si_code' values for SIGBUS signal.
+const ( /* siginfo-consts.h:138:1: */
+ BUS_ADRALN = 1 // Invalid address alignment.
+ BUS_ADRERR = 2 // Non-existant physical address.
+ BUS_OBJERR = 3 // Object specific hardware error.
+ BUS_MCEERR_AR = 4 // Hardware memory error: action required.
+ BUS_MCEERR_AO = 5
+)
+
+// `si_code' values for SIGCHLD signal.
+const ( /* siginfo-consts.h:172:1: */
+ CLD_EXITED = 1 // Child has exited.
+ CLD_KILLED = 2 // Child was killed.
+ CLD_DUMPED = 3 // Child terminated abnormally.
+ CLD_TRAPPED = 4 // Traced child has trapped.
+ CLD_STOPPED = 5 // Child has stopped.
+ CLD_CONTINUED = 6
+)
+
+// `si_code' values for SIGPOLL signal.
+const ( /* siginfo-consts.h:189:1: */
+ POLL_IN = 1 // Data input available.
+ POLL_OUT = 2 // Output buffers available.
+ POLL_MSG = 3 // Input message available.
+ POLL_ERR = 4 // I/O error.
+ POLL_PRI = 5 // High priority input available.
+ POLL_HUP = 6
+)
+
+// X/Open requires some more fields with fixed names.
+
+// siginfo constants. Linux version.
+// 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
+// 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/>.
+
+// Most of these constants are uniform across all architectures, but there
+// is one exception.
+// Architecture-specific adjustments to siginfo_t.
+
+// Values for `si_code'. Positive values are reserved for kernel-generated
+// signals.
+const ( /* siginfo-consts.h:35:1: */
+ SI_ASYNCNL = -60 // Sent by asynch name lookup completion.
+ SI_DETHREAD = -7 // Sent by execve killing subsidiary
+ // threads.
+ SI_TKILL = -6 // Sent by tkill.
+ SI_SIGIO = -5 // Sent by queued SIGIO.
+ SI_ASYNCIO = -4 // Sent by AIO completion.
+ SI_MESGQ = -3 // Sent by real time mesq state change.
+ SI_TIMER = -2 // Sent by timer expiration.
+ SI_QUEUE = -1 // Sent by sigqueue.
+ SI_USER = 0 // Sent by kill, sigsend.
+ SI_KERNEL = 128
+)
+
+// `si_code' values for SIGILL signal.
+const ( /* siginfo-consts.h:71:1: */
+ ILL_ILLOPC = 1 // Illegal opcode.
+ ILL_ILLOPN = 2 // Illegal operand.
+ ILL_ILLADR = 3 // Illegal addressing mode.
+ ILL_ILLTRP = 4 // Illegal trap.
+ ILL_PRVOPC = 5 // Privileged opcode.
+ ILL_PRVREG = 6 // Privileged register.
+ ILL_COPROC = 7 // Coprocessor error.
+ ILL_BADSTK = 8 // Internal stack error.
+ ILL_BADIADDR = 9
+)
+
+// `si_code' values for SIGFPE signal.
+const ( /* siginfo-consts.h:94:1: */
+ FPE_INTDIV = 1 // Integer divide by zero.
+ FPE_INTOVF = 2 // Integer overflow.
+ FPE_FLTDIV = 3 // Floating point divide by zero.
+ FPE_FLTOVF = 4 // Floating point overflow.
+ FPE_FLTUND = 5 // Floating point underflow.
+ FPE_FLTRES = 6 // Floating point inexact result.
+ FPE_FLTINV = 7 // Floating point invalid operation.
+ FPE_FLTSUB = 8 // Subscript out of range.
+ FPE_FLTUNK = 14 // Undiagnosed floating-point exception.
+ FPE_CONDTRAP = 15
+)
+
+// sigstack, sigaltstack definitions.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Minimum stack size for a signal handler.
+
+// System default stack size.
+
+// ss_flags values for stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Possible values for `ss_flags'.
+const ( /* ss_flags.h:27:1: */
+ SS_ONSTACK = 1
+ SS_DISABLE = 2
+)
+
+// Number of each register is the `gregset_t' array.
+const ( /* ucontext.h:45:1: */
+ REG_R0 = 0
+ REG_R1 = 1
+ REG_R2 = 2
+ REG_R3 = 3
+ REG_R4 = 4
+ REG_R5 = 5
+ REG_R6 = 6
+ REG_R7 = 7
+ REG_R8 = 8
+ REG_R9 = 9
+ REG_R10 = 10
+ REG_R11 = 11
+ REG_R12 = 12
+ REG_R13 = 13
+ REG_R14 = 14
+ REG_R15 = 15
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// ISO C99 Standard: 7.14 Signal handling <signal.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Signal number definitions. Linux version.
+// 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
+// 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/>.
+
+// Signal number constants. Generic template.
+// 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
+// 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/>.
+
+// Fake signal functions.
+
+// We define here all the signal names listed in POSIX (1003.1-2008);
+// as of 1003.1-2013, no additional signals have been added by POSIX.
+// We also define here signal names that historically exist in every
+// real-world POSIX variant (e.g. SIGWINCH).
+//
+// Signals in the 1-15 range are defined with their historical numbers.
+// For other signals, we use the BSD numbers.
+// There are two unallocated signal numbers in the 1-31 range: 7 and 29.
+// Signal number 0 is reserved for use as kill(pid, 0), to test whether
+// a process exists without sending it a signal.
+
+// ISO C99 signals.
+
+// Historical signals specified by POSIX.
+
+// New(er) POSIX signals (1003.1-2008, 1003.1-2013).
+
+// Nonstandard signals found in all modern POSIX systems
+// (including both BSD and Linux).
+
+// Archaic names for compatibility.
+
+// Not all systems support real-time signals. bits/signum.h indicates
+// that they are supported by overriding __SIGRTMAX to a value greater
+// than __SIGRTMIN. These constants give the kernel-level hard limits,
+// but some real-time signals may be used internally by glibc. Do not
+// use these constants in application code; use SIGRTMIN and SIGRTMAX
+// (defined in signal.h) instead.
+
+// Biggest signal number + 1 (including real-time signals).
+
+// Adjustments and additions to the signal number constants for
+// most Linux systems.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// An integral type that can be modified atomically, without the
+// possibility of a signal arriving in the middle of the operation.
+type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+type Pid_t = X__pid_t /* signal.h:40:17 */
+type Uid_t = X__uid_t /* signal.h:46:17 */
+
+// We need `struct timespec' later on.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Type for data associated with a signal.
+type Sigval = struct{ Fsival_int int32 } /* __sigval_t.h:24:1 */
+
+type X__sigval_t = Sigval /* __sigval_t.h:30:22 */
+
+// Some fields of siginfo_t have architecture-specific variations.
+// Architecture-specific adjustments to siginfo_t.
+
+// This architecture has no adjustments to make to siginfo_t.
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ F_sifields struct{ F_pad [29]int32 }
+} /* siginfo_t.h:124:5 */
+
+// Architectures might also add architecture-specific constants.
+// These are all considered GNU extensions.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// To avoid sigval_t (not a standard type name) having C++ name
+// mangling depending on whether the selected standard includes union
+// sigval, it should not be defined at all when using a standard for
+// which the sigval name is not reserved; in that case, headers should
+// not include <bits/types/sigval_t.h> and should use only the
+// internal __sigval_t name.
+
+type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */
+
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]uint8
+} /* sigevent_t.h:17:9 */
+
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent = struct {
+ Fsigev_value X__sigval_t
+ Fsigev_signo int32
+ Fsigev_notify int32
+ F_sigev_un struct{ F_pad [13]int32 }
+} /* sigevent_t.h:22:9 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */
+
+// Type of a signal handler.
+type X__sighandler_t = uintptr /* signal.h:72:14 */
+
+// 4.4 BSD uses the name `sig_t' for this.
+type Sig_t = X__sighandler_t /* signal.h:190:24 */
+
+// Get the system-specific definitions of `struct sigaction'
+// and the `SA_*' and `SIG_*'. constants.
+// The proper definitions for Linux's sigaction.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Structure describing the action to be taken when a signal arrives.
+type Sigaction = struct {
+ F__sigaction_handler struct{ Fsa_handler X__sighandler_t }
+ Fsa_mask X__sigset_t
+ Fsa_flags int32
+ Fsa_restorer uintptr
+} /* sigaction.h:27:1 */
+
+// Get machine-dependent `struct sigcontext' and signal subcodes.
+// 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
+// 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/>.
+
+// Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+// we need sigcontext.
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// Signal context structure - contains all info to do with the state
+// before the signal handler was invoked. Note: only add new entries
+// to the end of the structure.
+type Sigcontext = struct {
+ Ftrap_no uint32
+ Ferror_code uint32
+ Foldmask uint32
+ Farm_r0 uint32
+ Farm_r1 uint32
+ Farm_r2 uint32
+ Farm_r3 uint32
+ Farm_r4 uint32
+ Farm_r5 uint32
+ Farm_r6 uint32
+ Farm_r7 uint32
+ Farm_r8 uint32
+ Farm_r9 uint32
+ Farm_r10 uint32
+ Farm_fp uint32
+ Farm_ip uint32
+ Farm_sp uint32
+ Farm_lr uint32
+ Farm_pc uint32
+ Farm_cpsr uint32
+ Ffault_address uint32
+} /* sigcontext.h:10:1 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure describing a signal stack.
+type Stack_t = struct {
+ Fss_sp uintptr
+ Fss_flags int32
+ Fss_size Size_t
+} /* stack_t.h:31:5 */
+
+// This will define `ucontext_t' and `mcontext_t'.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// System V/ARM ABI compliant context switching support.
+
+// 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
+// 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 stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+type Greg_t = int32 /* ucontext.h:36:13 */
+
+// Number of general registers.
+
+// Container for all general registers.
+type Gregset_t = [18]Greg_t /* ucontext.h:42:16 */
+
+type X_libc_fpstate = struct {
+ Ffpregs [8]struct {
+ F__ccgo_pad1 [0]uint32
+ Fsign1 uint32 /* unsigned sign1: 1, unsigned unused: 15, unsigned sign2: 1, unsigned exponent: 14, unsigned j: 1 */
+ Fmantissa1 uint32 /* unsigned mantissa1: 31 */
+ Fmantissa0 uint32 /* unsigned mantissa0: 32 */
+ }
+ Ffpsr uint32 /* unsigned fpsr: 32 */
+ Ffpcr uint32 /* unsigned fpcr: 32 */
+ Fftype [8]uint8
+ Finit_flag uint32
+} /* ucontext.h:81:1 */
+
+// Structure to describe FPU registers.
+type Fpregset_t = X_libc_fpstate /* ucontext.h:99:30 */
+
+// Context to describe whole processor state. This only describes
+// the core registers; coprocessor registers get saved elsewhere
+// (e.g. in uc_regspace, or somewhere unspecified on the stack
+// during non-RT signal handlers).
+type Mcontext_t = struct {
+ Ftrap_no uint32
+ Ferror_code uint32
+ Foldmask uint32
+ Farm_r0 uint32
+ Farm_r1 uint32
+ Farm_r2 uint32
+ Farm_r3 uint32
+ Farm_r4 uint32
+ Farm_r5 uint32
+ Farm_r6 uint32
+ Farm_r7 uint32
+ Farm_r8 uint32
+ Farm_r9 uint32
+ Farm_r10 uint32
+ Farm_fp uint32
+ Farm_ip uint32
+ Farm_sp uint32
+ Farm_lr uint32
+ Farm_pc uint32
+ Farm_cpsr uint32
+ Ffault_address uint32
+} /* ucontext.h:129:5 */
+
+// Userlevel context.
+type Ucontext_t1 = struct {
+ Fuc_flags uint32
+ Fuc_link uintptr
+ Fuc_stack Stack_t
+ Fuc_mcontext Mcontext_t
+ Fuc_sigmask Sigset_t
+ Fuc_regspace [128]uint32
+} /* ucontext.h:132:9 */
+
+// Userlevel context.
+type Ucontext_t = Ucontext_t1 /* ucontext.h:140:5 */
+
+// Define struct sigstack.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Structure describing a signal stack (obsolete).
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+} /* struct_sigstack.h:23:1 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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/>.
+
+// 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 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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/>.
+
+// 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.
+//
+// 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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// System-specific extensions.
+// System-specific extensions of <signal.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_linux_arm64.go b/vendor/modernc.org/libc/signal/signal_linux_arm64.go
new file mode 100644
index 00000000..8755d730
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_linux_arm64.go
@@ -0,0 +1,3295 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_arm64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+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
+ ELF_PRARGSZ = 80
+ ESR_MAGIC = 0x45535201
+ EXTRA_MAGIC = 0x45585401
+ FD_SETSIZE = 1024
+ FPSIMD_MAGIC = 0x46508001
+ LITTLE_ENDIAN = 1234
+ MINSIGSTKSZ = 5120
+ NSIG = 65
+ PDP_ENDIAN = 3412
+ SA_INTERRUPT = 0x20000000
+ SA_NOCLDSTOP = 1
+ SA_NOCLDWAIT = 2
+ SA_NODEFER = 0x40000000
+ SA_NOMASK = 1073741824
+ SA_ONESHOT = 2147483648
+ SA_ONSTACK = 0x08000000
+ SA_RESETHAND = 0x80000000
+ SA_RESTART = 0x10000000
+ SA_SIGINFO = 4
+ SA_STACK = 134217728
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 7
+ SIGCHLD = 17
+ SIGCLD = 17
+ SIGCONT = 18
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINT = 2
+ SIGIO = 29
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPOLL = 29
+ SIGPROF = 27
+ SIGPWR = 30
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKFLT = 16
+ SIGSTKSZ = 16384
+ SIGSTOP = 19
+ SIGSYS = 31
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 20
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 23
+ SIGUSR1 = 10
+ SIGUSR2 = 12
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ SVE_MAGIC = 0x53564501
+ SVE_NUM_PREGS = 16
+ SVE_NUM_ZREGS = 32
+ SVE_VL_MAX = 8192
+ SVE_VL_MIN = 16
+ SVE_VQ_BYTES = 16
+ SVE_VQ_MAX = 512
+ SVE_VQ_MIN = 1
+ X_ASM_GENERIC_INT_LL64_H = 0
+ X_ASM_GENERIC_TYPES_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_SIGACTION_H = 1
+ X_BITS_SIGCONTEXT_H = 1
+ X_BITS_SIGEVENT_CONSTS_H = 1
+ X_BITS_SIGINFO_ARCH_H = 1
+ X_BITS_SIGINFO_CONSTS_H = 1
+ X_BITS_SIGNUM_GENERIC_H = 1
+ X_BITS_SIGNUM_H = 1
+ X_BITS_SIGSTACK_H = 1
+ X_BITS_SIGTHREAD_H = 1
+ X_BITS_SS_FLAGS_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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LINUX_TYPES_H = 0
+ X_LP64 = 1
+ X_NSIG = 65
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_SIGNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_PROCFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_TIME_H = 1
+ X_SYS_TYPES_H = 1
+ X_SYS_UCONTEXT_H = 1
+ X_SYS_USER_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// POSIX names to access some of the members.
+
+// sigevent constants. Linux version.
+// 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
+// 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/>.
+
+// `sigev_notify' values.
+const ( /* sigevent-consts.h:27:1: */
+ SIGEV_SIGNAL = 0 // Notify via signal.
+ SIGEV_NONE = 1 // Other notification: meaningless.
+ SIGEV_THREAD = 2 // Deliver via thread creation.
+
+ SIGEV_THREAD_ID = 4
+)
+
+// `si_code' values for SIGSEGV signal.
+const ( /* siginfo-consts.h:119:1: */
+ SEGV_MAPERR = 1 // Address not mapped to object.
+ SEGV_ACCERR = 2 // Invalid permissions for mapped object.
+ SEGV_BNDERR = 3 // Bounds checking failure.
+ SEGV_PKUERR = 4 // Protection key checking failure.
+ SEGV_ACCADI = 5 // ADI not enabled for mapped object.
+ SEGV_ADIDERR = 6 // Disrupting MCD error.
+ SEGV_ADIPERR = 7
+)
+
+// `si_code' values for SIGBUS signal.
+const ( /* siginfo-consts.h:138:1: */
+ BUS_ADRALN = 1 // Invalid address alignment.
+ BUS_ADRERR = 2 // Non-existant physical address.
+ BUS_OBJERR = 3 // Object specific hardware error.
+ BUS_MCEERR_AR = 4 // Hardware memory error: action required.
+ BUS_MCEERR_AO = 5
+)
+
+// `si_code' values for SIGCHLD signal.
+const ( /* siginfo-consts.h:172:1: */
+ CLD_EXITED = 1 // Child has exited.
+ CLD_KILLED = 2 // Child was killed.
+ CLD_DUMPED = 3 // Child terminated abnormally.
+ CLD_TRAPPED = 4 // Traced child has trapped.
+ CLD_STOPPED = 5 // Child has stopped.
+ CLD_CONTINUED = 6
+)
+
+// `si_code' values for SIGPOLL signal.
+const ( /* siginfo-consts.h:189:1: */
+ POLL_IN = 1 // Data input available.
+ POLL_OUT = 2 // Output buffers available.
+ POLL_MSG = 3 // Input message available.
+ POLL_ERR = 4 // I/O error.
+ POLL_PRI = 5 // High priority input available.
+ POLL_HUP = 6
+)
+
+// X/Open requires some more fields with fixed names.
+
+// siginfo constants. Linux version.
+// 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
+// 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/>.
+
+// Most of these constants are uniform across all architectures, but there
+// is one exception.
+// Architecture-specific adjustments to siginfo_t.
+
+// Values for `si_code'. Positive values are reserved for kernel-generated
+// signals.
+const ( /* siginfo-consts.h:35:1: */
+ SI_ASYNCNL = -60 // Sent by asynch name lookup completion.
+ SI_DETHREAD = -7 // Sent by execve killing subsidiary
+ // threads.
+ SI_TKILL = -6 // Sent by tkill.
+ SI_SIGIO = -5 // Sent by queued SIGIO.
+ SI_ASYNCIO = -4 // Sent by AIO completion.
+ SI_MESGQ = -3 // Sent by real time mesq state change.
+ SI_TIMER = -2 // Sent by timer expiration.
+ SI_QUEUE = -1 // Sent by sigqueue.
+ SI_USER = 0 // Sent by kill, sigsend.
+ SI_KERNEL = 128
+)
+
+// `si_code' values for SIGILL signal.
+const ( /* siginfo-consts.h:71:1: */
+ ILL_ILLOPC = 1 // Illegal opcode.
+ ILL_ILLOPN = 2 // Illegal operand.
+ ILL_ILLADR = 3 // Illegal addressing mode.
+ ILL_ILLTRP = 4 // Illegal trap.
+ ILL_PRVOPC = 5 // Privileged opcode.
+ ILL_PRVREG = 6 // Privileged register.
+ ILL_COPROC = 7 // Coprocessor error.
+ ILL_BADSTK = 8 // Internal stack error.
+ ILL_BADIADDR = 9
+)
+
+// `si_code' values for SIGFPE signal.
+const ( /* siginfo-consts.h:94:1: */
+ FPE_INTDIV = 1 // Integer divide by zero.
+ FPE_INTOVF = 2 // Integer overflow.
+ FPE_FLTDIV = 3 // Floating point divide by zero.
+ FPE_FLTOVF = 4 // Floating point overflow.
+ FPE_FLTUND = 5 // Floating point underflow.
+ FPE_FLTRES = 6 // Floating point inexact result.
+ FPE_FLTINV = 7 // Floating point invalid operation.
+ FPE_FLTSUB = 8 // Subscript out of range.
+ FPE_FLTUNK = 14 // Undiagnosed floating-point exception.
+ FPE_CONDTRAP = 15
+)
+
+// sigstack, sigaltstack definitions.
+// Copyright (C) 2015-2020 Free Software 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/>.
+
+// Minimum stack size for a signal handler.
+
+// System default stack size.
+
+// ss_flags values for stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Possible values for `ss_flags'.
+const ( /* ss_flags.h:27:1: */
+ SS_ONSTACK = 1
+ SS_DISABLE = 2
+)
+
+// Values for the first argument to `getitimer' and `setitimer'.
+const ( /* time.h:89:1: */
+ // Timers run in real time.
+ ITIMER_REAL = 0
+ // Timers run only when the process is executing.
+ ITIMER_VIRTUAL = 1
+ // Timers run when the process is executing and when
+ // the system is executing on behalf of the process.
+ ITIMER_PROF = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.14 Signal handling <signal.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Signal number definitions. Linux version.
+// 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
+// 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/>.
+
+// Signal number constants. Generic template.
+// 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
+// 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/>.
+
+// Fake signal functions.
+
+// We define here all the signal names listed in POSIX (1003.1-2008);
+// as of 1003.1-2013, no additional signals have been added by POSIX.
+// We also define here signal names that historically exist in every
+// real-world POSIX variant (e.g. SIGWINCH).
+//
+// Signals in the 1-15 range are defined with their historical numbers.
+// For other signals, we use the BSD numbers.
+// There are two unallocated signal numbers in the 1-31 range: 7 and 29.
+// Signal number 0 is reserved for use as kill(pid, 0), to test whether
+// a process exists without sending it a signal.
+
+// ISO C99 signals.
+
+// Historical signals specified by POSIX.
+
+// New(er) POSIX signals (1003.1-2008, 1003.1-2013).
+
+// Nonstandard signals found in all modern POSIX systems
+// (including both BSD and Linux).
+
+// Archaic names for compatibility.
+
+// Not all systems support real-time signals. bits/signum.h indicates
+// that they are supported by overriding __SIGRTMAX to a value greater
+// than __SIGRTMIN. These constants give the kernel-level hard limits,
+// but some real-time signals may be used internally by glibc. Do not
+// use these constants in application code; use SIGRTMIN and SIGRTMAX
+// (defined in signal.h) instead.
+
+// Biggest signal number + 1 (including real-time signals).
+
+// Adjustments and additions to the signal number constants for
+// most Linux systems.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// An integral type that can be modified atomically, without the
+// possibility of a signal arriving in the middle of the operation.
+type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+type Pid_t = X__pid_t /* signal.h:40:17 */
+type Uid_t = X__uid_t /* signal.h:46:17 */
+
+// We need `struct timespec' later on.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Type for data associated with a signal.
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* __sigval_t.h:24:1 */
+
+type X__sigval_t = Sigval /* __sigval_t.h:30:22 */
+
+// Some fields of siginfo_t have architecture-specific variations.
+// Architecture-specific adjustments to siginfo_t.
+
+// This architecture has no adjustments to make to siginfo_t.
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ F__pad0 int32
+ F_sifields struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [28]int32
+ }
+} /* siginfo_t.h:124:5 */
+
+// Architectures might also add architecture-specific constants.
+// These are all considered GNU extensions.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// To avoid sigval_t (not a standard type name) having C++ name
+// mangling depending on whether the selected standard includes union
+// sigval, it should not be defined at all when using a standard for
+// which the sigval name is not reserved; in that case, headers should
+// not include <bits/types/sigval_t.h> and should use only the
+// internal __sigval_t name.
+
+type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */
+
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [64]uint8
+} /* sigevent_t.h:17:9 */
+
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent = struct {
+ Fsigev_value X__sigval_t
+ Fsigev_signo int32
+ Fsigev_notify int32
+ F_sigev_un struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [12]int32
+ }
+} /* sigevent_t.h:22:9 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */
+
+// Type of a signal handler.
+type X__sighandler_t = uintptr /* signal.h:72:14 */
+
+// 4.4 BSD uses the name `sig_t' for this.
+type Sig_t = X__sighandler_t /* signal.h:190:24 */
+
+// Get the system-specific definitions of `struct sigaction'
+// and the `SA_*' and `SIG_*'. constants.
+// The proper definitions for Linux's sigaction.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Structure describing the action to be taken when a signal arrives.
+type Sigaction = struct {
+ F__sigaction_handler struct{ Fsa_handler X__sighandler_t }
+ Fsa_mask X__sigset_t
+ Fsa_flags int32
+ F__ccgo_pad1 [4]byte
+ Fsa_restorer uintptr
+} /* sigaction.h:27:1 */
+
+// Get machine-dependent `struct sigcontext' and signal subcodes.
+// 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
+// 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/>.
+
+// Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+// we need sigcontext.
+
+// 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
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// int-ll64 is used everywhere now.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// asm-generic/int-ll64.h
+//
+// Integer declarations for architectures which use "long long"
+// for 64-bit types.
+
+// 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.
+
+// __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
+// header files exported to user space
+
+type X__s8 = int8 /* int-ll64.h:20:25 */
+type X__u8 = uint8 /* int-ll64.h:21:23 */
+
+type X__s16 = int16 /* int-ll64.h:23:26 */
+type X__u16 = uint16 /* int-ll64.h:24:24 */
+
+type X__s32 = int32 /* int-ll64.h:26:24 */
+type X__u32 = uint32 /* int-ll64.h:27:22 */
+
+type X__s64 = int64 /* int-ll64.h:30:44 */
+type X__u64 = uint64 /* int-ll64.h:31:42 */
+
+// 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/>.
+// 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 */
+
+// Below are truly Linux-specific types that should never collide with
+// any application/library that wants linux/types.h.
+
+type X__le16 = X__u16 /* types.h:24:25 */
+type X__be16 = X__u16 /* types.h:25:25 */
+type X__le32 = X__u32 /* types.h:26:25 */
+type X__be32 = X__u32 /* types.h:27:25 */
+type X__le64 = X__u64 /* types.h:28:25 */
+type X__be64 = X__u64 /* types.h:29:25 */
+
+type X__sum16 = X__u16 /* types.h:31:25 */
+type X__wsum = X__u32 /* types.h:32:25 */
+
+// aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
+// common 32/64-bit compat problems.
+// 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
+// architectures) and to 8-byte boundaries on 64-bit architectures. The new
+// aligned_64 type enforces 8-byte alignment so that structs containing
+// aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
+// No conversions are necessary between 32-bit user-space and a 64-bit kernel.
+
+type X__poll_t = uint32 /* types.h:47:28 */
+
+// Signal context structure - contains all info to do with the state
+// before the signal handler was invoked.
+type Sigcontext = struct {
+ Ffault_address X__u64
+ Fregs [31]X__u64
+ Fsp X__u64
+ Fpc X__u64
+ Fpstate X__u64
+ F__reserved [4096]X__u8
+} /* sigcontext.h:28:1 */
+
+// Allocation of __reserved[]:
+// (Note: records do not necessarily occur in the order shown here.)
+//
+// size description
+//
+// 0x210 fpsimd_context
+// 0x10 esr_context
+// 0x8a0 sve_context (vl <= 64) (optional)
+// 0x20 extra_context (optional)
+// 0x10 terminator (null _aarch64_ctx)
+//
+// 0x510 (reserved for future allocation)
+//
+// New records that can exceed this space need to be opt-in for userspace, so
+// that an expanded signal frame is not generated unexpectedly. The mechanism
+// for opting in will depend on the extension that generates each new record.
+// The above table documents the maximum set and sizes of records than can be
+// generated when userspace does not opt in for any such extension.
+
+// Header to be used at the beginning of structures extending the user
+// context. Such structures must be placed after the rt_sigframe on the stack
+// and be 16-byte aligned. The last structure must be a dummy one with the
+// magic and size set to 0.
+type X_aarch64_ctx = struct {
+ Fmagic X__u32
+ Fsize X__u32
+} /* sigcontext.h:66:1 */
+
+type Fpsimd_context = struct {
+ Fhead struct {
+ Fmagic X__u32
+ Fsize X__u32
+ }
+ Ffpsr X__u32
+ Ffpcr X__u32
+ Fvregs [32]X__uint128_t
+} /* sigcontext.h:73:1 */
+
+// Note: similarly to all other integer fields, each V-register is stored in an
+// endianness-dependent format, with the byte at offset i from the start of the
+// in-memory representation of the register value containing
+//
+// bits [(7 + 8 * i) : (8 * i)] of the register on little-endian hosts; or
+// bits [(127 - 8 * i) : (120 - 8 * i)] on big-endian hosts.
+
+// ESR_EL1 context
+
+type Esr_context = struct {
+ Fhead struct {
+ Fmagic X__u32
+ Fsize X__u32
+ }
+ Fesr X__u64
+} /* sigcontext.h:92:1 */
+
+// extra_context: describes extra space in the signal frame for
+// additional structures that don't fit in sigcontext.__reserved[].
+//
+// Note:
+//
+// 1) fpsimd_context, esr_context and extra_context must be placed in
+// sigcontext.__reserved[] if present. They cannot be placed in the
+// extra space. Any other record can be placed either in the extra
+// space or in sigcontext.__reserved[], unless otherwise specified in
+// this file.
+//
+// 2) There must not be more than one extra_context.
+//
+// 3) If extra_context is present, it must be followed immediately in
+// sigcontext.__reserved[] by the terminating null _aarch64_ctx.
+//
+// 4) The extra space to which datap points must start at the first
+// 16-byte aligned address immediately after the terminating null
+// _aarch64_ctx that follows the extra_context structure in
+// __reserved[]. The extra space may overrun the end of __reserved[],
+// as indicated by a sufficiently large value for the size field.
+//
+// 5) The extra space must itself be terminated with a null
+// _aarch64_ctx.
+
+type Extra_context = struct {
+ Fhead struct {
+ Fmagic X__u32
+ Fsize X__u32
+ }
+ Fdatap X__u64
+ Fsize X__u32
+ F__reserved [3]X__u32
+} /* sigcontext.h:125:1 */
+
+type Sve_context = struct {
+ Fhead struct {
+ Fmagic X__u32
+ Fsize X__u32
+ }
+ Fvl X__u16
+ F__reserved [3]X__u16
+} /* sigcontext.h:134:1 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure describing a signal stack.
+type Stack_t = struct {
+ Fss_sp uintptr
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ Fss_size Size_t
+} /* stack_t.h:31:5 */
+
+// This will define `ucontext_t' and `mcontext_t'.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// System V/AArch64 ABI compliant context switching support.
+
+// 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
+// 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 stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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 core files and libthread_db. Generic Linux version.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This is somewhat modelled after the file of the same name on SVR4
+// systems. It provides a definition of the core file format for ELF
+// used on Linux. It doesn't have anything to do with the /proc file
+// system, even though Linux has one.
+//
+// Anyway, the whole purpose of this file is for GDB and GDB only.
+// Don't read too much into it. Don't use it for anything other than
+// GDB unless you know what you are doing.
+
+// 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
+// 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) 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
+// 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+type Suseconds_t = X__suseconds_t /* time.h:28:23 */
+
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// 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
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+// Get definition of timer specification structures.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+// Structure crudely representing a timezone.
+// This is obsolete and should never be used.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:52:1 */
+
+// Type of the second argument to `getitimer' and
+// the second and third arguments `setitimer'.
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+} /* time.h:105:1 */
+
+type X__itimer_which_t = int32 /* time.h:118:13 */
+
+// Convenience macros for operations on timevals.
+// NOTE: `timercmp' does not work for >= or <=.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type U_char = X__u_char /* types.h:33:18 */
+type U_short = X__u_short /* types.h:34:19 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_mutex_t = struct {
+ 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 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Copyright (C) 2009-2020 Free Software 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/>.
+
+type User_regs_struct = struct {
+ Fregs [31]uint64
+ Fsp uint64
+ Fpc uint64
+ Fpstate uint64
+} /* user.h:22:1 */
+
+type User_fpsimd_struct = struct {
+ Fvregs [32]X__uint128_t
+ Ffpsr uint32
+ Ffpcr uint32
+} /* user.h:30:1 */
+
+// bits/procfs.h, provided by each architecture, must define
+// elf_gregset_t, elf_fpregset_t and any other architecture-specific
+// types needed.
+// Types for registers for sys/procfs.h. AArch64 version.
+// 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
+// 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/>.
+
+// Type for a general-purpose register.
+type Elf_greg_t = X__uint64_t /* procfs.h:25:20 */
+
+// And the whole bunch of them. We could have used `struct
+// pt_regs' directly in the typedef, but tradition says that
+// the register set is an array, which does have some peculiar
+// semantics, so leave it that way.
+type Elf_gregset_t = [34]Elf_greg_t /* procfs.h:32:20 */
+
+// Register set for the floating-point registers.
+type Elf_fpregset_t = User_fpsimd_struct /* procfs.h:35:35 */
+
+// bits/procfs-id.h must define __pr_uid_t and __pr_gid_t, the types
+// of pr_uid and pr_gid.
+// Types of pr_uid and pr_gid in struct elf_prpsinfo. Generic Linux 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/>.
+
+type X__pr_uid_t = uint32 /* procfs-id.h:24:22 */
+type X__pr_gid_t = uint32 /* procfs-id.h:25:22 */
+
+// Signal info.
+type Elf_siginfo = struct {
+ Fsi_signo int32
+ Fsi_code int32
+ Fsi_errno int32
+} /* procfs.h:49:1 */
+
+// Definitions to generate Intel SVR4-like core files. These mostly
+// have the same names as the SVR4 types with "elf_" tacked on the
+// front to prevent clashes with Linux definitions, and the typedef
+// forms have been avoided. This is mostly like the SVR4 structure,
+// but more Linuxy, with things that Linux does not support and which
+// GDB doesn't really use excluded.
+
+type Elf_prstatus = struct {
+ Fpr_info struct {
+ Fsi_signo int32
+ Fsi_code int32
+ Fsi_errno int32
+ }
+ Fpr_cursig int16
+ F__ccgo_pad1 [2]byte
+ Fpr_sigpend uint64
+ Fpr_sighold uint64
+ Fpr_pid X__pid_t
+ Fpr_ppid X__pid_t
+ Fpr_pgrp X__pid_t
+ Fpr_sid X__pid_t
+ Fpr_utime struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fpr_stime struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fpr_cutime struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fpr_cstime struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fpr_reg Elf_gregset_t
+ Fpr_fpvalid int32
+ F__ccgo_pad2 [4]byte
+} /* procfs.h:63:1 */
+
+type Elf_prpsinfo = struct {
+ Fpr_state uint8
+ Fpr_sname uint8
+ Fpr_zomb uint8
+ Fpr_nice uint8
+ F__ccgo_pad1 [4]byte
+ Fpr_flag uint64
+ Fpr_uid X__pr_uid_t
+ Fpr_gid X__pr_gid_t
+ Fpr_pid int32
+ Fpr_ppid int32
+ Fpr_pgrp int32
+ Fpr_sid int32
+ Fpr_fname [16]uint8
+ Fpr_psargs [80]uint8
+} /* procfs.h:84:1 */
+
+// The rest of this file provides the types for emulation of the
+// Solaris <proc_service.h> interfaces that should be implemented by
+// users of libthread_db.
+
+// Addresses.
+type Psaddr_t = uintptr /* procfs.h:104:14 */
+
+// Types of prgregset_t and prfpregset_t. Generic Linux 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/>.
+
+type X__prgregset_t = Elf_gregset_t /* procfs-prregset.h:24:23 */
+type X__prfpregset_t = Elf_fpregset_t /* procfs-prregset.h:25:24 */
+
+// Register sets. Linux has different names.
+type Prgregset_t = X__prgregset_t /* procfs.h:109:23 */
+type Prfpregset_t = X__prfpregset_t /* procfs.h:110:24 */
+
+// We don't have any differences between processes and threads,
+// therefore have only one PID type.
+type Lwpid_t = X__pid_t /* procfs.h:114:17 */
+
+// Process status and info. In the end we do provide typedefs for them.
+type Prstatus_t = Elf_prstatus /* procfs.h:117:29 */
+type Prpsinfo_t = Elf_prpsinfo /* procfs.h:118:29 */
+
+// On some architectures, provide other-ABI variants of the above
+// types.
+// Extra sys/procfs.h definitions. Generic Linux 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/>.
+
+type Greg_t = Elf_greg_t /* ucontext.h:39:20 */
+
+// Container for all general registers.
+type Gregset_t = Elf_gregset_t /* ucontext.h:42:23 */
+
+// Structure to describe FPU registers.
+type Fpregset_t = Elf_fpregset_t /* ucontext.h:45:24 */
+
+// Context to describe whole processor state. This only describes
+// the core registers; coprocessor registers get saved elsewhere
+// (e.g. in uc_regspace, or somewhere unspecified on the stack
+// during non-RT signal handlers).
+type Mcontext_t = struct {
+ Ffault_address uint64
+ Fregs [31]uint64
+ Fsp uint64
+ Fpc uint64
+ Fpstate uint64
+ F__reserved [4096]uint8
+} /* ucontext.h:64:5 */
+
+// Userlevel context.
+type Ucontext_t1 = struct {
+ Fuc_flags uint64
+ Fuc_link uintptr
+ Fuc_stack Stack_t
+ Fuc_sigmask Sigset_t
+ Fuc_mcontext Mcontext_t
+} /* ucontext.h:67:9 */
+
+// Userlevel context.
+type Ucontext_t = Ucontext_t1 /* ucontext.h:74:5 */
+
+// Define struct sigstack.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Structure describing a signal stack (obsolete).
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* struct_sigstack.h:23:1 */
+
+// System-specific extensions.
+// System-specific extensions of <signal.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_linux_s390x.go b/vendor/modernc.org/libc/signal/signal_linux_s390x.go
new file mode 100644
index 00000000..f0ea5e59
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_linux_s390x.go
@@ -0,0 +1,2222 @@
+// Code generated by 'ccgo signal/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 signal/signal_linux_s390x.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ MINSIGSTKSZ = 2048
+ NGREG = 27
+ NSIG = 65
+ SA_INTERRUPT = 0x20000000
+ SA_NOCLDSTOP = 1
+ SA_NOCLDWAIT = 2
+ SA_NODEFER = 0x40000000
+ SA_NOMASK = 1073741824
+ SA_ONESHOT = 2147483648
+ SA_ONSTACK = 0x08000000
+ SA_RESETHAND = 0x80000000
+ SA_RESTART = 0x10000000
+ SA_SIGINFO = 4
+ SA_STACK = 134217728
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 7
+ SIGCHLD = 17
+ SIGCLD = 17
+ SIGCONT = 18
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINT = 2
+ SIGIO = 29
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPOLL = 29
+ SIGPROF = 27
+ SIGPWR = 30
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKFLT = 16
+ SIGSTKSZ = 8192
+ SIGSTOP = 19
+ SIGSYS = 31
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 20
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 23
+ SIGUSR1 = 10
+ SIGUSR2 = 12
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 0
+ SIG_SETMASK = 2
+ SIG_UNBLOCK = 1
+ X_ASM_GENERIC_INT_LL64_H = 0
+ X_ASM_S390_SIGCONTEXT_H = 0
+ X_ATFILE_SOURCE = 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_SIGACTION_H = 1
+ X_BITS_SIGCONTEXT_H = 1
+ X_BITS_SIGEVENT_CONSTS_H = 1
+ X_BITS_SIGINFO_ARCH_H = 1
+ X_BITS_SIGINFO_CONSTS_H = 1
+ X_BITS_SIGNUM_GENERIC_H = 1
+ X_BITS_SIGNUM_H = 1
+ X_BITS_SIGSTACK_H = 1
+ X_BITS_SIGTHREAD_H = 1
+ X_BITS_SS_FLAGS_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
+ X_LINUX_TYPES_H = 0
+ X_LP64 = 1
+ X_NSIG = 65
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
+ X_S390_TYPES_H = 0
+ X_SIGCONTEXT_NSIG = 64
+ X_SIGCONTEXT_NSIG_BPW = 64
+ X_SIGCONTEXT_NSIG_WORDS = 1
+ X_SIGNAL_H = 0
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_UCONTEXT_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+// POSIX names to access some of the members.
+
+// sigevent constants. Linux version.
+// 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
+// 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/>.
+
+// `sigev_notify' values.
+const ( /* sigevent-consts.h:27:1: */
+ SIGEV_SIGNAL = 0 // Notify via signal.
+ SIGEV_NONE = 1 // Other notification: meaningless.
+ SIGEV_THREAD = 2 // Deliver via thread creation.
+
+ SIGEV_THREAD_ID = 4
+)
+
+// `si_code' values for SIGSEGV signal.
+const ( /* siginfo-consts.h:119:1: */
+ SEGV_MAPERR = 1 // Address not mapped to object.
+ SEGV_ACCERR = 2 // Invalid permissions for mapped object.
+ SEGV_BNDERR = 3 // Bounds checking failure.
+ SEGV_PKUERR = 4 // Protection key checking failure.
+ SEGV_ACCADI = 5 // ADI not enabled for mapped object.
+ SEGV_ADIDERR = 6 // Disrupting MCD error.
+ SEGV_ADIPERR = 7
+)
+
+// `si_code' values for SIGBUS signal.
+const ( /* siginfo-consts.h:138:1: */
+ BUS_ADRALN = 1 // Invalid address alignment.
+ BUS_ADRERR = 2 // Non-existant physical address.
+ BUS_OBJERR = 3 // Object specific hardware error.
+ BUS_MCEERR_AR = 4 // Hardware memory error: action required.
+ BUS_MCEERR_AO = 5
+)
+
+// `si_code' values for SIGCHLD signal.
+const ( /* siginfo-consts.h:172:1: */
+ CLD_EXITED = 1 // Child has exited.
+ CLD_KILLED = 2 // Child was killed.
+ CLD_DUMPED = 3 // Child terminated abnormally.
+ CLD_TRAPPED = 4 // Traced child has trapped.
+ CLD_STOPPED = 5 // Child has stopped.
+ CLD_CONTINUED = 6
+)
+
+// `si_code' values for SIGPOLL signal.
+const ( /* siginfo-consts.h:189:1: */
+ POLL_IN = 1 // Data input available.
+ POLL_OUT = 2 // Output buffers available.
+ POLL_MSG = 3 // Input message available.
+ POLL_ERR = 4 // I/O error.
+ POLL_PRI = 5 // High priority input available.
+ POLL_HUP = 6
+)
+
+// X/Open requires some more fields with fixed names.
+
+// siginfo constants. Linux version.
+// 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
+// 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/>.
+
+// Most of these constants are uniform across all architectures, but there
+// is one exception.
+// Architecture-specific adjustments to siginfo_t.
+
+// Values for `si_code'. Positive values are reserved for kernel-generated
+// signals.
+const ( /* siginfo-consts.h:35:1: */
+ SI_ASYNCNL = -60 // Sent by asynch name lookup completion.
+ SI_DETHREAD = -7 // Sent by execve killing subsidiary
+ // threads.
+ SI_TKILL = -6 // Sent by tkill.
+ SI_SIGIO = -5 // Sent by queued SIGIO.
+ SI_ASYNCIO = -4 // Sent by AIO completion.
+ SI_MESGQ = -3 // Sent by real time mesq state change.
+ SI_TIMER = -2 // Sent by timer expiration.
+ SI_QUEUE = -1 // Sent by sigqueue.
+ SI_USER = 0 // Sent by kill, sigsend.
+ SI_KERNEL = 128
+)
+
+// `si_code' values for SIGILL signal.
+const ( /* siginfo-consts.h:71:1: */
+ ILL_ILLOPC = 1 // Illegal opcode.
+ ILL_ILLOPN = 2 // Illegal operand.
+ ILL_ILLADR = 3 // Illegal addressing mode.
+ ILL_ILLTRP = 4 // Illegal trap.
+ ILL_PRVOPC = 5 // Privileged opcode.
+ ILL_PRVREG = 6 // Privileged register.
+ ILL_COPROC = 7 // Coprocessor error.
+ ILL_BADSTK = 8 // Internal stack error.
+ ILL_BADIADDR = 9
+)
+
+// `si_code' values for SIGFPE signal.
+const ( /* siginfo-consts.h:94:1: */
+ FPE_INTDIV = 1 // Integer divide by zero.
+ FPE_INTOVF = 2 // Integer overflow.
+ FPE_FLTDIV = 3 // Floating point divide by zero.
+ FPE_FLTOVF = 4 // Floating point overflow.
+ FPE_FLTUND = 5 // Floating point underflow.
+ FPE_FLTRES = 6 // Floating point inexact result.
+ FPE_FLTINV = 7 // Floating point invalid operation.
+ FPE_FLTSUB = 8 // Subscript out of range.
+ FPE_FLTUNK = 14 // Undiagnosed floating-point exception.
+ FPE_CONDTRAP = 15
+)
+
+// sigstack, sigaltstack definitions.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Minimum stack size for a signal handler.
+
+// System default stack size.
+
+// ss_flags values for stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Possible values for `ss_flags'.
+const ( /* ss_flags.h:27:1: */
+ SS_ONSTACK = 1
+ SS_DISABLE = 2
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.14 Signal handling <signal.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Signal number definitions. Linux version.
+// 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
+// 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/>.
+
+// Signal number constants. Generic template.
+// 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
+// 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/>.
+
+// Fake signal functions.
+
+// We define here all the signal names listed in POSIX (1003.1-2008);
+// as of 1003.1-2013, no additional signals have been added by POSIX.
+// We also define here signal names that historically exist in every
+// real-world POSIX variant (e.g. SIGWINCH).
+//
+// Signals in the 1-15 range are defined with their historical numbers.
+// For other signals, we use the BSD numbers.
+// There are two unallocated signal numbers in the 1-31 range: 7 and 29.
+// Signal number 0 is reserved for use as kill(pid, 0), to test whether
+// a process exists without sending it a signal.
+
+// ISO C99 signals.
+
+// Historical signals specified by POSIX.
+
+// New(er) POSIX signals (1003.1-2008, 1003.1-2013).
+
+// Nonstandard signals found in all modern POSIX systems
+// (including both BSD and Linux).
+
+// Archaic names for compatibility.
+
+// Not all systems support real-time signals. bits/signum.h indicates
+// that they are supported by overriding __SIGRTMAX to a value greater
+// than __SIGRTMIN. These constants give the kernel-level hard limits,
+// but some real-time signals may be used internally by glibc. Do not
+// use these constants in application code; use SIGRTMIN and SIGRTMAX
+// (defined in signal.h) instead.
+
+// Biggest signal number + 1 (including real-time signals).
+
+// Adjustments and additions to the signal number constants for
+// most Linux systems.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// An integral type that can be modified atomically, without the
+// possibility of a signal arriving in the middle of the operation.
+type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+type Pid_t = X__pid_t /* signal.h:40:17 */
+type Uid_t = X__uid_t /* signal.h:46:17 */
+
+// We need `struct timespec' later on.
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Type for data associated with a signal.
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* __sigval_t.h:24:1 */
+
+type X__sigval_t = Sigval /* __sigval_t.h:30:22 */
+
+// Some fields of siginfo_t have architecture-specific variations.
+// Architecture-specific adjustments to siginfo_t.
+
+// This architecture has no adjustments to make to siginfo_t.
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ F__pad0 int32
+ F_sifields struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [28]int32
+ }
+} /* siginfo_t.h:124:5 */
+
+// Architectures might also add architecture-specific constants.
+// These are all considered GNU extensions.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// To avoid sigval_t (not a standard type name) having C++ name
+// mangling depending on whether the selected standard includes union
+// sigval, it should not be defined at all when using a standard for
+// which the sigval name is not reserved; in that case, headers should
+// not include <bits/types/sigval_t.h> and should use only the
+// internal __sigval_t name.
+
+type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]uint8
+} /* sigevent_t.h:17:9 */
+
+// Determine the wordsize from the preprocessor defines.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Define __sigval_t.
+// 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
+// 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/>.
+
+// Forward declaration.
+type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent = struct {
+ Fsigev_value X__sigval_t
+ Fsigev_signo int32
+ Fsigev_notify int32
+ F_sigev_un struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [12]int32
+ }
+} /* sigevent_t.h:22:9 */
+
+// Structure to transport application-defined values with signals.
+type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */
+
+// Type of a signal handler.
+type X__sighandler_t = uintptr /* signal.h:72:14 */
+
+// 4.4 BSD uses the name `sig_t' for this.
+type Sig_t = X__sighandler_t /* signal.h:190:24 */
+
+// Get the system-specific definitions of `struct sigaction'
+// and the `SA_*' and `SIG_*'. constants.
+// Definitions for 31 & 64 bit S/390 sigaction.
+// Copyright (C) 2001-2020 Free Software 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.
+
+// Structure describing the action to be taken when a signal arrives.
+type Sigaction = struct {
+ F__sigaction_handler struct{ Fsa_handler X__sighandler_t }
+ F__glibc_reserved0 int32
+ Fsa_flags int32
+ Fsa_restorer uintptr
+ Fsa_mask X__sigset_t
+} /* sigaction.h:30:1 */
+
+// Get machine-dependent `struct sigcontext' and signal subcodes.
+// 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
+// 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/>.
+
+// Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+// we need sigcontext.
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// S390 version
+// Copyright IBM Corp. 1999, 2000
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// S390 version
+//
+// Derived from "include/asm-i386/types.h"
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// asm-generic/int-ll64.h
+//
+// Integer declarations for architectures which use "long long"
+// for 64-bit types.
+
+// 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.
+
+// __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
+// header files exported to user space
+
+type X__s8 = int8 /* int-ll64.h:20:25 */
+type X__u8 = uint8 /* int-ll64.h:21:23 */
+
+type X__s16 = int16 /* int-ll64.h:23:26 */
+type X__u16 = uint16 /* int-ll64.h:24:24 */
+
+type X__s32 = int32 /* int-ll64.h:26:24 */
+type X__u32 = uint32 /* int-ll64.h:27:22 */
+
+type X__s64 = int64 /* int-ll64.h:30:44 */
+type X__u64 = uint64 /* int-ll64.h:31:42 */
+
+// A address type so that arithmetic can be done on it & it can be upgraded to
+// 64 bit when necessary
+type Addr_t = uint64 /* types.h:18:23 */
+type Saddr_t = int64 /* types.h:19:25 */
+
+type X__vector128 = struct{ Fu [4]X__u32 } /* types.h:23:3 */
+
+// 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
+// S390 version
+//
+
+// 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
+
+// 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 */
+
+// Below are truly Linux-specific types that should never collide with
+// any application/library that wants linux/types.h.
+
+type X__le16 = X__u16 /* types.h:24:25 */
+type X__be16 = X__u16 /* types.h:25:25 */
+type X__le32 = X__u32 /* types.h:26:25 */
+type X__be32 = X__u32 /* types.h:27:25 */
+type X__le64 = X__u64 /* types.h:28:25 */
+type X__be64 = X__u64 /* types.h:29:25 */
+
+type X__sum16 = X__u16 /* types.h:31:25 */
+type X__wsum = X__u32 /* types.h:32:25 */
+
+// aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
+// common 32/64-bit compat problems.
+// 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
+// architectures) and to 8-byte boundaries on 64-bit architectures. The new
+// aligned_64 type enforces 8-byte alignment so that structs containing
+// aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
+// No conversions are necessary between 32-bit user-space and a 64-bit kernel.
+
+type X__poll_t = uint32 /* types.h:47:28 */
+
+// Has to be at least _NSIG_WORDS from asm/signal.h
+// Size of stack frame allocated when calling signal handler.
+
+type X_psw_t = struct {
+ Fmask uint64
+ Faddr uint64
+} /* sigcontext.h:45:32 */
+
+type X_s390_regs_common = struct {
+ Fpsw X_psw_t
+ Fgprs [16]uint64
+ Facrs [16]uint32
+} /* sigcontext.h:52:3 */
+
+type X_s390_fp_regs = struct {
+ Ffpc uint32
+ Fpad uint32
+ Ffprs [16]float64
+} /* sigcontext.h:59:3 */
+
+type X_sigregs = struct {
+ Fregs X_s390_regs_common
+ Ffpregs X_s390_fp_regs
+} /* sigcontext.h:65:3 */
+
+type X_sigregs_ext = struct {
+ Fvxrs_low [16]uint64
+ Fvxrs_high [16]X__vector128
+ F__reserved [128]uint8
+} /* sigcontext.h:75:3 */
+
+type Sigcontext = struct {
+ Foldmask [1]uint64
+ Fsregs uintptr
+} /* sigcontext.h:77:1 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Define stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure describing a signal stack.
+type Stack_t = struct {
+ Fss_sp uintptr
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ Fss_size Size_t
+} /* stack_t.h:31:5 */
+
+// This will define `ucontext_t' and `mcontext_t'.
+// Copyright (C) 2000-2020 Free Software Foundation, Inc.
+// Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
+// 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) 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
+// 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 stack_t. Linux version.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Type for a program status word.
+type X__psw_t = struct {
+ Fmask uint64
+ Faddr uint64
+} /* ucontext.h:39:36 */
+
+// Type for a general-purpose register.
+type Greg_t = uint64 /* ucontext.h:42:23 */
+
+// And the whole bunch of them. We should have used `struct s390_regs',
+// but to avoid name space pollution and since the tradition says that
+// the register set is an array, we make gregset_t a simple array
+// that has the same size as s390_regs. This is needed for the
+// elf_prstatus structure.
+// Must match kernels psw_t alignment.
+type Gregset_t = [27]Greg_t /* ucontext.h:58:16 */
+
+type Fpreg_t = struct{ Fd float64 } /* ucontext.h:64:5 */
+
+// Register set for the floating-point registers.
+type Fpregset_t = struct {
+ Ffpc uint32
+ F__ccgo_pad1 [4]byte
+ Ffprs [16]Fpreg_t
+} /* ucontext.h:71:5 */
+
+// Context to describe whole processor state.
+type Mcontext_t = struct {
+ Fpsw X__psw_t
+ Fgregs [16]uint64
+ Faregs [16]uint32
+ Ffpregs Fpregset_t
+} /* ucontext.h:80:5 */
+
+// Userlevel context.
+type Ucontext_t1 = struct {
+ Fuc_flags uint64
+ Fuc_link uintptr
+ Fuc_stack Stack_t
+ Fuc_mcontext Mcontext_t
+ Fuc_sigmask Sigset_t
+} /* ucontext.h:83:9 */
+
+// Userlevel context.
+type Ucontext_t = Ucontext_t1 /* ucontext.h:90:5 */
+
+// Define struct sigstack.
+// Copyright (C) 1998-2020 Free Software 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/>.
+
+// Structure describing a signal stack (obsolete).
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* struct_sigstack.h:23:1 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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_internal_list = struct {
+ F__prev uintptr
+ F__next uintptr
+} /* thread-shared-types.h:49:9 */
+
+// Some of the functions for handling signals in threaded programs must
+// be defined here.
+// 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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// System-specific extensions.
+// System-specific extensions of <signal.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_netbsd_amd64.go b/vendor/modernc.org/libc/signal/signal_netbsd_amd64.go
new file mode 100644
index 00000000..45917773
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_netbsd_amd64.go
@@ -0,0 +1,2889 @@
+// Code generated by 'ccgo signal/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 signal/signal_netbsd_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_OBJERR = 3
+ BYTE_ORDER = 1234
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ FD_SETSIZE = 256
+ FPE_FLTDIV = 3
+ FPE_FLTINV = 7
+ FPE_FLTOVF = 4
+ FPE_FLTRES = 6
+ FPE_FLTSUB = 8
+ FPE_FLTUND = 5
+ FPE_INTDIV = 1
+ FPE_INTOVF = 2
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 3
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 2
+ ILL_ILLTRP = 4
+ ILL_PRVOPC = 5
+ ILL_PRVREG = 6
+ 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
+ MINSIGSTKSZ = 8192
+ NBBY = 8
+ NFDBITS = 32
+ NODEVMAJOR = -1
+ NSIG = 64
+ PDP_ENDIAN = 3412
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_NOKERNINFO = 0x0080
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_NONE = 0
+ SIGEV_SA = 3
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 2
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGPWR = 32
+ SIGQUIT = 3
+ SIGRTMAX = 63
+ SIGRTMIN = 33
+ SIGSEGV = 11
+ SIGSTKSZ = 40960
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SIZE_MAX = 18446744073709551615
+ SI_ASYNCIO = -3
+ SI_LWP = -5
+ SI_MESGQ = -4
+ SI_NOINFO = 32767
+ SI_QUEUE = -1
+ SI_TIMER = -2
+ SI_USER = 0
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ TC_FLAGMASK = 2147483648
+ TC_TSS = 0x80000000
+ TRAP_BRKPT = 1
+ TRAP_CHLD = 4
+ TRAP_DBREG = 6
+ TRAP_EXEC = 3
+ TRAP_LWP = 5
+ TRAP_SCE = 7
+ TRAP_SCX = 8
+ TRAP_TRACE = 2
+ T_ALIGNFLT = 7
+ T_ARITHTRAP = 2
+ T_ASTFLT = 3
+ T_BOUND = 11
+ T_BPTFLT = 1
+ T_DIVIDE = 8
+ T_DNA = 12
+ T_DOUBLEFLT = 13
+ T_FPOPFLT = 14
+ T_MCA = 18
+ T_NMI = 9
+ T_OFLOW = 10
+ T_PAGEFLT = 6
+ T_PRIVINFLT = 0
+ T_PROTFLT = 4
+ T_RESERVED = 20
+ T_SEGNPFLT = 16
+ T_STKFLT = 17
+ T_TRCTRAP = 5
+ T_TSSFLT = 15
+ T_USER = 0x100
+ T_XMM = 19
+ 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_FRAME_REGS_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_MCONTEXT_H_ = 0
+ X_AMD64_SIGNAL_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_NSIG = 64
+ 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_SIGNAL_H_ = 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_SIGINFO_H_ = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS_SIGTYPES_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UCONTEXT_H_ = 0
+ X_UC_CLRSTACK = 0x00020000
+ X_UC_CPU = 0x04
+ X_UC_FPU = 0x08
+ X_UC_MD = 0x400f0020
+ X_UC_SETSTACK = 0x00010000
+ X_UC_SIGMASK = 0x01
+ X_UC_STACK = 0x02
+ X_UC_TLSBASE = 0x00080000
+ X_UC_UCONTEXT_ALIGN = -16
+ X_X86_64_BSWAP_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ X_X86_64_TYPES_H_ = 0
+)
+
+// Get the "code" values
+// $NetBSD: trap.h,v 1.1 2003/04/26 18:39:48 fvdl Exp $
+
+// $NetBSD: trap.h,v 1.2 2003/08/07 16:30:33 agc Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// William Jolitz.
+//
+// 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.
+//
+// @(#)trap.h 5.4 (Berkeley) 5/9/91
+
+// Trap type values
+// also known in trap.c for name strings
+
+// Trap's coming from user mode
+
+// Flags kludged into the trap code
+
+// $NetBSD: mcontext.h,v 1.19 2018/02/15 15:53:56 kamil Exp $
+
+// -
+// Copyright (c) 1999 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: frame_regs.h,v 1.7 2015/04/26 18:49:39 mrg Exp $
+
+// amd64 registers (and friends) ordered as in a trap/interrupt/syscall frame.
+// Also the indexes into the 'general register state' (__greg_t) passed to
+// userland.
+// Historically they were in the same order, but the order in the frames
+// has been changed to improve syscall efficiency.
+//
+// Notes:
+// 1) gdb (amd64nbsd-tdep.c) has a lookup table that assumes the __greg_t
+// ordering.
+// 2) src/lib/libc/arch/x86_64/gen/makecontext.c assumes that the first
+// 6 entries in the __greg_t array match the registers used to pass
+// function arguments.
+// 3) The 'struct reg' from machine/reg.h has to match __greg_t.
+// Since they are both arrays and indexed with the same tokens this
+// shouldn't be a problem, but is rather confusing.
+// This assumption is made in a lot of places!
+// 4) There might be other code out there that relies on the ordering.
+//
+// The first entries below match the registers used for syscall arguments
+// (%rcx is destroyed by the syscall instruction, the libc system call
+// stubs copy %rcx to %r10).
+// arg6-arg9 are copied from the user stack for system calls with more
+// than 6 args (SYS_MAXSYSARGS is 8, + 2 entries for SYS___SYSCALL).
+
+// General register state
+const ( /* mcontext.h:43:1: */
+ X_REG_RDI = 0 /* tf_rdi */
+ X_REG_RSI = 1 /* tf_rsi */
+ X_REG_RDX = 2 /* tf_rdx */
+ X_REG_R10 = 6 /* tf_r10 */
+ X_REG_R8 = 4 /* tf_r8 */
+ X_REG_R9 = 5 /* tf_r9 */
+ X_REG_RCX = 3 /* tf_rcx */
+ X_REG_R11 = 7 /* tf_r11 */
+ X_REG_R12 = 8 /* tf_r12 */
+ X_REG_R13 = 9 /* tf_r13 */
+ X_REG_R14 = 10 /* tf_r14 */
+ X_REG_R15 = 11 /* tf_r15 */
+ X_REG_RBP = 12 /* tf_rbp */
+ X_REG_RBX = 13 /* tf_rbx */
+ X_REG_RAX = 14 /* tf_rax */
+ X_REG_GS = 15 /* tf_gs */
+ X_REG_FS = 16 /* tf_fs */
+ X_REG_ES = 17 /* tf_es */
+ X_REG_DS = 18 /* tf_ds */
+ X_REG_TRAPNO = 19 /* Below portion defined in hardware */
+ X_REG_ERR = 20 /* tf_err: Dummy inserted if not defined */
+ X_REG_RIP = 21 /* tf_rip */
+ X_REG_CS = 22 /* tf_cs */
+ X_REG_RFLAGS = 23 /* These are pushed unconditionally on the x86-64 */
+ X_REG_RSP = 24 /* tf_rsp */
+ X_REG_SS = 25
+ X_NGREG = 26
+)
+
+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: 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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+// $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 */
+
+// $NetBSD: signal.h,v 1.72 2017/04/21 15:10:35 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
+
+// $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: 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: 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: siginfo.h,v 1.33.2.1 2019/10/15 18:32:13 martin Exp $
+
+// -
+// Copyright (c) 2002 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.
+
+// $NetBSD: signal.h,v 1.12 2013/01/02 19:40:23 dsl Exp $
+
+// Copyright (c) 1982, 1986, 1989, 1991 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.
+//
+// @(#)signal.h 7.16 (Berkeley) 3/17/91
+
+// $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 Sig_atomic_t = int32 /* signal.h:41:13 */
+
+type X__greg_t = uint64 /* mcontext.h:46:23 */
+type X__gregset_t = [26]X__greg_t /* mcontext.h:47:18 */
+
+// These names are for compatibility
+
+// Floating point register state
+// The format of __fpregset_t is that of the fxsave instruction
+// which requires 16 byte alignment. However the mcontext version
+// is never directly accessed.
+type X__fpregset_t = [512]int8 /* mcontext.h:59:14 */
+
+type Mcontext_t = struct {
+ F__gregs X__gregset_t
+ F_mc_tlsbase X__greg_t
+ F__fpregs X__fpregset_t
+} /* mcontext.h:65:3 */
+
+// $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 Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* siginfo.h:41:9 */
+
+// $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 Sigval_t = Sigval /* siginfo.h:44:3 */
+
+type X_ksiginfo = struct {
+ F_signo int32
+ F_code int32
+ F_errno int32
+ F_pad int32
+ F_reason struct {
+ F_rt struct {
+ F_pid X__pid_t
+ F_uid X__uid_t
+ F_value Sigval_t
+ }
+ F__ccgo_pad1 [64]byte
+ }
+} /* siginfo.h:46:1 */
+
+type Siginfo = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsi_pad [128]int8
+} /* siginfo.h:148:9 */
+
+type Siginfo_t = Siginfo /* siginfo.h:151:3 */
+
+//* Field access macros
+
+//* si_code
+// SIGILL
+
+// SIGFPE
+
+// SIGSEGV
+
+// SIGBUS
+
+// SIGTRAP
+
+// SIGCHLD
+// did not create a core file
+// created a core file
+
+// SIGIO
+
+//* si_code
+// set by timer_settime(2)
+// asynchronous I/O signal
+// an empty message queue
+
+// $NetBSD: ucontext.h,v 1.19 2018/02/27 23:09:02 uwe Exp $
+
+// -
+// Copyright (c) 1999, 2003 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus Klein, and by Jason R. Thorpe.
+//
+// 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: 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
+
+// $NetBSD: mcontext.h,v 1.19 2018/02/15 15:53:56 kamil Exp $
+
+// -
+// Copyright (c) 1999 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.
+
+type X__ucontext = struct {
+ Fuc_flags uint32
+ F__ccgo_pad1 [4]byte
+ Fuc_link uintptr
+ Fuc_sigmask Sigset_t
+ Fuc_stack Stack_t
+ Fuc_mcontext Mcontext_t
+} /* ucontext.h:38:9 */
+
+//* Field access macros
+
+//* si_code
+// SIGILL
+
+// SIGFPE
+
+// SIGSEGV
+
+// SIGBUS
+
+// SIGTRAP
+
+// SIGCHLD
+// did not create a core file
+// created a core file
+
+// SIGIO
+
+//* si_code
+// set by timer_settime(2)
+// asynchronous I/O signal
+// an empty message queue
+
+// $NetBSD: ucontext.h,v 1.19 2018/02/27 23:09:02 uwe Exp $
+
+// -
+// Copyright (c) 1999, 2003 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus Klein, and by Jason R. Thorpe.
+//
+// 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: 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
+
+// $NetBSD: mcontext.h,v 1.19 2018/02/15 15:53:56 kamil Exp $
+
+// -
+// Copyright (c) 1999 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.
+
+type Ucontext_t = X__ucontext /* ucontext.h:38:27 */
+
+// uc_flags
+
+// if your port needs more MD bits, please try to choose bits from _UC_MD
+// first, rather than picking random unused bits.
+//
+// _UC_MD details
+//
+// _UC_TLSBASE Context contains valid pthread private pointer
+// All ports must define this MD flag
+// 0x00040000 hppa, mips
+// 0x00000020 alpha
+// 0x00080000 all other ports
+//
+// _UC_SETSTACK Context uses signal stack
+// 0x00020000 arm
+// [undefined] alpha, powerpc and vax
+// 0x00010000 other ports
+//
+// _UC_CLRSTACK Context does not use signal stack
+// 0x00040000 arm
+// [undefined] alpha, powerpc and vax
+// 0x00020000 other ports
+//
+// _UC_POWERPC_VEC Context contains valid AltiVec context
+// 0x00010000 powerpc only
+//
+// _UC_POWERPC_SPE Context contains valid SPE context
+// 0x00020000 powerpc only
+//
+// _UC_M68K_UC_USER Used by m68k machdep code, but undocumented
+// 0x40000000 m68k only
+//
+// _UC_ARM_VFP Unused
+// 0x00010000 arm only
+//
+// _UC_VM Context contains valid virtual 8086 context
+// 0x00040000 i386, amd64 only
+//
+// _UC_FXSAVE Context contains FPU context in that
+// is in FXSAVE format in XMM space
+// 0x00000020 i386, amd64 only
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F_sa_u struct{ F_sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:123:1 */
+
+// $NetBSD: signal.h,v 1.12 2013/01/02 19:40:23 dsl Exp $
+
+// Copyright (c) 1982, 1986, 1989, 1991 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.
+//
+// @(#)signal.h 7.16 (Berkeley) 3/17/91
+
+// Only valid for SIGCHLD.
+
+// Flags for sigprocmask():
+
+type Sig_t = uintptr /* signal.h:172:14 */ // type of signal function
+
+// Flags used with stack_t/struct sigaltstack.
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:198:1 */
+
+// Macro for converting signal number to a mask suitable for
+// sigblock().
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:216: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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_openbsd_amd64.go b/vendor/modernc.org/libc/signal/signal_openbsd_amd64.go
new file mode 100644
index 00000000..14b66c86
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_openbsd_amd64.go
@@ -0,0 +1,1386 @@
+// Code generated by 'ccgo signal/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 signal/signal_openbsd_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_OBJERR = 3
+ BYTE_ORDER = 1234
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ CLK_TCK = 100
+ CLOCKS_PER_SEC = 100
+ CLOCK_BOOTTIME = 6
+ CLOCK_MONOTONIC = 3
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 4
+ CLOCK_UPTIME = 5
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ EMT_TAGOVF = 1
+ FD_SETSIZE = 1024
+ FPE_FLTDIV = 3
+ FPE_FLTINV = 7
+ FPE_FLTOVF = 4
+ FPE_FLTRES = 6
+ FPE_FLTSUB = 8
+ FPE_FLTUND = 5
+ FPE_INTDIV = 1
+ FPE_INTOVF = 2
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 3
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 2
+ ILL_ILLTRP = 4
+ ILL_PRVOPC = 5
+ ILL_PRVREG = 6
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ MINSIGSTKSZ = 12288
+ NBBY = 8
+ NSIG = 33
+ NSIGBUS = 3
+ NSIGCLD = 6
+ NSIGEMT = 1
+ NSIGFPE = 8
+ NSIGILL = 8
+ NSIGSEGV = 2
+ NSIGTRAP = 2
+ PDP_ENDIAN = 3412
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 28672
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTHR = 32
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SI_LWP = -1
+ SI_MAXSZ = 128
+ SI_NOINFO = 32767
+ SI_QUEUE = -2
+ SI_TIMER = -3
+ SI_USER = 0
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE_SIGNAL_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_NSIG = 33
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SELECT_DEFINED_ = 0
+ X_SIGSET_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_SIGINFO_H = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TIME_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIMESPEC_DECLARED = 0
+ X_TIMEVAL_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ X_USER_SIGNAL_H = 0
+ Unix = 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 */
+
+// $OpenBSD: signal.h,v 1.26 2018/05/30 13:20:38 bluhm Exp $
+// $NetBSD: signal.h,v 1.8 1996/02/29 00:04:57 jtc Exp $
+
+// -
+// Copyright (c) 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.
+//
+// @(#)signal.h 8.3 (Berkeley) 3/30/94
+
+// $OpenBSD: signal.h,v 1.29 2018/04/18 16:05:20 deraadt Exp $
+// $NetBSD: signal.h,v 1.21 1996/02/09 18:25:32 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.2 (Berkeley) 1/21/94
+
+// $OpenBSD: signal.h,v 1.9 2016/05/10 18:39:42 deraadt Exp $
+// $NetBSD: signal.h,v 1.2 2003/04/28 23:16:17 bjh21 Exp $
+
+// Copyright (c) 1982, 1986, 1989, 1991 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.
+//
+// @(#)signal.h 7.16 (Berkeley) 3/17/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+type Sig_atomic_t = int32 /* signal.h:40:13 */
+
+// Information pushed on stack when a signal is delivered.
+// This is used by the kernel to restore state following
+// execution of the signal handler. It is also made available
+// to the handler to allow it to restore state properly if
+// a non-standard exit is performed.
+type Sigcontext = struct {
+ Fsc_rdi int64
+ Fsc_rsi int64
+ Fsc_rdx int64
+ Fsc_rcx int64
+ Fsc_r8 int64
+ Fsc_r9 int64
+ Fsc_r10 int64
+ Fsc_r11 int64
+ Fsc_r12 int64
+ Fsc_r13 int64
+ Fsc_r14 int64
+ Fsc_r15 int64
+ Fsc_rbp int64
+ Fsc_rbx int64
+ Fsc_rax int64
+ Fsc_gs int64
+ Fsc_fs int64
+ Fsc_es int64
+ Fsc_ds int64
+ Fsc_trapno int64
+ Fsc_err int64
+ Fsc_rip int64
+ Fsc_cs int64
+ Fsc_rflags int64
+ Fsc_rsp int64
+ Fsc_ss int64
+ Fsc_fpstate uintptr
+ F__sc_unused int32
+ Fsc_mask int32
+ Fsc_cookie int64
+} /* signal.h:54:1 */
+
+// Language spec says we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+
+type Sigset_t = uint32 /* signal.h:104:22 */
+
+// $OpenBSD: siginfo.h,v 1.12 2017/04/07 04:48:44 guenther Exp $
+
+// Copyright (c) 1997 Theo de Raadt
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* siginfo.h:33:1 */
+
+// Negative signal codes are reserved for future use for
+// user generated signals.
+
+// The machine dependent signal codes (SIGILL, SIGFPE,
+// SIGSEGV, and SIGBUS)
+
+// SIGTRAP signal codes
+
+// SIGCHLD signal codes
+
+// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $
+// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft 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.2 (Berkeley) 7/10/94
+
+// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther 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
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* select.h:41:1 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* select.h:49:1 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+// We don't want to pollute the namespace with select(2) internals.
+// Non-underscore versions are exposed later #if __BSD_VISIBLE
+type X__fd_mask = Uint32_t /* select.h:70:18 */
+
+type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */
+
+type Fd_set = Fd_set1 /* select.h:76:3 */
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:72:1 */
+
+// Operations on timevals.
+
+// Operations on timespecs.
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:148:1 */
+
+// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE})
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:157:1 */
+
+// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $
+// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $
+
+// Copyright (c) 1989 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 5.12 (Berkeley) 3/9/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha 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.
+
+// Per-process and per-thread clocks encode the PID or TID into the
+// high bits, with the type in the bottom bits
+
+// Structure defined by POSIX 1003.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:56:1 */
+
+type Locale_t = uintptr /* time.h:107:14 */
+
+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:111:1 */
+
+type Siginfo_t = struct {
+ Fsi_signo int32
+ Fsi_code int32
+ Fsi_errno int32
+ F__ccgo_pad1 [4]byte
+ F_data struct {
+ F__ccgo_pad1 [0]uint64
+ F_pad [29]int32
+ F__ccgo_pad2 [4]byte
+ }
+} /* siginfo.h:173:3 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:112:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// Flags for sigprocmask:
+
+type Sig_t = uintptr /* signal.h:146:14 */ // type of signal function
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:152:1 */
+
+// Macro for converting signal number to a mask suitable for
+// sigblock().
+
+// Structure used in sigaltstack call.
+type Sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size Size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:176:9 */
+
+// Macro for converting signal number to a mask suitable for
+// sigblock().
+
+// Structure used in sigaltstack call.
+type Stack_t = Sigaltstack /* signal.h:180:3 */
+
+type Ucontext_t = Sigcontext /* signal.h:190:27 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_windows_386.go b/vendor/modernc.org/libc/signal/signal_windows_386.go
new file mode 100644
index 00000000..e14d880c
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_windows_386.go
@@ -0,0 +1,311 @@
+// Code generated by 'ccgo signal/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 signal/signal_windows_386.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ NSIG = 23
+ SIGABRT = 22
+ SIGABRT2 = 22
+ SIGABRT_COMPAT = 6
+ SIGBREAK = 21
+ SIGFPE = 8
+ SIGILL = 4
+ SIGINT = 2
+ SIGSEGV = 11
+ SIGTERM = 15
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ WIN_PTHREADS_SIGNAL_H = 0
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_SIGNAL = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIG_ATOMIC_T_DEFINED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+//
+// Copyright (c) 2013-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Windows has rudimentary signals support.
+
+type Sig_atomic_t = int32 /* signal.h:18:15 */
+
+type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/signal/signal_windows_amd64.go b/vendor/modernc.org/libc/signal/signal_windows_amd64.go
new file mode 100644
index 00000000..116bb2f1
--- /dev/null
+++ b/vendor/modernc.org/libc/signal/signal_windows_amd64.go
@@ -0,0 +1,310 @@
+// Code generated by 'ccgo signal\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 signal\signal_windows_amd64.go -pkgname signal', DO NOT EDIT.
+
+package signal
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ 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
+ NSIG = 23
+ SIGABRT = 22
+ SIGABRT2 = 22
+ SIGABRT_COMPAT = 6
+ SIGBREAK = 21
+ SIGFPE = 8
+ SIGILL = 4
+ SIGINT = 2
+ SIGSEGV = 11
+ SIGTERM = 15
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ WIN_PTHREADS_SIGNAL_H = 0
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_SIGNAL = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_PGLOBAL = 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_SIG_ATOMIC_T_DEFINED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+//
+// Copyright (c) 2013-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Windows has rudimentary signals support.
+
+type Sig_atomic_t = int32 /* signal.h:18:15 */
+
+type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go b/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go
new file mode 100644
index 00000000..274e16c9
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_darwin_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go
new file mode 100644
index 00000000..5c824d92
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_darwin_arm64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_freebsd_386.go b/vendor/modernc.org/libc/stdio/capi_freebsd_386.go
new file mode 100644
index 00000000..b173d475
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_freebsd_386.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_freebsd_amd64.go b/vendor/modernc.org/libc/stdio/capi_freebsd_amd64.go
new file mode 100644
index 00000000..ef04ad2e
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_freebsd_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_linux_386.go b/vendor/modernc.org/libc/stdio/capi_linux_386.go
new file mode 100644
index 00000000..e00b4c19
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_386.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_linux_amd64.go b/vendor/modernc.org/libc/stdio/capi_linux_amd64.go
new file mode 100644
index 00000000..c9969ca4
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_linux_arm.go b/vendor/modernc.org/libc/stdio/capi_linux_arm.go
new file mode 100644
index 00000000..91c7b0c9
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_arm.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_linux_arm64.go b/vendor/modernc.org/libc/stdio/capi_linux_arm64.go
new file mode 100644
index 00000000..9a47692a
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_arm64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_linux_s390x.go b/vendor/modernc.org/libc/stdio/capi_linux_s390x.go
new file mode 100644
index 00000000..43f05d4d
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_s390x.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_netbsd_amd64.go b/vendor/modernc.org/libc/stdio/capi_netbsd_amd64.go
new file mode 100644
index 00000000..7ad0ba7d
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_netbsd_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go b/vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go
new file mode 100644
index 00000000..c3c582d9
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_openbsd_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_windows_386.go b/vendor/modernc.org/libc/stdio/capi_windows_386.go
new file mode 100644
index 00000000..22f366ae
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_windows_386.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/capi_windows_amd64.go b/vendor/modernc.org/libc/stdio/capi_windows_amd64.go
new file mode 100644
index 00000000..f066e777
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdio\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 stdio\stdio_windows_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go
new file mode 100644
index 00000000..987c83a5
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go
@@ -0,0 +1,1973 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_darwin_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 1024
+ EOF = -1
+ FILENAME_MAX = 1024
+ FIXINC_WRAP_STDIO_H_STDIO_STDARG_H = 1
+ FOPEN_MAX = 20
+ L_ctermid = 1024
+ L_tmpnam = 1024
+ P_tmpdir = "/var/tmp/"
+ RENAME_EXCL = 0x00000004
+ RENAME_SECLUDE = 0x00000001
+ RENAME_SWAP = 0x00000002
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 308915776
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CTERMID_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_FSTDIO = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_SECURE__COMMON_H_ = 0
+ X_SECURE__STDIO_H_ = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_STDIO_H_ = 0
+ X_SYS_STDIO_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINTPTR_T = 0
+ X_USE_FORTIFY_LEVEL = 2
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_VA_LIST_T = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (C) 1989-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+
+// Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+
+// Common header for stdio.h and xlocale/_stdio.h
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// __gnuc_va_list and include <stdarg.h>
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Va_list = X__darwin_va_list /* _va_list.h:32:26 */
+
+type Fpos_t = X__darwin_off_t /* _stdio.h:81:25 */
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+} /* _stdio.h:92:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ub struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_extra uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset Fpos_t
+} /* _stdio.h:126:9 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type FILE = X__sFILE /* _stdio.h:157:3 */
+
+// Additional functionality provided by:
+// POSIX.1-2001
+// ISO C99
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+// Additional functionality provided by:
+// POSIX.1-2008
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go
new file mode 100644
index 00000000..d361e7a8
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go
@@ -0,0 +1,1970 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_darwin_arm64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 1024
+ EOF = -1
+ FILENAME_MAX = 1024
+ FIXINC_WRAP_STDIO_H_STDIO_STDARG_H = 1
+ FOPEN_MAX = 20
+ L_ctermid = 1024
+ L_tmpnam = 1024
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ P_tmpdir = "/var/tmp/"
+ RENAME_EXCL = 0x00000004
+ RENAME_SECLUDE = 0x00000001
+ RENAME_SWAP = 0x00000002
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 308915776
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CTERMID_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_FSTDIO = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_SECURE__COMMON_H_ = 0
+ X_SECURE__STDIO_H_ = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_STDIO_H_ = 0
+ X_SYS_STDIO_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UINTPTR_T = 0
+ X_USE_FORTIFY_LEVEL = 2
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_VA_LIST_T = 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 */
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdio.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (C) 1989-2021 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+
+// Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+
+// Common header for stdio.h and xlocale/_stdio.h
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// __gnuc_va_list and include <stdarg.h>
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Va_list = X__darwin_va_list /* _va_list.h:32:26 */
+
+type Fpos_t = X__darwin_off_t /* _stdio.h:81:25 */
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+} /* _stdio.h:92:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ub struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_extra uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset Fpos_t
+} /* _stdio.h:126:9 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type FILE = X__sFILE /* _stdio.h:157:3 */
+
+// Additional functionality provided by:
+// POSIX.1-2001
+// ISO C99
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+// Additional functionality provided by:
+// POSIX.1-2008
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_freebsd_386.go b/vendor/modernc.org/libc/stdio/stdio_freebsd_386.go
new file mode 100644
index 00000000..7314579d
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_freebsd_386.go
@@ -0,0 +1,746 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_freebsd_386.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 1024
+ EOF = -1
+ FILENAME_MAX = 1024
+ FOPEN_MAX = 20
+ L_ctermid = 1024
+ L_cuserid = 17
+ L_tmpnam = 1024
+ P_tmpdir = "/tmp/"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 308915776
+ X_FILE_OFFSET_BITS = 64
+ X_FSTDIO = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_ILP32 = 1
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_LSEEK_DECLARED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MMAP_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_STDFILE_DECLARED = 0
+ X_STDIO_H_ = 0
+ X_STDSTREAM_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TRUNCATE_DECLARED = 0
+ X_VA_LIST_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Fpos_t = X__off_t /* stdio.h:47:18 */
+
+type Rsize_t = Size_t /* stdio.h:56:16 */
+
+type Off_t = X__off_t /* stdio.h:62:18 */
+type Ssize_t = X__ssize_t /* stdio.h:66:19 */
+
+type Off64_t = X__off64_t /* stdio.h:72:19 */
+
+type Va_list = X__va_list /* stdio.h:77:19 */
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+} /* stdio.h:91:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// Certain members of __sFILE are accessed directly via macros or
+// inline functions. To preserve ABI compat, these members must not
+// be disturbed. These members are marked below with (*).
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ }
+ F_lbfsize int32
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ub struct {
+ F_base uintptr
+ F_size int32
+ }
+ F_up uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ }
+ F_blksize int32
+ F_offset Fpos_t
+ F_fl_mutex uintptr
+ F_fl_owner uintptr
+ F_fl_count int32
+ F_orientation int32
+ F_mbstate X__mbstate_t
+ F_flags2 int32
+} /* stdio.h:124:1 */
+
+type FILE = X__sFILE /* stdio.h:165:24 */
+type Cookie_io_functions_t = struct {
+ Fread uintptr
+ Fwrite uintptr
+ Fseek uintptr
+ Fclose uintptr
+} /* stdio.h:428:3 */
+
+// See ISO/IEC 9945-1 ANSI/IEEE Std 1003.1 Second Edition 1996-07-12
+// B.8.2.7 for the rationale behind the *_unlocked() macros.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_freebsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_freebsd_amd64.go
new file mode 100644
index 00000000..b3469404
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_freebsd_amd64.go
@@ -0,0 +1,759 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_freebsd_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 1024
+ EOF = -1
+ FILENAME_MAX = 1024
+ FOPEN_MAX = 20
+ L_ctermid = 1024
+ L_cuserid = 17
+ L_tmpnam = 1024
+ P_tmpdir = "/tmp/"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 308915776
+ X_FILE_OFFSET_BITS = 64
+ X_FSTDIO = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_LP64 = 1
+ X_LSEEK_DECLARED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MMAP_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_STDFILE_DECLARED = 0
+ X_STDIO_H_ = 0
+ X_STDSTREAM_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TRUNCATE_DECLARED = 0
+ X_VA_LIST_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1990, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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.
+//
+// @(#)stdio.h 8.5 (Berkeley) 4/29/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Fpos_t = X__off_t /* stdio.h:47:18 */
+
+type Rsize_t = Size_t /* stdio.h:56:16 */
+
+type Off_t = X__off_t /* stdio.h:62:18 */
+type Ssize_t = X__ssize_t /* stdio.h:66:19 */
+
+type Off64_t = X__off64_t /* stdio.h:72:19 */
+
+type Va_list = X__va_list /* stdio.h:77:19 */
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+} /* stdio.h:91:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// Certain members of __sFILE are accessed directly via macros or
+// inline functions. To preserve ABI compat, these members must not
+// be disturbed. These members are marked below with (*).
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ub struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_up uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset Fpos_t
+ F_fl_mutex uintptr
+ F_fl_owner uintptr
+ F_fl_count int32
+ F_orientation int32
+ F_mbstate X__mbstate_t
+ F_flags2 int32
+ F__ccgo_pad4 [4]byte
+} /* stdio.h:124:1 */
+
+type FILE = X__sFILE /* stdio.h:165:24 */
+type Cookie_io_functions_t = struct {
+ Fread uintptr
+ Fwrite uintptr
+ Fseek uintptr
+ Fclose uintptr
+} /* stdio.h:428:3 */
+
+// See ISO/IEC 9945-1 ANSI/IEEE Std 1003.1 Second Edition 1996-07-12
+// B.8.2.7 for the rationale behind the *_unlocked() macros.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_386.go b/vendor/modernc.org/libc/stdio/stdio_linux_386.go
new file mode 100644
index 00000000..3870fee0
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_linux_386.go
@@ -0,0 +1,515 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_386.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 8192
+ EOF = -1
+ FILENAME_MAX = 4096
+ FOPEN_MAX = 16
+ L_ctermid = 9
+ L_tmpnam = 20
+ P_tmpdir = "/tmp"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 238328
+ X_ATFILE_SOURCE = 1
+ X_BITS_STDIO_LIM_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_ILP32 = 1
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_IO_EOF_SEEN = 0x0010
+ X_IO_ERR_SEEN = 0x0020
+ X_IO_USER_LOCK = 0x8000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDIO_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_VA_LIST_DEFINED = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+// Conversion state information.
+type X__mbstate_t = struct {
+ F__count int32
+ F__value struct{ F__wch uint32 }
+} /* __mbstate_t.h:21:3 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X_G_fpos_t = struct {
+ F__pos X__off_t
+ F__state X__mbstate_t
+} /* __fpos_t.h:10:9 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X_G_fpos64_t = struct {
+ F__pos X__off64_t
+ F__state X__mbstate_t
+} /* __fpos64_t.h:10:9 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */
+
+type X_IO_FILE = struct {
+ F_flags int32
+ F_IO_read_ptr uintptr
+ F_IO_read_end uintptr
+ F_IO_read_base uintptr
+ F_IO_write_base uintptr
+ F_IO_write_ptr uintptr
+ F_IO_write_end uintptr
+ F_IO_buf_base uintptr
+ F_IO_buf_end uintptr
+ F_IO_save_base uintptr
+ F_IO_backup_base uintptr
+ F_IO_save_end uintptr
+ F_markers uintptr
+ F_chain uintptr
+ F_fileno int32
+ F_flags2 int32
+ F_old_offset X__off_t
+ F_cur_column uint16
+ F_vtable_offset int8
+ F_shortbuf [1]int8
+ F_lock uintptr
+ F_offset X__off64_t
+ F_codecvt uintptr
+ F_wide_data uintptr
+ F_freeres_list uintptr
+ F_freeres_buf uintptr
+ F__pad5 Size_t
+ F_mode int32
+ F_unused2 [40]int8
+} /* __FILE.h:4:1 */
+
+type X__FILE = X_IO_FILE /* __FILE.h:5:25 */
+
+// The opaque type of streams. This is the definition used elsewhere.
+type FILE = X_IO_FILE /* FILE.h:7:25 */
+
+// These macros are used by bits/stdio.h and internal headers.
+
+// Many more flag bits are defined internally.
+
+type Va_list = X__gnuc_va_list /* stdio.h:52:24 */
+
+type Off_t = X__off64_t /* stdio.h:65:19 */
+
+type Ssize_t = X__ssize_t /* stdio.h:77:19 */
+
+// The type of the second argument to `fgetpos' and `fsetpos'.
+type Fpos_t = X__fpos64_t /* stdio.h:86:20 */
+
+// If we are compiling with optimizing read this file. It contains
+// several optimizing inline functions and macros.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_amd64.go b/vendor/modernc.org/libc/stdio/stdio_linux_amd64.go
new file mode 100644
index 00000000..e38676fe
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_linux_amd64.go
@@ -0,0 +1,534 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 8192
+ EOF = -1
+ FILENAME_MAX = 4096
+ FOPEN_MAX = 16
+ L_ctermid = 9
+ L_tmpnam = 20
+ P_tmpdir = "/tmp"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 238328
+ X_ATFILE_SOURCE = 1
+ X_BITS_STDIO_LIM_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_IO_EOF_SEEN = 0x0010
+ X_IO_ERR_SEEN = 0x0020
+ X_IO_USER_LOCK = 0x8000
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDIO_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_VA_LIST_DEFINED = 0
+ Linux = 1
+ Unix = 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+// Conversion state information.
+type X__mbstate_t = struct {
+ F__count int32
+ F__value struct{ F__wch uint32 }
+} /* __mbstate_t.h:21:3 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X_G_fpos_t = struct {
+ F__pos X__off_t
+ F__state X__mbstate_t
+} /* __fpos_t.h:10:9 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X_G_fpos64_t = struct {
+ F__pos X__off64_t
+ F__state X__mbstate_t
+} /* __fpos64_t.h:10:9 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */
+
+type X_IO_FILE = struct {
+ F_flags int32
+ F__ccgo_pad1 [4]byte
+ F_IO_read_ptr uintptr
+ F_IO_read_end uintptr
+ F_IO_read_base uintptr
+ F_IO_write_base uintptr
+ F_IO_write_ptr uintptr
+ F_IO_write_end uintptr
+ F_IO_buf_base uintptr
+ F_IO_buf_end uintptr
+ F_IO_save_base uintptr
+ F_IO_backup_base uintptr
+ F_IO_save_end uintptr
+ F_markers uintptr
+ F_chain uintptr
+ F_fileno int32
+ F_flags2 int32
+ F_old_offset X__off_t
+ F_cur_column uint16
+ F_vtable_offset int8
+ F_shortbuf [1]int8
+ F__ccgo_pad2 [4]byte
+ F_lock uintptr
+ F_offset X__off64_t
+ F_codecvt uintptr
+ F_wide_data uintptr
+ F_freeres_list uintptr
+ F_freeres_buf uintptr
+ F__pad5 Size_t
+ F_mode int32
+ F_unused2 [20]int8
+} /* __FILE.h:4:1 */
+
+type X__FILE = X_IO_FILE /* __FILE.h:5:25 */
+
+// The opaque type of streams. This is the definition used elsewhere.
+type FILE = X_IO_FILE /* FILE.h:7:25 */
+
+// These macros are used by bits/stdio.h and internal headers.
+
+// Many more flag bits are defined internally.
+
+type Va_list = X__gnuc_va_list /* stdio.h:52:24 */
+
+type Off_t = X__off64_t /* stdio.h:65:19 */
+
+type Ssize_t = X__ssize_t /* stdio.h:77:19 */
+
+// The type of the second argument to `fgetpos' and `fsetpos'.
+type Fpos_t = X__fpos64_t /* stdio.h:86:20 */
+
+// If we are compiling with optimizing read this file. It contains
+// several optimizing inline functions and macros.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_arm.go b/vendor/modernc.org/libc/stdio/stdio_linux_arm.go
new file mode 100644
index 00000000..04e22d91
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_linux_arm.go
@@ -0,0 +1,544 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_arm.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 8192
+ EOF = -1
+ FILENAME_MAX = 4096
+ FOPEN_MAX = 16
+ L_ctermid = 9
+ L_tmpnam = 20
+ P_tmpdir = "/tmp"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 238328
+ X_ATFILE_SOURCE = 1
+ X_BITS_STDIO_LIM_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_IO_EOF_SEEN = 0x0010
+ X_IO_ERR_SEEN = 0x0020
+ X_IO_USER_LOCK = 0x8000
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDIO_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_VA_LIST_DEFINED = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+// Conversion state information.
+type X__mbstate_t = struct {
+ F__count int32
+ F__value struct{ F__wch uint32 }
+} /* __mbstate_t.h:21:3 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X_G_fpos_t = struct {
+ F__pos X__off_t
+ F__state X__mbstate_t
+} /* __fpos_t.h:10:9 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X_G_fpos64_t = struct {
+ F__pos X__off64_t
+ F__state X__mbstate_t
+} /* __fpos64_t.h:10:9 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */
+
+type X_IO_FILE = struct {
+ F_flags int32
+ F_IO_read_ptr uintptr
+ F_IO_read_end uintptr
+ F_IO_read_base uintptr
+ F_IO_write_base uintptr
+ F_IO_write_ptr uintptr
+ F_IO_write_end uintptr
+ F_IO_buf_base uintptr
+ F_IO_buf_end uintptr
+ F_IO_save_base uintptr
+ F_IO_backup_base uintptr
+ F_IO_save_end uintptr
+ F_markers uintptr
+ F_chain uintptr
+ F_fileno int32
+ F_flags2 int32
+ F_old_offset X__off_t
+ F_cur_column uint16
+ F_vtable_offset int8
+ F_shortbuf [1]uint8
+ F_lock uintptr
+ F__ccgo_pad1 [4]byte
+ F_offset X__off64_t
+ F_codecvt uintptr
+ F_wide_data uintptr
+ F_freeres_list uintptr
+ F_freeres_buf uintptr
+ F__pad5 Size_t
+ F_mode int32
+ F_unused2 [40]uint8
+} /* __FILE.h:4:1 */
+
+type X__FILE = X_IO_FILE /* __FILE.h:5:25 */
+
+// The opaque type of streams. This is the definition used elsewhere.
+type FILE = X_IO_FILE /* FILE.h:7:25 */
+
+// These macros are used by bits/stdio.h and internal headers.
+
+// Many more flag bits are defined internally.
+
+type Va_list = X__gnuc_va_list /* stdio.h:52:24 */
+
+type Off_t = X__off64_t /* stdio.h:65:19 */
+
+type Ssize_t = X__ssize_t /* stdio.h:77:19 */
+
+// The type of the second argument to `fgetpos' and `fsetpos'.
+type Fpos_t = X__fpos64_t /* stdio.h:86:20 */
+
+// If we are compiling with optimizing read this file. It contains
+// several optimizing inline functions and macros.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_arm64.go b/vendor/modernc.org/libc/stdio/stdio_linux_arm64.go
new file mode 100644
index 00000000..e4cc28cd
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_linux_arm64.go
@@ -0,0 +1,567 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_arm64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 8192
+ EOF = -1
+ FILENAME_MAX = 4096
+ FOPEN_MAX = 16
+ L_ctermid = 9
+ L_tmpnam = 20
+ P_tmpdir = "/tmp"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 238328
+ X_ATFILE_SOURCE = 1
+ X_BITS_STDIO_LIM_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_IO_EOF_SEEN = 0x0010
+ X_IO_ERR_SEEN = 0x0020
+ X_IO_USER_LOCK = 0x8000
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDIO_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_VA_LIST_DEFINED = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+// Conversion state information.
+type X__mbstate_t = struct {
+ F__count int32
+ F__value struct{ F__wch uint32 }
+} /* __mbstate_t.h:21:3 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X_G_fpos_t = struct {
+ F__pos X__off_t
+ F__state X__mbstate_t
+} /* __fpos_t.h:10:9 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X_G_fpos64_t = struct {
+ F__pos X__off64_t
+ F__state X__mbstate_t
+} /* __fpos64_t.h:10:9 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */
+
+type X_IO_FILE = struct {
+ F_flags int32
+ F__ccgo_pad1 [4]byte
+ F_IO_read_ptr uintptr
+ F_IO_read_end uintptr
+ F_IO_read_base uintptr
+ F_IO_write_base uintptr
+ F_IO_write_ptr uintptr
+ F_IO_write_end uintptr
+ F_IO_buf_base uintptr
+ F_IO_buf_end uintptr
+ F_IO_save_base uintptr
+ F_IO_backup_base uintptr
+ F_IO_save_end uintptr
+ F_markers uintptr
+ F_chain uintptr
+ F_fileno int32
+ F_flags2 int32
+ F_old_offset X__off_t
+ F_cur_column uint16
+ F_vtable_offset int8
+ F_shortbuf [1]uint8
+ F__ccgo_pad2 [4]byte
+ F_lock uintptr
+ F_offset X__off64_t
+ F_codecvt uintptr
+ F_wide_data uintptr
+ F_freeres_list uintptr
+ F_freeres_buf uintptr
+ F__pad5 Size_t
+ F_mode int32
+ F_unused2 [20]uint8
+} /* __FILE.h:4:1 */
+
+type X__FILE = X_IO_FILE /* __FILE.h:5:25 */
+
+// The opaque type of streams. This is the definition used elsewhere.
+type FILE = X_IO_FILE /* FILE.h:7:25 */
+
+// These macros are used by bits/stdio.h and internal headers.
+
+// Many more flag bits are defined internally.
+
+type Va_list = X__gnuc_va_list /* stdio.h:52:24 */
+
+type Off_t = X__off64_t /* stdio.h:65:19 */
+
+type Ssize_t = X__ssize_t /* stdio.h:77:19 */
+
+// The type of the second argument to `fgetpos' and `fsetpos'.
+type Fpos_t = X__fpos64_t /* stdio.h:86:20 */
+
+// If we are compiling with optimizing read this file. It contains
+// several optimizing inline functions and macros.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_s390x.go b/vendor/modernc.org/libc/stdio/stdio_linux_s390x.go
new file mode 100644
index 00000000..5b2b70ac
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_linux_s390x.go
@@ -0,0 +1,535 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_linux_s390x.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 8192
+ EOF = -1
+ FILENAME_MAX = 4096
+ FOPEN_MAX = 16
+ L_ctermid = 9
+ L_tmpnam = 20
+ P_tmpdir = "/tmp"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 238328
+ X_ATFILE_SOURCE = 1
+ X_BITS_STDIO_LIM_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_IO_EOF_SEEN = 0x0010
+ X_IO_ERR_SEEN = 0x0020
+ X_IO_USER_LOCK = 0x8000
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDIO_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_VA_LIST_DEFINED = 0
+ Linux = 1
+ Unix = 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.15 Variable arguments <stdarg.h>
+
+// Define __gnuc_va_list.
+
+type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
+
+// Define the standard macros for the user,
+// if this invocation was from the user program.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+// Conversion state information.
+type X__mbstate_t = struct {
+ F__count int32
+ F__value struct{ F__wch uint32 }
+} /* __mbstate_t.h:21:3 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X_G_fpos_t = struct {
+ F__pos X__off_t
+ F__state X__mbstate_t
+} /* __fpos_t.h:10:9 */
+
+// The tag name of this struct is _G_fpos_t to preserve historic
+// C++ mangled names for functions taking fpos_t arguments.
+// That name should not be used in new code.
+type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X_G_fpos64_t = struct {
+ F__pos X__off64_t
+ F__state X__mbstate_t
+} /* __fpos64_t.h:10:9 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The tag name of this struct is _G_fpos64_t to preserve historic
+// C++ mangled names for functions taking fpos_t and/or fpos64_t
+// arguments. That name should not be used in new code.
+type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */
+
+type X_IO_FILE = struct {
+ F_flags int32
+ F__ccgo_pad1 [4]byte
+ F_IO_read_ptr uintptr
+ F_IO_read_end uintptr
+ F_IO_read_base uintptr
+ F_IO_write_base uintptr
+ F_IO_write_ptr uintptr
+ F_IO_write_end uintptr
+ F_IO_buf_base uintptr
+ F_IO_buf_end uintptr
+ F_IO_save_base uintptr
+ F_IO_backup_base uintptr
+ F_IO_save_end uintptr
+ F_markers uintptr
+ F_chain uintptr
+ F_fileno int32
+ F_flags2 int32
+ F_old_offset X__off_t
+ F_cur_column uint16
+ F_vtable_offset int8
+ F_shortbuf [1]uint8
+ F__ccgo_pad2 [4]byte
+ F_lock uintptr
+ F_offset X__off64_t
+ F_codecvt uintptr
+ F_wide_data uintptr
+ F_freeres_list uintptr
+ F_freeres_buf uintptr
+ F__pad5 Size_t
+ F_mode int32
+ F_unused2 [20]uint8
+} /* __FILE.h:4:1 */
+
+type X__FILE = X_IO_FILE /* __FILE.h:5:25 */
+
+// The opaque type of streams. This is the definition used elsewhere.
+type FILE = X_IO_FILE /* FILE.h:7:25 */
+
+// These macros are used by bits/stdio.h and internal headers.
+
+// Many more flag bits are defined internally.
+
+type Va_list = X__gnuc_va_list /* stdio.h:52:24 */
+
+type Off_t = X__off64_t /* stdio.h:65:19 */
+
+type Ssize_t = X__ssize_t /* stdio.h:77:19 */
+
+// The type of the second argument to `fgetpos' and `fsetpos'.
+type Fpos_t = X__fpos64_t /* stdio.h:86:20 */
+
+// If we are compiling with optimizing read this file. It contains
+// several optimizing inline functions and macros.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go
new file mode 100644
index 00000000..e087ea40
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go
@@ -0,0 +1,466 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_netbsd_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 1024
+ EOF = -1
+ FILENAME_MAX = 1024
+ FOPEN_MAX = 20
+ FPARSELN_UNESCALL = 0x0f
+ FPARSELN_UNESCCOMM = 0x04
+ FPARSELN_UNESCCONT = 0x02
+ FPARSELN_UNESCESC = 0x01
+ FPARSELN_UNESCREST = 0x08
+ L_ctermid = 1024
+ L_cuserid = 9
+ L_tmpnam = 1024
+ P_tmpdir = "/tmp/"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 308915776
+ X_AMD64_INT_TYPES_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSTDIO = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_STDIO_H_ = 0
+ 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_NULL_H_ = 0
+ X_X86_64_CDEFS_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: 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.
+
+// $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
+
+// $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 Ssize_t = int64 /* stdio.h:49:23 */
+
+// $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.
+
+// This is fairly grotesque, but pure ANSI code must not inspect the
+// innards of an fpos_t anyway. The library internally uses off_t,
+// which we assume is exactly as big as eight chars.
+type X__sfpos = struct {
+ F_pos X__off_t
+ F_mbstate_in X__mbstate_t
+ F_mbstate_out X__mbstate_t
+} /* stdio.h:67:9 */
+
+// $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.
+
+// This is fairly grotesque, but pure ANSI code must not inspect the
+// innards of an fpos_t anyway. The library internally uses off_t,
+// which we assume is exactly as big as eight chars.
+type Fpos_t = X__sfpos /* stdio.h:70:3 */
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+} /* stdio.h:81:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags uint16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ext struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_up uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_flush uintptr
+ F_lb_unused [8]int8
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset X__off_t
+} /* stdio.h:112:9 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+//
+// NB: see WARNING above before changing the layout of this structure!
+type FILE = X__sFILE /* stdio.h:146:3 */
+
+// X/Open CAE Specification Issue 5 Version 2
+type Off_t = X__off_t /* stdio.h:376:18 */
+
+type Locale_t = uintptr /* stdio.h:543:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go
new file mode 100644
index 00000000..22978bf0
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go
@@ -0,0 +1,677 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_openbsd_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BUFSIZ = 1024
+ BYTE_ORDER = 1234
+ EOF = -1
+ FILENAME_MAX = 1024
+ FOPEN_MAX = 20
+ LITTLE_ENDIAN = 1234
+ L_ctermid = 1024
+ L_tmpnam = 1024
+ PDP_ENDIAN = 3412
+ P_tmpdir = "/tmp/"
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ TMP_MAX = 0x7fffffff
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSTDIO = 0
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_IOFBF = 0
+ X_IOLBF = 1
+ X_IONBF = 2
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_STDIO_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: stdio.h,v 1.54 2020/09/11 17:56:41 naddy Exp $
+// $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Chris Torek.
+//
+// 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.
+//
+// @(#)stdio.h 5.17 (Berkeley) 6/3/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+type Fpos_t = Off_t /* stdio.h:61:15 */ // stdio file position type
+
+// NB: to fit things in six character monocase externals, the stdio
+// code uses the prefix `__s' for stdio objects, typically followed
+// by a three-character attempt at a mnemonic.
+
+// stdio buffers
+type X__sbuf = struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+} /* stdio.h:70:1 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+type X__sFILE = struct {
+ F_p uintptr
+ F_r int32
+ F_w int32
+ F_flags int16
+ F_file int16
+ F__ccgo_pad1 [4]byte
+ F_bf struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_lbfsize int32
+ F__ccgo_pad2 [4]byte
+ F_cookie uintptr
+ F_close uintptr
+ F_read uintptr
+ F_seek uintptr
+ F_write uintptr
+ F_ext struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_up uintptr
+ F_ur int32
+ F_ubuf [3]uint8
+ F_nbuf [1]uint8
+ F_lb struct {
+ F_base uintptr
+ F_size int32
+ F__ccgo_pad1 [4]byte
+ }
+ F_blksize int32
+ F__ccgo_pad3 [4]byte
+ F_offset Fpos_t
+} /* stdio.h:99:9 */
+
+// stdio state variables.
+//
+// The following always hold:
+//
+// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+// _lbfsize is -_bf._size, else _lbfsize is 0
+// if _flags&__SRD, _w is 0
+// if _flags&__SWR, _r is 0
+//
+// This ensures that the getc and putc macros (or inline functions) never
+// try to write or read from a file that is in `read' or `write' mode.
+// (Moreover, they can, and do, automatically switch from read mode to
+// write mode, and back, on "r+" and "w+" files.)
+//
+// _lbfsize is used only to make the inline line-buffered output stream
+// code as compact as possible.
+//
+// _ub, _up, and _ur are used when ungetc() pushes back more characters
+// than fit in the current _bf, or when ungetc() pushes back a character
+// that does not match the previous one in _bf. When this happens,
+// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+// _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+type FILE = X__sFILE /* stdio.h:131:3 */
+
+// The macro implementations of putc and putc_unlocked are not
+// fully POSIX compliant; they do not set errno on failure
+
+// The macro implementations of putc and putc_unlocked are not
+// fully POSIX compliant; they do not set errno on failure
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_windows_386.go b/vendor/modernc.org/libc/stdio/stdio_windows_386.go
new file mode 100644
index 00000000..5adf00fa
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_windows_386.go
@@ -0,0 +1,362 @@
+// Code generated by 'ccgo stdio/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 stdio/stdio_windows_386.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 512
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ EOF = -1
+ FILENAME_MAX = 260
+ FOPEN_MAX = 20
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ SYS_OPEN = 20
+ TMP_MAX = 32767
+ TMP_MAX_S = 32767
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS = 4
+ X_CRT_INTERNAL_LOCAL_SCANF_OPTIONS = 2
+ X_CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY = 0x0008
+ X_CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS = 0x0010
+ X_CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION = 0x0001
+ X_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS = 0x0004
+ X_CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR = 0x0002
+ X_CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY = 0x0004
+ X_CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS = 0x0002
+ X_CRT_INTERNAL_SCANF_SECURECRT = 0x0001
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_PERROR_DEFINED = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_CRT_WPERROR_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_FSEEKO = 0
+ X_FILE_OFFSET_BITS_SET_FTELLO = 0
+ X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_FPOS_T_DEFINED = 0
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STDIO = 0
+ X_INC_STDIO_S = 0
+ X_INC_SWPRINTF_INL = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IOB_ENTRIES = 20
+ X_IOEOF = 0x0010
+ X_IOERR = 0x0020
+ X_IOFBF = 0x0000
+ X_IOLBF = 0x0040
+ X_IOMYBUF = 0x0008
+ X_IONBF = 0x0004
+ X_IOREAD = 0x0001
+ X_IORW = 0x0080
+ X_IOSTRG = 0x0040
+ X_IOWRT = 0x0002
+ X_MT = 0
+ X_M_IX86 = 600
+ X_NFILE = 512
+ X_NSTREAM_ = 512
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_OLD_P_OVERLAY = 2
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_P_DETACH = 4
+ X_P_NOWAIT = 1
+ X_P_NOWAITO = 3
+ X_P_OVERLAY = 2
+ X_P_WAIT = 0
+ X_P_tmpdir = "\\"
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SPAWNV_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_STDIO_CONFIG_DEFINED = 0
+ X_STDIO_DEFINED = 0
+ X_STDIO_S_DEFINED = 0
+ X_STDSTREAM_DEFINED = 0
+ X_SYS_OPEN = 20
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_TWO_DIGIT_EXPONENT = 0x1
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WAIT_CHILD = 0
+ X_WAIT_GRANDCHILD = 1
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WSPAWN_DEFINED = 0
+ X_WSTDIO_DEFINED = 0
+ X_WSTDIO_S_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 file has no copyright assigned and is placed in the Public Domain.
+// This file is part of the Wine project.
+// 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+type X_iobuf = struct {
+ F_ptr uintptr
+ F_cnt int32
+ F_base uintptr
+ F_flag int32
+ F_file int32
+ F_charbuf int32
+ F_bufsiz int32
+ F_tmpfname uintptr
+} /* stdio.h:24:3 */
+
+type FILE = X_iobuf /* stdio.h:34:25 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */ // A pointer to an array of FILE
+
+type Fpos_t = int64 /* stdio.h:102:37 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdio/stdio_windows_amd64.go b/vendor/modernc.org/libc/stdio/stdio_windows_amd64.go
new file mode 100644
index 00000000..a23a573d
--- /dev/null
+++ b/vendor/modernc.org/libc/stdio/stdio_windows_amd64.go
@@ -0,0 +1,365 @@
+// Code generated by 'ccgo stdio\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 stdio\stdio_windows_amd64.go -pkgname stdio', DO NOT EDIT.
+
+package stdio
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BUFSIZ = 512
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ EOF = -1
+ FILENAME_MAX = 260
+ FOPEN_MAX = 20
+ 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
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ SYS_OPEN = 20
+ TMP_MAX = 32767
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_PERROR_DEFINED = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_WPERROR_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_FSEEKO = 0
+ X_FILE_OFFSET_BITS_SET_FTELLO = 0
+ X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_FPOS_T_DEFINED = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STDIO = 0
+ X_INC_STDIO_S = 0
+ X_INC_SWPRINTF_INL = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IOB_ENTRIES = 20
+ X_IOEOF = 0x0010
+ X_IOERR = 0x0020
+ X_IOFBF = 0x0000
+ X_IOLBF = 0x0040
+ X_IOMYBUF = 0x0008
+ X_IONBF = 0x0004
+ X_IOREAD = 0x0001
+ X_IORW = 0x0080
+ X_IOSTRG = 0x0040
+ X_IOWRT = 0x0002
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_NFILE = 512
+ X_NSTREAM_ = 512
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_OLD_P_OVERLAY = 2
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_P_DETACH = 4
+ X_P_NOWAIT = 1
+ X_P_NOWAITO = 3
+ X_P_OVERLAY = 2
+ X_P_WAIT = 0
+ X_P_tmpdir = "\\"
+ X_REENTRANT = 1
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SPAWNV_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_STDIO_DEFINED = 0
+ X_STDIO_S_DEFINED = 0
+ X_STDSTREAM_DEFINED = 0
+ X_SYS_OPEN = 20
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_TWO_DIGIT_EXPONENT = 0x1
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WAIT_CHILD = 0
+ X_WAIT_GRANDCHILD = 1
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WSPAWN_DEFINED = 0
+ X_WSTDIO_DEFINED = 0
+ X_WSTDIO_S_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+// *
+// 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.
+
+// Undefine __mingw_<printf> macros.
+
+type X_iobuf = struct {
+ F_ptr uintptr
+ F_cnt int32
+ F__ccgo_pad1 [4]byte
+ F_base uintptr
+ F_flag int32
+ F_file int32
+ F_charbuf int32
+ F_bufsiz int32
+ F_tmpfname uintptr
+} /* stdio.h:26:3 */
+
+type FILE = X_iobuf /* stdio.h:36:25 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+type Fpos_t = int64 /* stdio.h:104:37 */
+
+// *
+// 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.
+
+// Define __mingw_<printf> macros.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go b/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go
new file mode 100644
index 00000000..aa94ac0d
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_darwin_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go b/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go
new file mode 100644
index 00000000..7c81426a
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_darwin_arm64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_freebsd_386.go b/vendor/modernc.org/libc/stdlib/capi_freebsd_386.go
new file mode 100644
index 00000000..13028063
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_freebsd_386.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_freebsd_amd64.go b/vendor/modernc.org/libc/stdlib/capi_freebsd_amd64.go
new file mode 100644
index 00000000..fd09e961
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_freebsd_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_linux_386.go b/vendor/modernc.org/libc/stdlib/capi_linux_386.go
new file mode 100644
index 00000000..17bd8d78
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_386.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_linux_amd64.go b/vendor/modernc.org/libc/stdlib/capi_linux_amd64.go
new file mode 100644
index 00000000..2c2233b1
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_linux_arm.go b/vendor/modernc.org/libc/stdlib/capi_linux_arm.go
new file mode 100644
index 00000000..2903e3fe
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_arm.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_linux_arm64.go b/vendor/modernc.org/libc/stdlib/capi_linux_arm64.go
new file mode 100644
index 00000000..249f561e
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_arm64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_linux_s390x.go b/vendor/modernc.org/libc/stdlib/capi_linux_s390x.go
new file mode 100644
index 00000000..732e96e7
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_s390x.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_netbsd_amd64.go b/vendor/modernc.org/libc/stdlib/capi_netbsd_amd64.go
new file mode 100644
index 00000000..bca686fe
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_netbsd_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go b/vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go
new file mode 100644
index 00000000..5eb9398b
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_openbsd_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_windows_386.go b/vendor/modernc.org/libc/stdlib/capi_windows_386.go
new file mode 100644
index 00000000..9bf9ad78
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_windows_386.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/capi_windows_amd64.go b/vendor/modernc.org/libc/stdlib/capi_windows_amd64.go
new file mode 100644
index 00000000..b10c5f6d
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo stdlib\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 stdlib\stdlib_windows_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go
new file mode 100644
index 00000000..77e347b6
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go
@@ -0,0 +1,6539 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_darwin_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_NOOP = 0
+ BUS_OBJERR = 3
+ BYTE_ORDER = 1234
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_NOOP = 0
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ CPUMON_MAKE_FATAL = 0x1000
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FOOTPRINT_INTERVAL_RESET = 0x1
+ FPE_FLTDIV = 1
+ FPE_FLTINV = 5
+ FPE_FLTOVF = 2
+ FPE_FLTRES = 4
+ FPE_FLTSUB = 6
+ FPE_FLTUND = 3
+ FPE_INTDIV = 7
+ FPE_INTOVF = 8
+ FPE_NOOP = 0
+ FP_CHOP = 3
+ FP_PREC_24B = 0
+ FP_PREC_53B = 2
+ FP_PREC_64B = 3
+ FP_RND_DOWN = 1
+ FP_RND_NEAR = 0
+ FP_RND_UP = 2
+ FP_STATE_BYTES = 512
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 5
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 4
+ ILL_ILLTRP = 2
+ ILL_NOOP = 0
+ ILL_PRVOPC = 3
+ ILL_PRVREG = 6
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ IOPOL_APPLICATION = 5
+ IOPOL_ATIME_UPDATES_DEFAULT = 0
+ IOPOL_ATIME_UPDATES_OFF = 1
+ IOPOL_DEFAULT = 0
+ IOPOL_IMPORTANT = 1
+ IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT = 0
+ IOPOL_MATERIALIZE_DATALESS_FILES_OFF = 1
+ IOPOL_MATERIALIZE_DATALESS_FILES_ON = 2
+ IOPOL_NORMAL = 1
+ IOPOL_PASSIVE = 2
+ IOPOL_SCOPE_DARWIN_BG = 2
+ IOPOL_SCOPE_PROCESS = 0
+ IOPOL_SCOPE_THREAD = 1
+ IOPOL_STANDARD = 5
+ IOPOL_THROTTLE = 3
+ IOPOL_TYPE_DISK = 0
+ IOPOL_TYPE_VFS_ATIME_UPDATES = 2
+ IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES = 3
+ IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME = 4
+ IOPOL_UTILITY = 4
+ IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME = 1
+ IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT = 0
+ LITTLE_ENDIAN = 1234
+ MINSIGSTKSZ = 32768
+ NSIG = 32
+ PDP_ENDIAN = 3412
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ PRIO_DARWIN_BG = 0x1000
+ PRIO_DARWIN_NONUI = 0x1001
+ PRIO_DARWIN_PROCESS = 4
+ PRIO_DARWIN_THREAD = 3
+ PRIO_MAX = 20
+ PRIO_MIN = -20
+ PRIO_PGRP = 1
+ PRIO_PROCESS = 0
+ PRIO_USER = 2
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RAND_MAX = 0x7fffffff
+ RLIMIT_AS = 5
+ RLIMIT_CORE = 4
+ RLIMIT_CPU = 0
+ RLIMIT_CPU_USAGE_MONITOR = 0x2
+ RLIMIT_DATA = 2
+ RLIMIT_FOOTPRINT_INTERVAL = 0x4
+ RLIMIT_FSIZE = 1
+ RLIMIT_MEMLOCK = 6
+ RLIMIT_NOFILE = 8
+ RLIMIT_NPROC = 7
+ RLIMIT_RSS = 5
+ RLIMIT_STACK = 3
+ RLIMIT_THREAD_CPULIMITS = 0x3
+ RLIMIT_WAKEUPS_MONITOR = 0x1
+ RLIM_NLIMITS = 9
+ RSIZE_MAX = 9223372036854775807
+ RUSAGE_CHILDREN = -1
+ RUSAGE_INFO_CURRENT = 4
+ RUSAGE_INFO_V0 = 0
+ RUSAGE_INFO_V1 = 1
+ RUSAGE_INFO_V2 = 2
+ RUSAGE_INFO_V3 = 3
+ RUSAGE_INFO_V4 = 4
+ RUSAGE_SELF = 0
+ SA_64REGSET = 0x0200
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SA_USERSPACE_MASK = 127
+ SA_USERTRAMP = 0x0100
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_NOOP = 0
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 3
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 131072
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SIZE_MAX = 18446744073709551615
+ SI_ASYNCIO = 0x10004
+ SI_MESGQ = 0x10005
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_USER = 0x10001
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WAIT_ANY = -1
+ WAIT_MYPGRP = 0
+ WAKEMON_DISABLE = 0x02
+ WAKEMON_ENABLE = 0x01
+ WAKEMON_GET_PARAMS = 0x04
+ WAKEMON_MAKE_FATAL = 0x10
+ WAKEMON_SET_DEFAULTS = 0x08
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WCONTINUED = 0x00000010
+ WCOREFLAG = 0200
+ WEXITED = 0x00000004
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ WNOHANG = 0x00000001
+ WNOWAIT = 0x00000020
+ WSTOPPED = 0x00000008
+ WUNTRACED = 0x00000002
+ X_ALLOCA_H_ = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_SIGNAL_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CT_RUNE_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GCC_WRAP_STDINT_H = 0
+ X_I386_SIGNAL_H_ = 1
+ X_I386__ENDIAN_H_ = 0
+ X_ID_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_I386__STRUCTS_H_ = 0
+ X_MACH_MACHINE__STRUCTS_H_ = 0
+ X_MALLOC_UNDERSCORE_MALLOC_H_ = 0
+ X_MCONTEXT_T = 0
+ X_MODE_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OS__OSBYTEORDERI386_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIMIT_POSIX_FLAG = 0x1000
+ X_RUNE_T = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_STDINT_H_ = 0
+ X_STDLIB_H_ = 0
+ X_SYS_RESOURCE_H_ = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS_WAIT_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_WCHAR_T = 0
+ X_WSTOPPED = 0177
+)
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)wait.h 8.2 (Berkeley) 7/10/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This file holds definitions relevent to the wait4 system call
+// and the alternate interfaces that use it (wait, wait3, waitpid).
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+const ( /* wait.h:79:1: */
+ P_ALL = 0
+ P_PID = 1
+ P_PGID = 2
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stdlib.h 8.5 (Berkeley) 5/19/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// Swift compiler version
+// 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)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)wait.h 8.2 (Berkeley) 7/10/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This file holds definitions relevent to the wait4 system call
+// and the alternate interfaces that use it (wait, wait3, waitpid).
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+type Idtype_t = uint32 /* wait.h:83:3 */
+
+// [XSI] The id_t and pid_t types shall be defined as described
+// in <sys/types.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+
+// [XSI] The siginfo_t type shall be defined as described in <signal.h>
+// [XSI] The rusage structure shall be defined as described in <sys/resource.h>
+// [XSI] Inclusion of the <sys/wait.h> header may also make visible all
+// symbols from <signal.h> and <sys/resource.h>
+//
+// NOTE: This requirement is currently being satisfied by the direct
+// inclusion of <sys/signal.h> and <sys/resource.h>, below.
+//
+// Software should not depend on the exposure of anything other
+// than the types siginfo_t and struct rusage as a result of
+// this inclusion. If you depend on any types or manifest
+// values othe than siginfo_t and struct rusage from either of
+// those files, you should explicitly include them yourself, as
+// well, or in future releases your stware may not compile
+// without modification.
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.2 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1992 NeXT Computer, Inc.
+//
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+type Sig_atomic_t = int32 /* signal.h:39:13 */
+
+// Language spec sez we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+// SIG_HOLD is chosen to avoid KERN_SIG_* values in <sys/signalvar.h>
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// @OSF_COPYRIGHT@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+// i386 is the structure that is exported to user threads for
+// use in status/mutate calls. This structure should never change.
+//
+
+type X__darwin_i386_thread_state = struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+} /* _structs.h:46:1 */
+
+// This structure should be double-word aligned for performance
+
+type X__darwin_fp_control = struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+} /* _structs.h:92:1 */
+
+type X__darwin_fp_control_t = X__darwin_fp_control /* _structs.h:117:28 */
+
+// Status word.
+
+type X__darwin_fp_status = struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+} /* _structs.h:150:1 */
+
+type X__darwin_fp_status_t = X__darwin_fp_status /* _structs.h:167:27 */
+
+// defn of 80bit x87 FPU or MMX register
+
+type X__darwin_mmst_reg = struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+} /* _structs.h:194:1 */
+
+// defn of 128 bit XMM regs
+
+type X__darwin_xmm_reg = struct{ F__xmm_reg [16]int8 } /* _structs.h:213:1 */
+
+// defn of 256 bit YMM regs
+
+type X__darwin_ymm_reg = struct{ F__ymm_reg [32]int8 } /* _structs.h:229:1 */
+
+// defn of 512 bit ZMM regs
+
+type X__darwin_zmm_reg = struct{ F__zmm_reg [64]int8 } /* _structs.h:245:1 */
+
+type X__darwin_opmask_reg = struct{ F__opmask_reg [8]int8 } /* _structs.h:259:1 */
+
+// Floating point state.
+
+type X__darwin_i386_float_state = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+} /* _structs.h:281:1 */
+
+type X__darwin_i386_avx_state = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+} /* _structs.h:318:1 */
+
+type X__darwin_i386_avx512_state = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+} /* _structs.h:364:1 */
+
+type X__darwin_i386_exception_state = struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+} /* _structs.h:575:1 */
+
+type X__darwin_x86_debug_state32 = struct {
+ F__dr0 uint32
+ F__dr1 uint32
+ F__dr2 uint32
+ F__dr3 uint32
+ F__dr4 uint32
+ F__dr5 uint32
+ F__dr6 uint32
+ F__dr7 uint32
+} /* _structs.h:595:1 */
+
+type X__x86_pagein_state = struct{ F__pagein_error int32 } /* _structs.h:622:1 */
+
+// 64 bit versions of the above
+
+type X__darwin_x86_thread_state64 = struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+} /* _structs.h:633:1 */
+
+// 64 bit versions of the above (complete)
+
+type X__darwin_x86_thread_full_state64 = struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+} /* _structs.h:691:1 */
+
+type X__darwin_x86_float_state64 = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+} /* _structs.h:714:1 */
+
+type X__darwin_x86_avx_state64 = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+} /* _structs.h:765:1 */
+
+type X__darwin_x86_avx512_state64 = struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh8 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh9 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh10 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh11 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh12 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh13 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh14 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh15 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmm16 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm17 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm18 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm19 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm20 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm21 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm22 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm23 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm24 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm25 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm26 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm27 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm28 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm29 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm30 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm31 struct{ F__zmm_reg [64]int8 }
+} /* _structs.h:833:1 */
+
+type X__darwin_x86_exception_state64 = struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+} /* _structs.h:1172:1 */
+
+type X__darwin_x86_debug_state64 = struct {
+ F__dr0 X__uint64_t
+ F__dr1 X__uint64_t
+ F__dr2 X__uint64_t
+ F__dr3 X__uint64_t
+ F__dr4 X__uint64_t
+ F__dr5 X__uint64_t
+ F__dr6 X__uint64_t
+ F__dr7 X__uint64_t
+} /* _structs.h:1192:1 */
+
+type X__darwin_x86_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t } /* _structs.h:1220:1 */
+
+type X__darwin_mcontext32 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+ }
+ F__ss struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ }
+} /* _mcontext.h:39:1 */
+
+type X__darwin_mcontext_avx32 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+ }
+ F__ss struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ }
+} /* _mcontext.h:47:1 */
+
+type X__darwin_mcontext_avx512_32 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint32_t
+ }
+ F__ss struct {
+ F__eax uint32
+ F__ebx uint32
+ F__ecx uint32
+ F__edx uint32
+ F__edi uint32
+ F__esi uint32
+ F__ebp uint32
+ F__esp uint32
+ F__ss uint32
+ F__eflags uint32
+ F__eip uint32
+ F__cs uint32
+ F__ds uint32
+ F__es uint32
+ F__fs uint32
+ F__gs uint32
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [224]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ }
+} /* _mcontext.h:56:1 */
+
+type X__darwin_mcontext64 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:97:1 */
+
+type X__darwin_mcontext64_full = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:105:1 */
+
+type X__darwin_mcontext_avx64 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:113:1 */
+
+type X__darwin_mcontext_avx64_full = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:121:1 */
+
+type X__darwin_mcontext_avx512_64 = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh8 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh9 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh10 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh11 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh12 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh13 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh14 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh15 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmm16 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm17 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm18 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm19 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm20 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm21 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm22 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm23 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm24 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm25 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm26 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm27 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm28 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm29 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm30 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm31 struct{ F__zmm_reg [64]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:130:1 */
+
+type X__darwin_mcontext_avx512_64_full = struct {
+ F__es struct {
+ F__trapno X__uint16_t
+ F__cpu X__uint16_t
+ F__err X__uint32_t
+ F__faultvaddr X__uint64_t
+ }
+ F__ss struct {
+ F__ss64 struct {
+ F__rax X__uint64_t
+ F__rbx X__uint64_t
+ F__rcx X__uint64_t
+ F__rdx X__uint64_t
+ F__rdi X__uint64_t
+ F__rsi X__uint64_t
+ F__rbp X__uint64_t
+ F__rsp X__uint64_t
+ F__r8 X__uint64_t
+ F__r9 X__uint64_t
+ F__r10 X__uint64_t
+ F__r11 X__uint64_t
+ F__r12 X__uint64_t
+ F__r13 X__uint64_t
+ F__r14 X__uint64_t
+ F__r15 X__uint64_t
+ F__rip X__uint64_t
+ F__rflags X__uint64_t
+ F__cs X__uint64_t
+ F__fs X__uint64_t
+ F__gs X__uint64_t
+ }
+ F__ds X__uint64_t
+ F__es X__uint64_t
+ F__ss X__uint64_t
+ F__gsbase X__uint64_t
+ }
+ F__fs struct {
+ F__fpu_reserved [2]int32
+ F__fpu_fcw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short : 2, unsigned short __pc: 2, unsigned short __rc: 2, unsigned short : 1, unsigned short : 3 */
+ }
+ F__fpu_fsw struct {
+ F__ccgo_pad1 [0]uint16
+ F__invalid uint16 /* unsigned short __invalid: 1, unsigned short __denorm: 1, unsigned short __zdiv: 1, unsigned short __ovrfl: 1, unsigned short __undfl: 1, unsigned short __precis: 1, unsigned short __stkflt: 1, unsigned short __errsumm: 1, unsigned short __c0: 1, unsigned short __c1: 1, unsigned short __c2: 1, unsigned short __tos: 3, unsigned short __c3: 1, unsigned short __busy: 1 */
+ }
+ F__fpu_ftw X__uint8_t
+ F__fpu_rsrv1 X__uint8_t
+ F__fpu_fop X__uint16_t
+ F__fpu_ip X__uint32_t
+ F__fpu_cs X__uint16_t
+ F__fpu_rsrv2 X__uint16_t
+ F__fpu_dp X__uint32_t
+ F__fpu_ds X__uint16_t
+ F__fpu_rsrv3 X__uint16_t
+ F__fpu_mxcsr X__uint32_t
+ F__fpu_mxcsrmask X__uint32_t
+ F__fpu_stmm0 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm1 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm2 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm3 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm4 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm5 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm6 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_stmm7 struct {
+ F__mmst_reg [10]int8
+ F__mmst_rsrv [6]int8
+ }
+ F__fpu_xmm0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_xmm15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_rsrv4 [96]int8
+ F__fpu_reserved1 int32
+ F__avx_reserved1 [64]int8
+ F__fpu_ymmh0 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh1 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh2 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh3 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh4 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh5 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh6 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh7 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh8 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh9 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh10 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh11 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh12 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh13 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh14 struct{ F__xmm_reg [16]int8 }
+ F__fpu_ymmh15 struct{ F__xmm_reg [16]int8 }
+ F__fpu_k0 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k1 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k2 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k3 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k4 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k5 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k6 struct{ F__opmask_reg [8]int8 }
+ F__fpu_k7 struct{ F__opmask_reg [8]int8 }
+ F__fpu_zmmh0 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh1 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh2 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh3 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh4 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh5 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh6 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh7 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh8 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh9 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh10 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh11 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh12 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh13 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh14 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmmh15 struct{ F__ymm_reg [32]int8 }
+ F__fpu_zmm16 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm17 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm18 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm19 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm20 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm21 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm22 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm23 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm24 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm25 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm26 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm27 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm28 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm29 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm30 struct{ F__zmm_reg [64]int8 }
+ F__fpu_zmm31 struct{ F__zmm_reg [64]int8 }
+ }
+ F__ccgo_pad1 [4]byte
+} /* _mcontext.h:138:1 */
+
+type Mcontext_t = uintptr /* _mcontext.h:204:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type X__darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* _sigaltstack.h:42:1 */
+
+type Stack_t = X__darwin_sigaltstack /* _sigaltstack.h:48:33 */ // [???] signal stack
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+} /* _ucontext.h:42:1 */
+
+// user context
+type Ucontext_t = X__darwin_ucontext /* _ucontext.h:56:33 */ // [???] user context
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:158:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:168:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+} /* signal.h:177:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:188:3 */
+
+// When the signal is SIGILL or SIGFPE, si_addr contains the address of
+// the faulting instruction.
+// When the signal is SIGSEGV or SIGBUS, si_addr contains the address of
+// the faulting memory reference. Although for x86 there are cases of SIGSEGV
+// for which si_addr cannot be determined and is NULL.
+// If the signal is SIGCHLD, the si_pid field will contain the child process ID,
+// si_status contains the exit value or signal and
+// si_uid contains the real user ID of the process that sent the signal.
+
+// Values for si_code
+
+// Codes for SIGILL
+
+// Codes for SIGFPE
+
+// Codes for SIGSEGV
+
+// Codes for SIGBUS
+
+// Codes for SIGTRAP
+
+// Codes for SIGCHLD
+
+// Codes for SIGPOLL
+
+// union for signal handlers
+type X__sigaction_u = struct{ F__sa_handler uintptr } /* signal.h:269:1 */
+
+// Signal vector template for Kernel user boundary
+type X__sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:276:1 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:286:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// This will provide 64bit register set in a 32bit user address space
+
+// the following are the only bits we support from user space, the
+// rest are for kernel use only.
+
+// Flags for sigprocmask:
+
+// POSIX 1003.1b required values.
+
+type Sig_t = uintptr /* signal.h:331:14 */ // type of signal function
+
+// Structure used in sigaltstack call.
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:348:1 */
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:367:1 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)resource.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// 7.18.4 Macros for integer constants
+
+// 7.18.2 Limits of specified-width integer types:
+// These #defines specify the minimum and maximum limits
+// of each of the types declared above.
+//
+// They must have "the same type as would an expression that is an
+// object of the corresponding type converted according to the integer
+// promotion".
+
+// 7.18.2.1 Limits of exact-width integer types
+
+//
+// Note: the literal "most negative int" cannot be written in C --
+// the rules in the standard (section 6.4.4.1 in C99) will give it
+// an unsigned type, so INT32_MIN (and the most negative member of
+// any larger signed type) must be written via a constant expression.
+//
+
+// 7.18.2.2 Limits of minimum-width integer types
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+
+// 7.18.2.5 Limits of greatest-width integer types
+
+// 7.18.3 "Other"
+
+// WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+// it turns out that -fshort-wchar changes the signedness of
+// the type.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// [XSI] The timeval structure shall be defined as described in
+// <sys/time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* _timeval.h:34:1 */
+
+// The id_t type shall be defined as described in <sys/types.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Resource limit type (low 63 bits, excluding the sign bit)
+type Rlim_t = X__uint64_t /* resource.h:89:25 */
+
+// ****
+//
+// PRIORITY
+
+// Possible values of the first parameter to getpriority()/setpriority(),
+// used to indicate the type of the second parameter.
+
+// Range limitations for the value of the third parameter to setpriority().
+
+// use PRIO_DARWIN_BG to set the current thread into "background" state
+// which lowers CPU, disk IO, and networking priorites until thread terminates
+// or "background" state is revoked
+
+// use PRIO_DARWIN_NONUI to restrict a process's ability to make calls to
+// the GPU. (deprecated)
+
+// ****
+//
+// RESOURCE USAGE
+
+// Possible values of the first parameter to getrusage(), used to indicate
+// the scope of the information to be returned.
+
+// A structure representing an accounting of resource utilization. The
+// address of an instance of this structure is the second parameter to
+// getrusage().
+//
+// Note: All values other than ru_utime and ru_stime are implementaiton
+// defined and subject to change in a future release. Their use
+// is discouraged for standards compliant programs.
+type Rusage = struct {
+ Fru_utime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_stime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_maxrss int64
+ Fru_ixrss int64
+ Fru_idrss int64
+ Fru_isrss int64
+ Fru_minflt int64
+ Fru_majflt int64
+ Fru_nswap int64
+ Fru_inblock int64
+ Fru_oublock int64
+ Fru_msgsnd int64
+ Fru_msgrcv int64
+ Fru_nsignals int64
+ Fru_nvcsw int64
+ Fru_nivcsw int64
+} /* resource.h:152:1 */
+
+// Flavors for proc_pid_rusage().
+
+type Rusage_info_t = uintptr /* resource.h:193:14 */
+
+type Rusage_info_v0 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+} /* resource.h:195:1 */
+
+type Rusage_info_v1 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+} /* resource.h:209:1 */
+
+type Rusage_info_v2 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+} /* resource.h:229:1 */
+
+type Rusage_info_v3 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+} /* resource.h:251:1 */
+
+type Rusage_info_v4 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+} /* resource.h:282:1 */
+
+type Rusage_info_current = Rusage_info_v4 /* resource.h:321:31 */
+
+// ****
+//
+// RESOURCE LIMITS
+
+// Symbolic constants for resource limits; since all limits are representable
+// as a type rlim_t, we are permitted to define RLIM_SAVED_* in terms of
+// RLIM_INFINITY.
+
+// Possible values of the first parameter to getrlimit()/setrlimit(), to
+// indicate for which resource the operation is being performed.
+
+// A structure representing a resource limit. The address of an instance
+// of this structure is the second parameter to getrlimit()/setrlimit().
+type Rlimit = struct {
+ Frlim_cur Rlim_t
+ Frlim_max Rlim_t
+} /* resource.h:365:1 */
+
+// proc_rlimit_control()
+//
+// Resource limit flavors
+
+// Flags for wakeups monitor control.
+
+// Flags for CPU usage monitor control.
+
+// Flags for memory footprint interval tracking.
+
+type Proc_rlimit_control_wakeupmon = struct {
+ Fwm_flags Uint32_t
+ Fwm_rate Int32_t
+} /* resource.h:400:1 */
+
+// Deprecated:
+// Structure of the information in the status word returned by wait4.
+// If w_stopval==_WSTOPPED, then the second structure describes
+// the information returned, else the first.
+type Wait = struct{ Fw_status int32 } /* wait.h:194:1 */
+
+// built-in for gcc
+
+// built-in for gcc 3
+
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// _GCC_SIZE_T
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t /* _ct_rune_t.h:32:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t /* _rune_t.h:31:25 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:86:3 */
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:91:3 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:97:3 */
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */ // getsubopt(3) external variable
+// valloc is now declared in _malloc.h
+
+// Poison the following routines if -fshort-wchar is set
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go b/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go
new file mode 100644
index 00000000..67a37e9e
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go
@@ -0,0 +1,4927 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_darwin_arm64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BUS_ADRALN = 1
+ BUS_ADRERR = 2
+ BUS_NOOP = 0
+ BUS_OBJERR = 3
+ BYTE_ORDER = 1234
+ CLD_CONTINUED = 6
+ CLD_DUMPED = 3
+ CLD_EXITED = 1
+ CLD_KILLED = 2
+ CLD_NOOP = 0
+ CLD_STOPPED = 5
+ CLD_TRAPPED = 4
+ CPUMON_MAKE_FATAL = 0x1000
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FOOTPRINT_INTERVAL_RESET = 0x1
+ FPE_FLTDIV = 1
+ FPE_FLTINV = 5
+ FPE_FLTOVF = 2
+ FPE_FLTRES = 4
+ FPE_FLTSUB = 6
+ FPE_FLTUND = 3
+ FPE_INTDIV = 7
+ FPE_INTOVF = 8
+ FPE_NOOP = 0
+ ILL_BADSTK = 8
+ ILL_COPROC = 7
+ ILL_ILLADR = 5
+ ILL_ILLOPC = 1
+ ILL_ILLOPN = 4
+ ILL_ILLTRP = 2
+ ILL_NOOP = 0
+ ILL_PRVOPC = 3
+ ILL_PRVREG = 6
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ IOPOL_APPLICATION = 5
+ IOPOL_ATIME_UPDATES_DEFAULT = 0
+ IOPOL_ATIME_UPDATES_OFF = 1
+ IOPOL_DEFAULT = 0
+ IOPOL_IMPORTANT = 1
+ IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT = 0
+ IOPOL_MATERIALIZE_DATALESS_FILES_OFF = 1
+ IOPOL_MATERIALIZE_DATALESS_FILES_ON = 2
+ IOPOL_NORMAL = 1
+ IOPOL_PASSIVE = 2
+ IOPOL_SCOPE_DARWIN_BG = 2
+ IOPOL_SCOPE_PROCESS = 0
+ IOPOL_SCOPE_THREAD = 1
+ IOPOL_STANDARD = 5
+ IOPOL_THROTTLE = 3
+ IOPOL_TYPE_DISK = 0
+ IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES = 9
+ IOPOL_TYPE_VFS_ATIME_UPDATES = 2
+ IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION = 6
+ IOPOL_TYPE_VFS_IGNORE_PERMISSIONS = 7
+ IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES = 3
+ IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE = 8
+ IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME = 4
+ IOPOL_TYPE_VFS_TRIGGER_RESOLVE = 5
+ IOPOL_UTILITY = 4
+ IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF = 0
+ IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON = 1
+ IOPOL_VFS_CONTENT_PROTECTION_DEFAULT = 0
+ IOPOL_VFS_CONTENT_PROTECTION_IGNORE = 1
+ IOPOL_VFS_IGNORE_PERMISSIONS_OFF = 0
+ IOPOL_VFS_IGNORE_PERMISSIONS_ON = 1
+ IOPOL_VFS_SKIP_MTIME_UPDATE_OFF = 0
+ IOPOL_VFS_SKIP_MTIME_UPDATE_ON = 1
+ IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME = 1
+ IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT = 0
+ IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT = 0
+ IOPOL_VFS_TRIGGER_RESOLVE_OFF = 1
+ LITTLE_ENDIAN = 1234
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ MINSIGSTKSZ = 32768
+ NSIG = 32
+ PDP_ENDIAN = 3412
+ POLL_ERR = 4
+ POLL_HUP = 6
+ POLL_IN = 1
+ POLL_MSG = 3
+ POLL_OUT = 2
+ POLL_PRI = 5
+ PRIO_DARWIN_BG = 0x1000
+ PRIO_DARWIN_NONUI = 0x1001
+ PRIO_DARWIN_PROCESS = 4
+ PRIO_DARWIN_THREAD = 3
+ PRIO_MAX = 20
+ PRIO_MIN = -20
+ PRIO_PGRP = 1
+ PRIO_PROCESS = 0
+ PRIO_USER = 2
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RAND_MAX = 0x7fffffff
+ RLIMIT_AS = 5
+ RLIMIT_CORE = 4
+ RLIMIT_CPU = 0
+ RLIMIT_CPU_USAGE_MONITOR = 0x2
+ RLIMIT_DATA = 2
+ RLIMIT_FOOTPRINT_INTERVAL = 0x4
+ RLIMIT_FSIZE = 1
+ RLIMIT_MEMLOCK = 6
+ RLIMIT_NOFILE = 8
+ RLIMIT_NPROC = 7
+ RLIMIT_RSS = 5
+ RLIMIT_STACK = 3
+ RLIMIT_THREAD_CPULIMITS = 0x3
+ RLIMIT_WAKEUPS_MONITOR = 0x1
+ RLIM_NLIMITS = 9
+ RSIZE_MAX = 9223372036854775807
+ RUSAGE_CHILDREN = -1
+ RUSAGE_INFO_CURRENT = 5
+ RUSAGE_INFO_V0 = 0
+ RUSAGE_INFO_V1 = 1
+ RUSAGE_INFO_V2 = 2
+ RUSAGE_INFO_V3 = 3
+ RUSAGE_INFO_V4 = 4
+ RUSAGE_INFO_V5 = 5
+ RUSAGE_SELF = 0
+ RU_PROC_RUNS_RESLIDE = 0x00000001
+ SA_64REGSET = 0x0200
+ SA_NOCLDSTOP = 0x0008
+ SA_NOCLDWAIT = 0x0020
+ SA_NODEFER = 0x0010
+ SA_ONSTACK = 0x0001
+ SA_RESETHAND = 0x0004
+ SA_RESTART = 0x0002
+ SA_SIGINFO = 0x0040
+ SA_USERSPACE_MASK = 127
+ SA_USERTRAMP = 0x0100
+ SEGV_ACCERR = 2
+ SEGV_MAPERR = 1
+ SEGV_NOOP = 0
+ SIGABRT = 6
+ SIGALRM = 14
+ SIGBUS = 10
+ SIGCHLD = 20
+ SIGCONT = 19
+ SIGEMT = 7
+ SIGEV_NONE = 0
+ SIGEV_SIGNAL = 1
+ SIGEV_THREAD = 3
+ SIGFPE = 8
+ SIGHUP = 1
+ SIGILL = 4
+ SIGINFO = 29
+ SIGINT = 2
+ SIGIO = 23
+ SIGIOT = 6
+ SIGKILL = 9
+ SIGPIPE = 13
+ SIGPROF = 27
+ SIGQUIT = 3
+ SIGSEGV = 11
+ SIGSTKSZ = 131072
+ SIGSTOP = 17
+ SIGSYS = 12
+ SIGTERM = 15
+ SIGTRAP = 5
+ SIGTSTP = 18
+ SIGTTIN = 21
+ SIGTTOU = 22
+ SIGURG = 16
+ SIGUSR1 = 30
+ SIGUSR2 = 31
+ SIGVTALRM = 26
+ SIGWINCH = 28
+ SIGXCPU = 24
+ SIGXFSZ = 25
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIG_BLOCK = 1
+ SIG_SETMASK = 3
+ SIG_UNBLOCK = 2
+ SIZE_MAX = 18446744073709551615
+ SI_ASYNCIO = 0x10004
+ SI_MESGQ = 0x10005
+ SI_QUEUE = 0x10002
+ SI_TIMER = 0x10003
+ SI_USER = 0x10001
+ SS_DISABLE = 0x0004
+ SS_ONSTACK = 0x0001
+ SV_INTERRUPT = 2
+ SV_NOCLDSTOP = 8
+ SV_NODEFER = 16
+ SV_ONSTACK = 1
+ SV_RESETHAND = 4
+ SV_SIGINFO = 64
+ TRAP_BRKPT = 1
+ TRAP_TRACE = 2
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WAIT_ANY = -1
+ WAIT_MYPGRP = 0
+ WAKEMON_DISABLE = 0x02
+ WAKEMON_ENABLE = 0x01
+ WAKEMON_GET_PARAMS = 0x04
+ WAKEMON_MAKE_FATAL = 0x10
+ WAKEMON_SET_DEFAULTS = 0x08
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WCONTINUED = 0x00000010
+ WCOREFLAG = 0200
+ WEXITED = 0x00000004
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ WNOHANG = 0x00000001
+ WNOWAIT = 0x00000020
+ WSTOPPED = 0x00000008
+ WUNTRACED = 0x00000002
+ X_ALLOCA_H_ = 0
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM_SIGNAL_ = 1
+ X_ARM__ENDIAN_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_SIGNAL_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__MCONTEXT_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CT_RUNE_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GCC_WRAP_STDINT_H = 0
+ X_ID_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MACH_ARM__STRUCTS_H_ = 0
+ X_MACH_MACHINE__STRUCTS_H_ = 0
+ X_MALLOC_UNDERSCORE_MALLOC_H_ = 0
+ X_MCONTEXT_T = 0
+ X_MODE_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIMIT_POSIX_FLAG = 0x1000
+ X_RUNE_T = 0
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_STDINT_H_ = 0
+ X_STDLIB_H_ = 0
+ X_SYS_RESOURCE_H_ = 0
+ X_SYS_SIGNAL_H_ = 0
+ X_SYS_WAIT_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_WCHAR_T = 0
+ X_WSTOPPED = 0177
+)
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)wait.h 8.2 (Berkeley) 7/10/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This file holds definitions relevent to the wait4 system call
+// and the alternate interfaces that use it (wait, wait3, waitpid).
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+const ( /* wait.h:79:1: */
+ P_ALL = 0
+ P_PID = 1
+ P_PGID = 2
+)
+
+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 */
+
+// Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stdlib.h 8.5 (Berkeley) 5/19/95
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// Swift compiler version
+// 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)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support clang language extensions.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1986, 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)wait.h 8.2 (Berkeley) 7/10/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This file holds definitions relevent to the wait4 system call
+// and the alternate interfaces that use it (wait, wait3, waitpid).
+
+// [XSI] The type idtype_t shall be defined as an enumeration type whose
+// possible values shall include at least P_ALL, P_PID, and P_PGID.
+type Idtype_t = uint32 /* wait.h:83:3 */
+
+// [XSI] The id_t and pid_t types shall be defined as described
+// in <sys/types.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+
+// [XSI] The siginfo_t type shall be defined as described in <signal.h>
+// [XSI] The rusage structure shall be defined as described in <sys/resource.h>
+// [XSI] Inclusion of the <sys/wait.h> header may also make visible all
+// symbols from <signal.h> and <sys/resource.h>
+//
+// NOTE: This requirement is currently being satisfied by the direct
+// inclusion of <sys/signal.h> and <sys/resource.h>, below.
+//
+// Software should not depend on the exposure of anything other
+// than the types siginfo_t and struct rusage as a result of
+// this inclusion. If you depend on any types or manifest
+// values othe than siginfo_t and struct rusage from either of
+// those files, you should explicitly include them yourself, as
+// well, or in future releases your stware may not compile
+// without modification.
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.2 (Berkeley) 1/21/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2009 Apple, Inc. All rights reserved.
+// Copyright (c) 1992 NeXT Computer, Inc.
+//
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+type Sig_atomic_t = int32 /* signal.h:17:13 */
+
+// Language spec sez we must list exactly one parameter, even though we
+// actually supply three. Ugh!
+// SIG_HOLD is chosen to avoid KERN_SIG_* values in <sys/signalvar.h>
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// @OSF_COPYRIGHT@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type X__darwin_arm_exception_state = struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+} /* _structs.h:41:1 */
+
+type X__darwin_arm_exception_state64 = struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+} /* _structs.h:59:1 */
+
+type X__darwin_arm_thread_state = struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+} /* _structs.h:77:1 */
+
+// By default, the pointer fields in the arm_thread_state64_t structure are
+// opaque on the arm64e architecture and require the use of accessor macros.
+// This mode can also be enabled on the arm64 architecture by building with
+// -D__DARWIN_OPAQUE_ARM_THREAD_STATE64=1.
+
+type X__darwin_arm_thread_state64 = struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+} /* _structs.h:136:1 */
+
+// Accessor macros for arm_thread_state64_t pointer fields
+
+// Return pc field of arm_thread_state64_t as a data pointer value
+// Return pc field of arm_thread_state64_t as a function pointer
+// Set pc field of arm_thread_state64_t to a function pointer
+// Return lr field of arm_thread_state64_t as a data pointer value
+// Return lr field of arm_thread_state64_t as a function pointer
+// Set lr field of arm_thread_state64_t to a function pointer
+// Return sp field of arm_thread_state64_t as a data pointer value
+// Set sp field of arm_thread_state64_t to a data pointer value
+// Return fp field of arm_thread_state64_t as a data pointer value
+// Set fp field of arm_thread_state64_t to a data pointer value
+// Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t
+
+type X__darwin_arm_vfp_state = struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+} /* _structs.h:424:1 */
+
+type X__darwin_arm_neon_state64 = struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:443:1 */
+
+type X__darwin_arm_neon_state = struct {
+ F__v [16]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+} /* _structs.h:450:1 */
+
+type X__arm_pagein_state = struct{ F__pagein_error int32 } /* _structs.h:514:1 */
+
+// Debug State
+
+// ARM's arm_debug_state is ARM64's arm_legacy_debug_state
+
+type X__arm_legacy_debug_state = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+} /* _structs.h:551:1 */
+
+type X__darwin_arm_debug_state32 = struct {
+ F__bvr [16]X__uint32_t
+ F__bcr [16]X__uint32_t
+ F__wvr [16]X__uint32_t
+ F__wcr [16]X__uint32_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:574:1 */
+
+type X__darwin_arm_debug_state64 = struct {
+ F__bvr [16]X__uint64_t
+ F__bcr [16]X__uint64_t
+ F__wvr [16]X__uint64_t
+ F__wcr [16]X__uint64_t
+ F__mdscr_el1 X__uint64_t
+} /* _structs.h:584:1 */
+
+type X__darwin_arm_cpmu_state64 = struct{ F__ctrs [16]X__uint64_t } /* _structs.h:616:1 */
+
+type X__darwin_mcontext32 = struct {
+ F__es struct {
+ F__exception X__uint32_t
+ F__fsr X__uint32_t
+ F__far X__uint32_t
+ }
+ F__ss struct {
+ F__r [13]X__uint32_t
+ F__sp X__uint32_t
+ F__lr X__uint32_t
+ F__pc X__uint32_t
+ F__cpsr X__uint32_t
+ }
+ F__fs struct {
+ F__r [64]X__uint32_t
+ F__fpscr X__uint32_t
+ }
+} /* _mcontext.h:41:1 */
+
+type X__darwin_mcontext64 = struct {
+ F__es struct {
+ F__far X__uint64_t
+ F__esr X__uint32_t
+ F__exception X__uint32_t
+ }
+ F__ss struct {
+ F__x [29]X__uint64_t
+ F__fp X__uint64_t
+ F__lr X__uint64_t
+ F__sp X__uint64_t
+ F__pc X__uint64_t
+ F__cpsr X__uint32_t
+ F__pad X__uint32_t
+ }
+ F__ns struct {
+ F__v [32]X__uint128_t
+ F__fpsr X__uint32_t
+ F__fpcr X__uint32_t
+ }
+} /* _mcontext.h:64:1 */
+
+type Mcontext_t = uintptr /* _mcontext.h:85:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type X__darwin_sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* _sigaltstack.h:42:1 */
+
+type Stack_t = X__darwin_sigaltstack /* _sigaltstack.h:48:33 */ // [???] signal stack
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Structure used in sigaltstack call.
+
+type X__darwin_ucontext = struct {
+ Fuc_onstack int32
+ Fuc_sigmask X__darwin_sigset_t
+ Fuc_stack struct {
+ Fss_sp uintptr
+ Fss_size X__darwin_size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fuc_link uintptr
+ Fuc_mcsize X__darwin_size_t
+ Fuc_mcontext uintptr
+} /* _ucontext.h:43:1 */
+
+// user context
+type Ucontext_t = X__darwin_ucontext /* _ucontext.h:57:33 */ // [???] user context
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+type Sigval = struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+} /* signal.h:158:1 */
+
+type Sigevent = struct {
+ Fsigev_notify int32
+ Fsigev_signo int32
+ Fsigev_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsigev_notify_function uintptr
+ Fsigev_notify_attributes uintptr
+} /* signal.h:168:1 */
+
+type X__siginfo = struct {
+ Fsi_signo int32
+ Fsi_errno int32
+ Fsi_code int32
+ Fsi_pid Pid_t
+ Fsi_uid Uid_t
+ Fsi_status int32
+ Fsi_addr uintptr
+ Fsi_value struct {
+ F__ccgo_pad1 [0]uint64
+ Fsival_int int32
+ F__ccgo_pad2 [4]byte
+ }
+ Fsi_band int64
+ F__pad [7]uint64
+} /* signal.h:177:9 */
+
+type Siginfo_t = X__siginfo /* signal.h:188:3 */
+
+// When the signal is SIGILL or SIGFPE, si_addr contains the address of
+// the faulting instruction.
+// When the signal is SIGSEGV or SIGBUS, si_addr contains the address of
+// the faulting memory reference. Although for x86 there are cases of SIGSEGV
+// for which si_addr cannot be determined and is NULL.
+// If the signal is SIGCHLD, the si_pid field will contain the child process ID,
+// si_status contains the exit value or signal and
+// si_uid contains the real user ID of the process that sent the signal.
+
+// Values for si_code
+
+// Codes for SIGILL
+
+// Codes for SIGFPE
+
+// Codes for SIGSEGV
+
+// Codes for SIGBUS
+
+// Codes for SIGTRAP
+
+// Codes for SIGCHLD
+
+// Codes for SIGPOLL
+
+// union for signal handlers
+type X__sigaction_u = struct{ F__sa_handler uintptr } /* signal.h:269:1 */
+
+// Signal vector template for Kernel user boundary
+type X__sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_tramp uintptr
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:276:1 */
+
+// Signal vector "template" used in sigaction call.
+type Sigaction = struct {
+ F__sigaction_u struct{ F__sa_handler uintptr }
+ Fsa_mask Sigset_t
+ Fsa_flags int32
+} /* signal.h:286:1 */
+
+// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler.
+
+// This will provide 64bit register set in a 32bit user address space
+
+// the following are the only bits we support from user space, the
+// rest are for kernel use only.
+
+// Flags for sigprocmask:
+
+// POSIX 1003.1b required values.
+
+type Sig_t = uintptr /* signal.h:331:14 */ // type of signal function
+
+// Structure used in sigaltstack call.
+
+// 4.3 compatibility:
+// Signal vector "template" used in sigvec call.
+type Sigvec = struct {
+ Fsv_handler uintptr
+ Fsv_mask int32
+ Fsv_flags int32
+} /* signal.h:348:1 */
+
+// Structure used in sigstack call.
+type Sigstack = struct {
+ Fss_sp uintptr
+ Fss_onstack int32
+ F__ccgo_pad1 [4]byte
+} /* signal.h:367:1 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)resource.h 8.2 (Berkeley) 1/4/94
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// 7.18.4 Macros for integer constants
+
+// 7.18.2 Limits of specified-width integer types:
+// These #defines specify the minimum and maximum limits
+// of each of the types declared above.
+//
+// They must have "the same type as would an expression that is an
+// object of the corresponding type converted according to the integer
+// promotion".
+
+// 7.18.2.1 Limits of exact-width integer types
+
+//
+// Note: the literal "most negative int" cannot be written in C --
+// the rules in the standard (section 6.4.4.1 in C99) will give it
+// an unsigned type, so INT32_MIN (and the most negative member of
+// any larger signed type) must be written via a constant expression.
+//
+
+// 7.18.2.2 Limits of minimum-width integer types
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+
+// 7.18.2.5 Limits of greatest-width integer types
+
+// 7.18.3 "Other"
+
+// WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+// it turns out that -fshort-wchar changes the signedness of
+// the type.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// [XSI] The timeval structure shall be defined as described in
+// <sys/time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* _timeval.h:34:1 */
+
+// The id_t type shall be defined as described in <sys/types.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Resource limit type (low 63 bits, excluding the sign bit)
+type Rlim_t = X__uint64_t /* resource.h:89:25 */
+
+// ****
+//
+// PRIORITY
+
+// Possible values of the first parameter to getpriority()/setpriority(),
+// used to indicate the type of the second parameter.
+
+// Range limitations for the value of the third parameter to setpriority().
+
+// use PRIO_DARWIN_BG to set the current thread into "background" state
+// which lowers CPU, disk IO, and networking priorites until thread terminates
+// or "background" state is revoked
+
+// use PRIO_DARWIN_NONUI to restrict a process's ability to make calls to
+// the GPU. (deprecated)
+
+// ****
+//
+// RESOURCE USAGE
+
+// Possible values of the first parameter to getrusage(), used to indicate
+// the scope of the information to be returned.
+
+// A structure representing an accounting of resource utilization. The
+// address of an instance of this structure is the second parameter to
+// getrusage().
+//
+// Note: All values other than ru_utime and ru_stime are implementaiton
+// defined and subject to change in a future release. Their use
+// is discouraged for standards compliant programs.
+type Rusage = struct {
+ Fru_utime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_stime struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fru_maxrss int64
+ Fru_ixrss int64
+ Fru_idrss int64
+ Fru_isrss int64
+ Fru_minflt int64
+ Fru_majflt int64
+ Fru_nswap int64
+ Fru_inblock int64
+ Fru_oublock int64
+ Fru_msgsnd int64
+ Fru_msgrcv int64
+ Fru_nsignals int64
+ Fru_nvcsw int64
+ Fru_nivcsw int64
+} /* resource.h:152:1 */
+
+// Flavors for proc_pid_rusage().
+
+// Flags for RUSAGE_INFO_V5
+
+type Rusage_info_t = uintptr /* resource.h:199:14 */
+
+type Rusage_info_v0 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+} /* resource.h:201:1 */
+
+type Rusage_info_v1 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+} /* resource.h:215:1 */
+
+type Rusage_info_v2 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+} /* resource.h:235:1 */
+
+type Rusage_info_v3 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+} /* resource.h:257:1 */
+
+type Rusage_info_v4 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+} /* resource.h:288:1 */
+
+type Rusage_info_v5 = struct {
+ Fri_uuid [16]Uint8_t
+ Fri_user_time Uint64_t
+ Fri_system_time Uint64_t
+ Fri_pkg_idle_wkups Uint64_t
+ Fri_interrupt_wkups Uint64_t
+ Fri_pageins Uint64_t
+ Fri_wired_size Uint64_t
+ Fri_resident_size Uint64_t
+ Fri_phys_footprint Uint64_t
+ Fri_proc_start_abstime Uint64_t
+ Fri_proc_exit_abstime Uint64_t
+ Fri_child_user_time Uint64_t
+ Fri_child_system_time Uint64_t
+ Fri_child_pkg_idle_wkups Uint64_t
+ Fri_child_interrupt_wkups Uint64_t
+ Fri_child_pageins Uint64_t
+ Fri_child_elapsed_abstime Uint64_t
+ Fri_diskio_bytesread Uint64_t
+ Fri_diskio_byteswritten Uint64_t
+ Fri_cpu_time_qos_default Uint64_t
+ Fri_cpu_time_qos_maintenance Uint64_t
+ Fri_cpu_time_qos_background Uint64_t
+ Fri_cpu_time_qos_utility Uint64_t
+ Fri_cpu_time_qos_legacy Uint64_t
+ Fri_cpu_time_qos_user_initiated Uint64_t
+ Fri_cpu_time_qos_user_interactive Uint64_t
+ Fri_billed_system_time Uint64_t
+ Fri_serviced_system_time Uint64_t
+ Fri_logical_writes Uint64_t
+ Fri_lifetime_max_phys_footprint Uint64_t
+ Fri_instructions Uint64_t
+ Fri_cycles Uint64_t
+ Fri_billed_energy Uint64_t
+ Fri_serviced_energy Uint64_t
+ Fri_interval_max_phys_footprint Uint64_t
+ Fri_runnable_time Uint64_t
+ Fri_flags Uint64_t
+} /* resource.h:327:1 */
+
+type Rusage_info_current = Rusage_info_v5 /* resource.h:367:31 */
+
+// ****
+//
+// RESOURCE LIMITS
+
+// Symbolic constants for resource limits; since all limits are representable
+// as a type rlim_t, we are permitted to define RLIM_SAVED_* in terms of
+// RLIM_INFINITY.
+
+// Possible values of the first parameter to getrlimit()/setrlimit(), to
+// indicate for which resource the operation is being performed.
+
+// A structure representing a resource limit. The address of an instance
+// of this structure is the second parameter to getrlimit()/setrlimit().
+type Rlimit = struct {
+ Frlim_cur Rlim_t
+ Frlim_max Rlim_t
+} /* resource.h:411:1 */
+
+// proc_rlimit_control()
+//
+// Resource limit flavors
+
+// Flags for wakeups monitor control.
+
+// Flags for CPU usage monitor control.
+
+// Flags for memory footprint interval tracking.
+
+type Proc_rlimit_control_wakeupmon = struct {
+ Fwm_flags Uint32_t
+ Fwm_rate Int32_t
+} /* resource.h:446:1 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Deprecated:
+// Structure of the information in the status word returned by wait4.
+// If w_stopval==_WSTOPPED, then the second structure describes
+// the information returned, else the first.
+type Wait = struct{ Fw_status int32 } /* wait.h:194:1 */
+
+// built-in for gcc
+
+// built-in for gcc 3
+
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// _GCC_SIZE_T
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t /* _ct_rune_t.h:32:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t /* _rune_t.h:31:25 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:86:3 */
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:91:3 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:97:3 */
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */ // getsubopt(3) external variable
+// valloc is now declared in _malloc.h
+
+// Poison the following routines if -fshort-wchar is set
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go b/vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go
new file mode 100644
index 00000000..73d7c0f0
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go
@@ -0,0 +1,663 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_freebsd_386.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ RAND_MAX = 0x7fffffff
+ X_ERRNO_T_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKDTEMP_DECLARED = 0
+ X_MKSTEMP_DECLARED = 0
+ X_MKTEMP_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_RSIZE_T_DEFINED = 0
+ X_RUNE_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_STDLIB_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_WCHAR_T_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1990, 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.
+//
+// @(#)stdlib.h 8.5 (Berkeley) 5/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Rune_t = X__rune_t /* stdlib.h:46:18 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:66:3 */
+
+type Ldiv_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:71:3 */
+
+// Functions added in C99 which we make conditionally available in the
+// BSD^C89 namespace if the compiler supports `long long'.
+// The #if test is more complicated than it ought to be because
+// __BSD_VISIBLE implies __ISO_C_VISIBLE == 1999 *even if* `long long'
+// is not supported in the compilation environment (which therefore means
+// that it can't really be ISO C99).
+//
+// (The only other extension made by C99 in thie header is _Exit().)
+// LONGLONG
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:142:3 */ // getsubopt(3) external variable
+
+type Rsize_t = Size_t /* stdlib.h:340:16 */
+
+type Errno_t = int32 /* stdlib.h:345:13 */
+
+// K.3.6
+type Constraint_handler_t = uintptr /* stdlib.h:349:14 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_freebsd_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_freebsd_amd64.go
new file mode 100644
index 00000000..de595190
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_freebsd_amd64.go
@@ -0,0 +1,668 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_freebsd_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ RAND_MAX = 0x7fffffff
+ X_ERRNO_T_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKDTEMP_DECLARED = 0
+ X_MKSTEMP_DECLARED = 0
+ X_MKTEMP_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_RSIZE_T_DEFINED = 0
+ X_RUNE_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_STDLIB_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_WCHAR_T_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1990, 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.
+//
+// @(#)stdlib.h 8.5 (Berkeley) 5/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Rune_t = X__rune_t /* stdlib.h:46:18 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:66:3 */
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:71:3 */
+
+// Functions added in C99 which we make conditionally available in the
+// BSD^C89 namespace if the compiler supports `long long'.
+// The #if test is more complicated than it ought to be because
+// __BSD_VISIBLE implies __ISO_C_VISIBLE == 1999 *even if* `long long'
+// is not supported in the compilation environment (which therefore means
+// that it can't really be ISO C99).
+//
+// (The only other extension made by C99 in thie header is _Exit().)
+// LONGLONG
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:142:3 */ // getsubopt(3) external variable
+
+type Rsize_t = Size_t /* stdlib.h:340:16 */
+
+type Errno_t = int32 /* stdlib.h:345:13 */
+
+// K.3.6
+type Constraint_handler_t = uintptr /* stdlib.h:349:14 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_linux_386.go b/vendor/modernc.org/libc/stdlib/stdlib_linux_386.go
new file mode 100644
index 00000000..e31de5fd
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_linux_386.go
@@ -0,0 +1,1513 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_386.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+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
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ RAND_MAX = 2147483647
+ WCONTINUED = 8
+ WEXITED = 4
+ WNOHANG = 1
+ WNOWAIT = 0x01000000
+ WSTOPPED = 2
+ WUNTRACED = 2
+ X_ALLOCA_H = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_FLOATN_COMMON_H = 0
+ X_BITS_FLOATN_H = 0
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GCC_WCHAR_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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDLIB_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ X_T_WCHAR = 0
+ X_T_WCHAR_ = 0
+ X_WCHAR_T = 0
+ X_WCHAR_T_ = 0
+ X_WCHAR_T_DECLARED = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCHAR_T_DEFINED_ = 0
+ X_WCHAR_T_H = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+const ( /* waitflags.h:52:1: */
+ P_ALL = 0 // Wait for any child.
+ P_PID = 1 // Wait for specified process.
+ P_PGID = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+type Idtype_t = uint32 /* waitflags.h:57:3 */
+// Definitions of status bits for `wait' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Everything extant so far uses these same bits.
+
+// If WIFEXITED(STATUS), the low-order 8 bits of the status.
+
+// If WIFSIGNALED(STATUS), the terminating signal.
+
+// If WIFSTOPPED(STATUS), the signal that stopped the child.
+
+// Nonzero if STATUS indicates normal termination.
+
+// Nonzero if STATUS indicates termination by a signal.
+
+// Nonzero if STATUS indicates the child is stopped.
+
+// Nonzero if STATUS indicates the child continued after a stop. We only
+// define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
+
+// Nonzero if STATUS indicates the child dumped core.
+
+// Macros for constructing status values.
+
+// Define the macros <sys/wait.h> also would define this way.
+
+// _FloatN API tests for enablement.
+// Macros to control TS 18661-3 glibc features on x86.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the IEEE 754 binary128 format, and this
+// glibc includes corresponding *f128 interfaces for it. The required
+// libgcc support was added some time after the basic compiler
+// support, for x86_64 and x86.
+
+// Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
+// from the default float, double and long double types in this glibc.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for _Float64x, and this
+// glibc includes corresponding *f64x interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+// of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+// the format of _Float128, which must be different from that of long
+// double.
+
+// Defined to concatenate the literal suffix to be used with _Float128
+// types, if __HAVE_FLOAT128 is 1.
+
+// Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// The type _Float128 exists only since GCC 7.0.
+
+// __builtin_huge_valf128 doesn't exist before GCC 7.0.
+
+// Older GCC has only a subset of built-in functions for _Float128 on
+// x86, and __builtin_infq is not usable in static initializers.
+// Converting a narrower sNaN to _Float128 produces a quiet NaN, so
+// attempts to use _Float128 sNaNs will not work properly with older
+// compilers.
+
+// In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*,
+// e.g.: __builtin_signbitf128, before GCC 6. However, there has never
+// been a __builtin_signbitf128 in GCC and the type-generic builtin is
+// only available since GCC 6.
+
+// Macros to control TS 18661-3 glibc features where the same
+// definitions are appropriate for all platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type. ldbl-96 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// This header should be included at the bottom of each bits/floatn.h.
+// It defines the following macros for each _FloatN and _FloatNx type,
+// where the same definitions, or definitions based only on the macros
+// in bits/floatn.h, are appropriate for all glibc configurations.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for this type, and this
+// glibc includes corresponding *fN or *fNx interfaces for it.
+
+// Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
+// type is the first with its format in the sequence of (the default
+// choices for) float, double, long double, _Float16, _Float32,
+// _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
+// glibc; that is, if functions present once per floating-point format
+// rather than once per type are present for this type.
+//
+// All configurations supported by glibc have _Float32 the same format
+// as float, _Float64 and _Float32x the same format as double, the
+// _Float64x the same format as either long double or _Float128. No
+// configurations support _Float128x or, as of GCC 7, have compiler
+// support for a type meeting the requirements for _Float128x.
+
+// Defined to 1 if the corresponding _FloatN type is not binary compatible
+// with the corresponding ISO C type in the current compilation unit as
+// opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
+// in glibc.
+
+// Defined to 1 if any _FloatN or _FloatNx types that are not
+// ABI-distinct are however distinct types at the C language level (so
+// for the purposes of __builtin_types_compatible_p and _Generic).
+
+// Defined to concatenate the literal suffix to be used with _FloatN
+// or _FloatNx types, if __HAVE_<type> is 1. The corresponding
+// literal suffixes exist since GCC 7, for C only.
+
+// Defined to a complex type if __HAVE_<type> is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// If double, long double and _Float64 all have the same set of
+// values, TS 18661-3 requires the usual arithmetic conversions on
+// long double and _Float64 to produce _Float64. For this to be the
+// case when building with a compiler without a distinct _Float64
+// type, _Float64 must be a typedef for long double, not for
+// double.
+
+// Returned by `div'.
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:62:5 */
+
+// Returned by `ldiv'.
+type Ldiv_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:70:5 */
+
+// Returned by `lldiv'.
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:80:5 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Reentrant versions of the `random' family of functions.
+// These functions all use the following data structure to contain
+// state, rather than global state variables.
+
+type Random_data = struct {
+ Ffptr uintptr
+ Frptr uintptr
+ Fstate uintptr
+ Frand_type int32
+ Frand_deg int32
+ Frand_sep int32
+ Fend_ptr uintptr
+} /* stdlib.h:423:1 */
+
+// Data structure for communication with thread safe versions. This
+// type is to be regarded as opaque. It's only exported because users
+// have to allocate objects of this type.
+type Drand48_data = struct {
+ F__x [3]uint16
+ F__old_x [3]uint16
+ F__c uint16
+ F__init uint16
+ F__a uint64
+} /* stdlib.h:490:1 */
+
+// Shorthand for type of comparison functions.
+type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
+
+// Floating-point inline functions for stdlib.h.
+// 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
+// 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 some macros helping to catch buffer overflows.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_linux_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_linux_amd64.go
new file mode 100644
index 00000000..18dce1b4
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_linux_amd64.go
@@ -0,0 +1,1531 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+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
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ RAND_MAX = 2147483647
+ WCONTINUED = 8
+ WEXITED = 4
+ WNOHANG = 1
+ WNOWAIT = 0x01000000
+ WSTOPPED = 2
+ WUNTRACED = 2
+ X_ALLOCA_H = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_FLOATN_COMMON_H = 0
+ X_BITS_FLOATN_H = 0
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GCC_WCHAR_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDLIB_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ X_T_WCHAR = 0
+ X_T_WCHAR_ = 0
+ X_WCHAR_T = 0
+ X_WCHAR_T_ = 0
+ X_WCHAR_T_DECLARED = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCHAR_T_DEFINED_ = 0
+ X_WCHAR_T_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+const ( /* waitflags.h:52:1: */
+ P_ALL = 0 // Wait for any child.
+ P_PID = 1 // Wait for specified process.
+ P_PGID = 2
+)
+
+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 */
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+type Idtype_t = uint32 /* waitflags.h:57:3 */
+// Definitions of status bits for `wait' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Everything extant so far uses these same bits.
+
+// If WIFEXITED(STATUS), the low-order 8 bits of the status.
+
+// If WIFSIGNALED(STATUS), the terminating signal.
+
+// If WIFSTOPPED(STATUS), the signal that stopped the child.
+
+// Nonzero if STATUS indicates normal termination.
+
+// Nonzero if STATUS indicates termination by a signal.
+
+// Nonzero if STATUS indicates the child is stopped.
+
+// Nonzero if STATUS indicates the child continued after a stop. We only
+// define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
+
+// Nonzero if STATUS indicates the child dumped core.
+
+// Macros for constructing status values.
+
+// Define the macros <sys/wait.h> also would define this way.
+
+// _FloatN API tests for enablement.
+// Macros to control TS 18661-3 glibc features on x86.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the IEEE 754 binary128 format, and this
+// glibc includes corresponding *f128 interfaces for it. The required
+// libgcc support was added some time after the basic compiler
+// support, for x86_64 and x86.
+
+// Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
+// from the default float, double and long double types in this glibc.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for _Float64x, and this
+// glibc includes corresponding *f64x interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+// of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+// the format of _Float128, which must be different from that of long
+// double.
+
+// Defined to concatenate the literal suffix to be used with _Float128
+// types, if __HAVE_FLOAT128 is 1.
+
+// Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// The type _Float128 exists only since GCC 7.0.
+
+// __builtin_huge_valf128 doesn't exist before GCC 7.0.
+
+// Older GCC has only a subset of built-in functions for _Float128 on
+// x86, and __builtin_infq is not usable in static initializers.
+// Converting a narrower sNaN to _Float128 produces a quiet NaN, so
+// attempts to use _Float128 sNaNs will not work properly with older
+// compilers.
+
+// In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*,
+// e.g.: __builtin_signbitf128, before GCC 6. However, there has never
+// been a __builtin_signbitf128 in GCC and the type-generic builtin is
+// only available since GCC 6.
+
+// Macros to control TS 18661-3 glibc features where the same
+// definitions are appropriate for all platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type. ldbl-96 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// This header should be included at the bottom of each bits/floatn.h.
+// It defines the following macros for each _FloatN and _FloatNx type,
+// where the same definitions, or definitions based only on the macros
+// in bits/floatn.h, are appropriate for all glibc configurations.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for this type, and this
+// glibc includes corresponding *fN or *fNx interfaces for it.
+
+// Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
+// type is the first with its format in the sequence of (the default
+// choices for) float, double, long double, _Float16, _Float32,
+// _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
+// glibc; that is, if functions present once per floating-point format
+// rather than once per type are present for this type.
+//
+// All configurations supported by glibc have _Float32 the same format
+// as float, _Float64 and _Float32x the same format as double, the
+// _Float64x the same format as either long double or _Float128. No
+// configurations support _Float128x or, as of GCC 7, have compiler
+// support for a type meeting the requirements for _Float128x.
+
+// Defined to 1 if the corresponding _FloatN type is not binary compatible
+// with the corresponding ISO C type in the current compilation unit as
+// opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
+// in glibc.
+
+// Defined to 1 if any _FloatN or _FloatNx types that are not
+// ABI-distinct are however distinct types at the C language level (so
+// for the purposes of __builtin_types_compatible_p and _Generic).
+
+// Defined to concatenate the literal suffix to be used with _FloatN
+// or _FloatNx types, if __HAVE_<type> is 1. The corresponding
+// literal suffixes exist since GCC 7, for C only.
+
+// Defined to a complex type if __HAVE_<type> is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// If double, long double and _Float64 all have the same set of
+// values, TS 18661-3 requires the usual arithmetic conversions on
+// long double and _Float64 to produce _Float64. For this to be the
+// case when building with a compiler without a distinct _Float64
+// type, _Float64 must be a typedef for long double, not for
+// double.
+
+// Returned by `div'.
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:62:5 */
+
+// Returned by `ldiv'.
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:70:5 */
+
+// Returned by `lldiv'.
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:80:5 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Reentrant versions of the `random' family of functions.
+// These functions all use the following data structure to contain
+// state, rather than global state variables.
+
+type Random_data = struct {
+ Ffptr uintptr
+ Frptr uintptr
+ Fstate uintptr
+ Frand_type int32
+ Frand_deg int32
+ Frand_sep int32
+ F__ccgo_pad1 [4]byte
+ Fend_ptr uintptr
+} /* stdlib.h:423:1 */
+
+// Data structure for communication with thread safe versions. This
+// type is to be regarded as opaque. It's only exported because users
+// have to allocate objects of this type.
+type Drand48_data = struct {
+ F__x [3]uint16
+ F__old_x [3]uint16
+ F__c uint16
+ F__init uint16
+ F__a uint64
+} /* stdlib.h:490:1 */
+
+// Shorthand for type of comparison functions.
+type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
+
+// Floating-point inline functions for stdlib.h.
+// 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
+// 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 some macros helping to catch buffer overflows.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_linux_arm.go b/vendor/modernc.org/libc/stdlib/stdlib_linux_arm.go
new file mode 100644
index 00000000..df68d8e6
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_linux_arm.go
@@ -0,0 +1,1573 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_arm.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+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
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ RAND_MAX = 2147483647
+ WCONTINUED = 8
+ WEXITED = 4
+ WNOHANG = 1
+ WNOWAIT = 0x01000000
+ WSTOPPED = 2
+ WUNTRACED = 2
+ X_ALLOCA_H = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_FLOATN_COMMON_H = 0
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GCC_WCHAR_T = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDLIB_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ X_T_WCHAR = 0
+ X_T_WCHAR_ = 0
+ X_WCHAR_T = 0
+ X_WCHAR_T_ = 0
+ X_WCHAR_T_DECLARED = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCHAR_T_DEFINED_ = 0
+ X_WCHAR_T_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+const ( /* waitflags.h:52:1: */
+ P_ALL = 0 // Wait for any child.
+ P_PID = 1 // Wait for specified process.
+ P_PGID = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+type Idtype_t = uint32 /* waitflags.h:57:3 */
+// Definitions of status bits for `wait' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Everything extant so far uses these same bits.
+
+// If WIFEXITED(STATUS), the low-order 8 bits of the status.
+
+// If WIFSIGNALED(STATUS), the terminating signal.
+
+// If WIFSTOPPED(STATUS), the signal that stopped the child.
+
+// Nonzero if STATUS indicates normal termination.
+
+// Nonzero if STATUS indicates termination by a signal.
+
+// Nonzero if STATUS indicates the child is stopped.
+
+// Nonzero if STATUS indicates the child continued after a stop. We only
+// define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
+
+// Nonzero if STATUS indicates the child dumped core.
+
+// Macros for constructing status values.
+
+// Define the macros <sys/wait.h> also would define this way.
+
+// _FloatN API tests for enablement.
+// Macros to control TS 18661-3 glibc features.
+// 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/>.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the IEEE 754 binary128 format, and this glibc
+// includes corresponding *f128 interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
+// from the default float, double and long double types in this glibc.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for _Float64x, and this
+// glibc includes corresponding *f64x interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+// of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+// the format of _Float128, which must be different from that of long
+// double.
+
+// Defined to concatenate the literal suffix to be used with _Float128
+// types, if __HAVE_FLOAT128 is 1.
+// E.g.: #define __f128(x) x##f128.
+
+// Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
+// E.g.: #define __CFLOAT128 _Complex _Float128.
+
+// Macros to control TS 18661-3 glibc features where the same
+// definitions are appropriate for all platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// This header should be included at the bottom of each bits/floatn.h.
+// It defines the following macros for each _FloatN and _FloatNx type,
+// where the same definitions, or definitions based only on the macros
+// in bits/floatn.h, are appropriate for all glibc configurations.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for this type, and this
+// glibc includes corresponding *fN or *fNx interfaces for it.
+
+// Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
+// type is the first with its format in the sequence of (the default
+// choices for) float, double, long double, _Float16, _Float32,
+// _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
+// glibc; that is, if functions present once per floating-point format
+// rather than once per type are present for this type.
+//
+// All configurations supported by glibc have _Float32 the same format
+// as float, _Float64 and _Float32x the same format as double, the
+// _Float64x the same format as either long double or _Float128. No
+// configurations support _Float128x or, as of GCC 7, have compiler
+// support for a type meeting the requirements for _Float128x.
+
+// Defined to 1 if the corresponding _FloatN type is not binary compatible
+// with the corresponding ISO C type in the current compilation unit as
+// opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
+// in glibc.
+
+// Defined to 1 if any _FloatN or _FloatNx types that are not
+// ABI-distinct are however distinct types at the C language level (so
+// for the purposes of __builtin_types_compatible_p and _Generic).
+
+// Defined to concatenate the literal suffix to be used with _FloatN
+// or _FloatNx types, if __HAVE_<type> is 1. The corresponding
+// literal suffixes exist since GCC 7, for C only.
+
+// Defined to a complex type if __HAVE_<type> is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// If double, long double and _Float64 all have the same set of
+// values, TS 18661-3 requires the usual arithmetic conversions on
+// long double and _Float64 to produce _Float64. For this to be the
+// case when building with a compiler without a distinct _Float64
+// type, _Float64 must be a typedef for long double, not for
+// double.
+
+// Returned by `div'.
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:62:5 */
+
+// Returned by `ldiv'.
+type Ldiv_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:70:5 */
+
+// Returned by `lldiv'.
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:80:5 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Reentrant versions of the `random' family of functions.
+// These functions all use the following data structure to contain
+// state, rather than global state variables.
+
+type Random_data = struct {
+ Ffptr uintptr
+ Frptr uintptr
+ Fstate uintptr
+ Frand_type int32
+ Frand_deg int32
+ Frand_sep int32
+ Fend_ptr uintptr
+} /* stdlib.h:423:1 */
+
+// Data structure for communication with thread safe versions. This
+// type is to be regarded as opaque. It's only exported because users
+// have to allocate objects of this type.
+type Drand48_data = struct {
+ F__x [3]uint16
+ F__old_x [3]uint16
+ F__c uint16
+ F__init uint16
+ F__a uint64
+} /* stdlib.h:490:1 */
+
+// Shorthand for type of comparison functions.
+type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
+
+// Floating-point inline functions for stdlib.h.
+// 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
+// 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 some macros helping to catch buffer overflows.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_linux_arm64.go b/vendor/modernc.org/libc/stdlib/stdlib_linux_arm64.go
new file mode 100644
index 00000000..9a5d748c
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_linux_arm64.go
@@ -0,0 +1,1607 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_arm64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+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
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ RAND_MAX = 2147483647
+ WCONTINUED = 8
+ WEXITED = 4
+ WNOHANG = 1
+ WNOWAIT = 0x01000000
+ WSTOPPED = 2
+ WUNTRACED = 2
+ X_ALLOCA_H = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_FLOATN_COMMON_H = 0
+ X_BITS_FLOATN_H = 0
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GCC_WCHAR_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDLIB_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ X_T_WCHAR = 0
+ X_T_WCHAR_ = 0
+ X_WCHAR_T = 0
+ X_WCHAR_T_ = 0
+ X_WCHAR_T_DECLARED = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCHAR_T_DEFINED_ = 0
+ X_WCHAR_T_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+const ( /* waitflags.h:52:1: */
+ P_ALL = 0 // Wait for any child.
+ P_PID = 1 // Wait for specified process.
+ P_PGID = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+type Idtype_t = uint32 /* waitflags.h:57:3 */
+// Definitions of status bits for `wait' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Everything extant so far uses these same bits.
+
+// If WIFEXITED(STATUS), the low-order 8 bits of the status.
+
+// If WIFSIGNALED(STATUS), the terminating signal.
+
+// If WIFSTOPPED(STATUS), the signal that stopped the child.
+
+// Nonzero if STATUS indicates normal termination.
+
+// Nonzero if STATUS indicates termination by a signal.
+
+// Nonzero if STATUS indicates the child is stopped.
+
+// Nonzero if STATUS indicates the child continued after a stop. We only
+// define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
+
+// Nonzero if STATUS indicates the child dumped core.
+
+// Macros for constructing status values.
+
+// Define the macros <sys/wait.h> also would define this way.
+
+// _FloatN API tests for enablement.
+// Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the IEEE 754 binary128 format, and this
+// glibc includes corresponding *f128 interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
+// from the default float, double and long double types in this glibc.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for _Float64x, and this
+// glibc includes corresponding *f64x interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+// of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+// the format of _Float128, which must be different from that of long
+// double.
+
+// Defined to concatenate the literal suffix to be used with _Float128
+// types, if __HAVE_FLOAT128 is 1.
+
+// Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// The type _Float128 exists only since GCC 7.0.
+
+// Various built-in functions do not exist before GCC 7.0.
+
+// Macros to control TS 18661-3 glibc features where the same
+// definitions are appropriate for all platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// This header should be included at the bottom of each bits/floatn.h.
+// It defines the following macros for each _FloatN and _FloatNx type,
+// where the same definitions, or definitions based only on the macros
+// in bits/floatn.h, are appropriate for all glibc configurations.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for this type, and this
+// glibc includes corresponding *fN or *fNx interfaces for it.
+
+// Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
+// type is the first with its format in the sequence of (the default
+// choices for) float, double, long double, _Float16, _Float32,
+// _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
+// glibc; that is, if functions present once per floating-point format
+// rather than once per type are present for this type.
+//
+// All configurations supported by glibc have _Float32 the same format
+// as float, _Float64 and _Float32x the same format as double, the
+// _Float64x the same format as either long double or _Float128. No
+// configurations support _Float128x or, as of GCC 7, have compiler
+// support for a type meeting the requirements for _Float128x.
+
+// Defined to 1 if the corresponding _FloatN type is not binary compatible
+// with the corresponding ISO C type in the current compilation unit as
+// opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
+// in glibc.
+
+// Defined to 1 if any _FloatN or _FloatNx types that are not
+// ABI-distinct are however distinct types at the C language level (so
+// for the purposes of __builtin_types_compatible_p and _Generic).
+
+// Defined to concatenate the literal suffix to be used with _FloatN
+// or _FloatNx types, if __HAVE_<type> is 1. The corresponding
+// literal suffixes exist since GCC 7, for C only.
+
+// Defined to a complex type if __HAVE_<type> is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// If double, long double and _Float64 all have the same set of
+// values, TS 18661-3 requires the usual arithmetic conversions on
+// long double and _Float64 to produce _Float64. For this to be the
+// case when building with a compiler without a distinct _Float64
+// type, _Float64 must be a typedef for long double, not for
+// double.
+
+// Returned by `div'.
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:62:5 */
+
+// Returned by `ldiv'.
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:70:5 */
+
+// Returned by `lldiv'.
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:80:5 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Reentrant versions of the `random' family of functions.
+// These functions all use the following data structure to contain
+// state, rather than global state variables.
+
+type Random_data = struct {
+ Ffptr uintptr
+ Frptr uintptr
+ Fstate uintptr
+ Frand_type int32
+ Frand_deg int32
+ Frand_sep int32
+ F__ccgo_pad1 [4]byte
+ Fend_ptr uintptr
+} /* stdlib.h:423:1 */
+
+// Data structure for communication with thread safe versions. This
+// type is to be regarded as opaque. It's only exported because users
+// have to allocate objects of this type.
+type Drand48_data = struct {
+ F__x [3]uint16
+ F__old_x [3]uint16
+ F__c uint16
+ F__init uint16
+ F__a uint64
+} /* stdlib.h:490:1 */
+
+// Shorthand for type of comparison functions.
+type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
+
+// Floating-point inline functions for stdlib.h.
+// 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
+// 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 some macros helping to catch buffer overflows.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_linux_s390x.go b/vendor/modernc.org/libc/stdlib/stdlib_linux_s390x.go
new file mode 100644
index 00000000..7e5b7e69
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_linux_s390x.go
@@ -0,0 +1,1532 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_s390x.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 4321
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ RAND_MAX = 2147483647
+ WCONTINUED = 8
+ WEXITED = 4
+ WNOHANG = 1
+ WNOWAIT = 0x01000000
+ WSTOPPED = 2
+ WUNTRACED = 2
+ X_ALLOCA_H = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_FLOATN_COMMON_H = 0
+ X_BITS_FLOATN_H = 0
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GCC_WCHAR_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STDLIB_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ X_T_WCHAR = 0
+ X_T_WCHAR_ = 0
+ X_WCHAR_T = 0
+ X_WCHAR_T_ = 0
+ X_WCHAR_T_DECLARED = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCHAR_T_DEFINED_ = 0
+ X_WCHAR_T_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+const ( /* waitflags.h:52:1: */
+ P_ALL = 0 // Wait for any child.
+ P_PID = 1 // Wait for specified process.
+ P_PGID = 2
+)
+
+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 */
+
+// A null pointer constant.
+
+// XPG requires a few symbols from <sys/wait.h> being defined.
+// Definitions of flag bits for `waitpid' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Bits in the third argument to `waitpid'.
+
+// Bits in the fourth argument to `waitid'.
+
+// The following values are used by the `waitid' function.
+
+// The Linux kernel defines these bare, rather than an enum,
+// which causes a conflict if the include order is reversed.
+
+type Idtype_t = uint32 /* waitflags.h:57:3 */
+// Definitions of status bits for `wait' et al.
+// 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
+// <https://www.gnu.org/licenses/>.
+
+// Everything extant so far uses these same bits.
+
+// If WIFEXITED(STATUS), the low-order 8 bits of the status.
+
+// If WIFSIGNALED(STATUS), the terminating signal.
+
+// If WIFSTOPPED(STATUS), the signal that stopped the child.
+
+// Nonzero if STATUS indicates normal termination.
+
+// Nonzero if STATUS indicates termination by a signal.
+
+// Nonzero if STATUS indicates the child is stopped.
+
+// Nonzero if STATUS indicates the child continued after a stop. We only
+// define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
+
+// Nonzero if STATUS indicates the child dumped core.
+
+// Macros for constructing status values.
+
+// Define the macros <sys/wait.h> also would define this way.
+
+// _FloatN API tests for enablement.
+// Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type. ldbl-opt version.
+// 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 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/>.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the IEEE 754 binary128 format, and this
+// glibc includes corresponding *f128 interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
+// from the default float, double and long double types in this glibc.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for _Float64x, and this
+// glibc includes corresponding *f64x interfaces for it.
+
+// Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+// of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+// the format of _Float128, which must be different from that of long
+// double.
+
+// Defined to concatenate the literal suffix to be used with _Float128
+// types, if __HAVE_FLOAT128 is 1.
+
+// Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// The type _Float128 exists only since GCC 7.0.
+
+// Various built-in functions do not exist before GCC 7.0.
+
+// Macros to control TS 18661-3 glibc features where the same
+// definitions are appropriate for all platforms.
+// 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/>.
+
+// 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
+// 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/>.
+
+// Properties of long double type. ldbl-opt version.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header should be included at the bottom of each bits/floatn.h.
+// It defines the following macros for each _FloatN and _FloatNx type,
+// where the same definitions, or definitions based only on the macros
+// in bits/floatn.h, are appropriate for all glibc configurations.
+
+// Defined to 1 if the current compiler invocation provides a
+// floating-point type with the right format for this type, and this
+// glibc includes corresponding *fN or *fNx interfaces for it.
+
+// Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
+// type is the first with its format in the sequence of (the default
+// choices for) float, double, long double, _Float16, _Float32,
+// _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
+// glibc; that is, if functions present once per floating-point format
+// rather than once per type are present for this type.
+//
+// All configurations supported by glibc have _Float32 the same format
+// as float, _Float64 and _Float32x the same format as double, the
+// _Float64x the same format as either long double or _Float128. No
+// configurations support _Float128x or, as of GCC 7, have compiler
+// support for a type meeting the requirements for _Float128x.
+
+// Defined to 1 if the corresponding _FloatN type is not binary compatible
+// with the corresponding ISO C type in the current compilation unit as
+// opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
+// in glibc.
+
+// Defined to 1 if any _FloatN or _FloatNx types that are not
+// ABI-distinct are however distinct types at the C language level (so
+// for the purposes of __builtin_types_compatible_p and _Generic).
+
+// Defined to concatenate the literal suffix to be used with _FloatN
+// or _FloatNx types, if __HAVE_<type> is 1. The corresponding
+// literal suffixes exist since GCC 7, for C only.
+
+// Defined to a complex type if __HAVE_<type> is 1.
+
+// The remaining of this file provides support for older compilers.
+
+// If double, long double and _Float64 all have the same set of
+// values, TS 18661-3 requires the usual arithmetic conversions on
+// long double and _Float64 to produce _Float64. For this to be the
+// case when building with a compiler without a distinct _Float64
+// type, _Float64 must be a typedef for long double, not for
+// double.
+
+// Returned by `div'.
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:62:5 */
+
+// Returned by `ldiv'.
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:70:5 */
+
+// Returned by `lldiv'.
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:80:5 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Reentrant versions of the `random' family of functions.
+// These functions all use the following data structure to contain
+// state, rather than global state variables.
+
+type Random_data = struct {
+ Ffptr uintptr
+ Frptr uintptr
+ Fstate uintptr
+ Frand_type int32
+ Frand_deg int32
+ Frand_sep int32
+ F__ccgo_pad1 [4]byte
+ Fend_ptr uintptr
+} /* stdlib.h:423:1 */
+
+// Data structure for communication with thread safe versions. This
+// type is to be regarded as opaque. It's only exported because users
+// have to allocate objects of this type.
+type Drand48_data = struct {
+ F__x [3]uint16
+ F__old_x [3]uint16
+ F__c uint16
+ F__init uint16
+ F__a uint64
+} /* stdlib.h:490:1 */
+
+// Shorthand for type of comparison functions.
+type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
+
+// Floating-point inline functions for stdlib.h.
+// 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
+// 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 some macros helping to catch buffer overflows.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_netbsd_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_netbsd_amd64.go
new file mode 100644
index 00000000..934560e9
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_netbsd_amd64.go
@@ -0,0 +1,1620 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_netbsd_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+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
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ FD_SETSIZE = 256
+ HN_AUTOSCALE = 0x20
+ HN_B = 0x04
+ HN_DECIMAL = 0x01
+ HN_DIVISOR_1000 = 0x08
+ HN_GETSCALE = 0x10
+ HN_NOSPACE = 0x02
+ 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
+ RANDOM_MAX = 0x7fffffff
+ RAND_MAX = 0x7fffffff
+ 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_STDLIB_H_ = 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_NULL_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: 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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+// $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 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:59:3 */
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:64:3 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:74:3 */
+
+type Qdiv_t = struct {
+ Fquot Quad_t
+ Frem Quad_t
+} /* stdlib.h:81:3 */
+
+type Locale_t = uintptr /* stdlib.h:357:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go
new file mode 100644
index 00000000..84504a0e
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go
@@ -0,0 +1,781 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_openbsd_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+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
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ RAND_MAX = 0x7fffffff
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_STDLIB_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ X_WCHAR_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: stdlib.h,v 1.76 2019/05/10 15:03:24 otto Exp $
+// $NetBSD: stdlib.h,v 1.25 1995/12/27 21:19:08 jtc 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.
+//
+// @(#)stdlib.h 5.13 (Berkeley) 6/4/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+type Div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:59:3 */
+
+type Ldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:64:3 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:70:3 */
+
+type Qdiv_t = struct {
+ Fquot Quad_t
+ Frem Quad_t
+} /* stdlib.h:77:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go b/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go
new file mode 100644
index 00000000..731c6661
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go
@@ -0,0 +1,547 @@
+// Code generated by 'ccgo stdlib/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 stdlib/stdlib_windows_386.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MB_LEN_MAX = 5
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ PATH_MAX = 260
+ RAND_MAX = 0x7fff
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_MAX = 4294967295
+ SSIZE_MAX = 2147483647
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ USHRT_MAX = 65535
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ALLOCA_S_HEAP_MARKER = 0xDDDD
+ X_ALLOCA_S_MARKER_SIZE = 8
+ X_ALLOCA_S_STACK_MARKER = 0xCCCC
+ X_ALLOCA_S_THRESHOLD = 1024
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CALL_REPORTFAULT = 0x2
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ABS_DEFINED = 0
+ X_CRT_ALGO_DEFINED = 0
+ X_CRT_ALLOCATION_DEFINED = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_ATOF_DEFINED = 0
+ X_CRT_DOUBLE_DEC = 0
+ X_CRT_ERRNO_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_PERROR_DEFINED = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_SWAB_DEFINED = 0
+ X_CRT_SYSTEM_DEFINED = 0
+ X_CRT_TERMINATE_DEFINED = 0
+ X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0
+ X_CRT_WPERROR_DEFINED = 0
+ X_CRT_WSYSTEM_DEFINED = 0
+ X_CVTBUFSIZE = 349
+ X_DIV_T_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FREEA_INLINE = 0
+ X_FREEENTRY = 0
+ X_GCC_LIMITS_H_ = 0
+ X_HEAPBADBEGIN = -3
+ X_HEAPBADNODE = -4
+ X_HEAPBADPTR = -6
+ X_HEAPEMPTY = -1
+ X_HEAPEND = -5
+ X_HEAPINFO_DEFINED = 0
+ X_HEAPOK = -2
+ X_HEAP_MAXREQ = 0xFFFFFFE0
+ X_I16_MAX = 32767
+ X_I16_MIN = -32768
+ X_I32_MAX = 2147483647
+ X_I32_MIN = -2147483648
+ X_I64_MAX = 9223372036854775807
+ X_I64_MIN = -9223372036854775808
+ X_I8_MAX = 127
+ X_I8_MIN = -128
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CORECRT_WSTDLIB = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_LIMITS = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STDLIB = 0
+ X_INC_STDLIB_S = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LIMITS_H___ = 0
+ X_MALLOC_H_ = 0
+ X_MAX_DIR = 256
+ X_MAX_DRIVE = 3
+ X_MAX_ENV = 32767
+ X_MAX_EXT = 256
+ X_MAX_FNAME = 256
+ X_MAX_PATH = 260
+ X_MAX_WAIT_MALLOC_CRT = 60000
+ X_MM_MALLOC_H_INCLUDED = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_ONEXIT_T_DEFINED = 0
+ X_OUT_TO_DEFAULT = 0
+ X_OUT_TO_MSGBOX = 2
+ X_OUT_TO_STDERR = 1
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_QSORT_S_DEFINED = 0
+ X_REPORT_ERRMODE = 3
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UI16_MAX = 0xffff
+ X_UI32_MAX = 0xffffffff
+ X_UI64_MAX = 0xffffffffffffffff
+ X_UI8_MAX = 0xff
+ X_UINTPTR_T_DEFINED = 0
+ X_USEDENTRY = 1
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WRITE_ABORT_MSG = 0x1
+ X_WSTDLIBP_DEFINED = 0
+ X_WSTDLIB_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// *
+// 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 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 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.
+
+// File system limits
+//
+// NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
+// required for the NUL. TODO: Test?
+// NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
+// are semantically identical, with a limit of 259 characters for the
+// path name, plus one for a terminating NUL, for a total of 260.
+
+// Copyright (C) 1991-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+type X_onexit_t = uintptr /* stdlib.h:50:15 */
+
+type X_div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:60:11 */
+
+type Div_t = X_div_t /* stdlib.h:63:5 */
+
+type X_ldiv_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:65:11 */
+
+type Ldiv_t = X_ldiv_t /* stdlib.h:68:5 */
+
+type X_LDOUBLE = struct{ Fld [10]uint8 } /* stdlib.h:77:5 */
+
+type X_CRT_DOUBLE = struct{ Fx float64 } /* stdlib.h:84:5 */
+
+type X_CRT_FLOAT = struct{ Ff float32 } /* stdlib.h:88:5 */
+
+type X_LONGDOUBLE = struct{ Fx float64 } /* stdlib.h:95:5 */
+
+type X_LDBL12 = struct{ Fld12 [12]uint8 } /* stdlib.h:102:5 */
+
+type X_purecall_handler = uintptr /* stdlib.h:143:16 */
+
+type X_invalid_parameter_handler = uintptr /* stdlib.h:148:16 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:727:61 */
+
+// *
+// 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 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.
+
+// Return codes for _heapwalk()
+
+// Values for _heapinfo.useflag
+
+// The structure used to walk through the heap with _heapwalk.
+type X_heapinfo = struct {
+ F_pentry uintptr
+ F_size Size_t
+ F_useflag int32
+} /* malloc.h:46:11 */
+
+// *
+// 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 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.
+
+// Return codes for _heapwalk()
+
+// Values for _heapinfo.useflag
+
+// The structure used to walk through the heap with _heapwalk.
+type X_HEAPINFO = X_heapinfo /* malloc.h:50:5 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/stdlib/stdlib_windows_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_windows_amd64.go
new file mode 100644
index 00000000..42727e66
--- /dev/null
+++ b/vendor/modernc.org/libc/stdlib/stdlib_windows_amd64.go
@@ -0,0 +1,548 @@
+// Code generated by 'ccgo stdlib\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 stdlib\stdlib_windows_amd64.go -pkgname stdlib', DO NOT EDIT.
+
+package stdlib
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CHAR_BIT = 8
+ CHAR_MAX = 127
+ CHAR_MIN = -128
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ EXIT_FAILURE = 1
+ EXIT_SUCCESS = 0
+ INT_MAX = 2147483647
+ INT_MIN = -2147483648
+ LLONG_MAX = 9223372036854775807
+ LLONG_MIN = -9223372036854775808
+ LONG_LONG_MAX = 9223372036854775807
+ LONG_LONG_MIN = -9223372036854775808
+ LONG_MAX = 2147483647
+ LONG_MIN = -2147483648
+ MB_LEN_MAX = 5
+ 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
+ PATH_MAX = 260
+ RAND_MAX = 0x7fff
+ SCHAR_MAX = 127
+ SCHAR_MIN = -128
+ SHRT_MAX = 32767
+ SHRT_MIN = -32768
+ SIZE_MAX = 18446744073709551615
+ SSIZE_MAX = 9223372036854775807
+ UCHAR_MAX = 255
+ UINT_MAX = 4294967295
+ ULLONG_MAX = 18446744073709551615
+ ULONG_LONG_MAX = 18446744073709551615
+ ULONG_MAX = 4294967295
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ USHRT_MAX = 65535
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ALLOCA_S_HEAP_MARKER = 0xDDDD
+ X_ALLOCA_S_MARKER_SIZE = 16
+ X_ALLOCA_S_STACK_MARKER = 0xCCCC
+ X_ALLOCA_S_THRESHOLD = 1024
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CALL_REPORTFAULT = 0x2
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ABS_DEFINED = 0
+ X_CRT_ALGO_DEFINED = 0
+ X_CRT_ALLOCATION_DEFINED = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_ATOF_DEFINED = 0
+ X_CRT_DOUBLE_DEC = 0
+ X_CRT_ERRNO_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_PERROR_DEFINED = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_SWAB_DEFINED = 0
+ X_CRT_SYSTEM_DEFINED = 0
+ X_CRT_TERMINATE_DEFINED = 0
+ X_CRT_WPERROR_DEFINED = 0
+ X_CRT_WSYSTEM_DEFINED = 0
+ X_CVTBUFSIZE = 349
+ X_DIV_T_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FREEA_INLINE = 0
+ X_FREEENTRY = 0
+ X_GCC_LIMITS_H_ = 0
+ X_HEAPBADBEGIN = -3
+ X_HEAPBADNODE = -4
+ X_HEAPBADPTR = -6
+ X_HEAPEMPTY = -1
+ X_HEAPEND = -5
+ X_HEAPINFO_DEFINED = 0
+ X_HEAPOK = -2
+ X_HEAP_MAXREQ = 0xFFFFFFFFFFFFFFE0
+ X_I16_MAX = 32767
+ X_I16_MIN = -32768
+ X_I32_MAX = 2147483647
+ X_I32_MIN = -2147483648
+ X_I64_MAX = 9223372036854775807
+ X_I64_MIN = -9223372036854775808
+ X_I8_MAX = 127
+ X_I8_MIN = -128
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_LIMITS = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STDLIB = 0
+ X_INC_STDLIB_S = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LIMITS_H___ = 0
+ X_MALLOC_H_ = 0
+ X_MAX_DIR = 256
+ X_MAX_DRIVE = 3
+ X_MAX_ENV = 32767
+ X_MAX_EXT = 256
+ X_MAX_FNAME = 256
+ X_MAX_PATH = 260
+ X_MAX_WAIT_MALLOC_CRT = 60000
+ X_MM_MALLOC_H_INCLUDED = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_ONEXIT_T_DEFINED = 0
+ X_OUT_TO_DEFAULT = 0
+ X_OUT_TO_MSGBOX = 2
+ X_OUT_TO_STDERR = 1
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_QSORT_S_DEFINED = 0
+ X_REENTRANT = 1
+ X_REPORT_ERRMODE = 3
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UI16_MAX = 0xffff
+ X_UI32_MAX = 0xffffffff
+ X_UI64_MAX = 0xffffffffffffffff
+ X_UI8_MAX = 0xff
+ X_UINTPTR_T_DEFINED = 0
+ X_USEDENTRY = 1
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WRITE_ABORT_MSG = 0x1
+ X_WSTDLIBP_DEFINED = 0
+ X_WSTDLIBP_S_DEFINED = 0
+ X_WSTDLIB_DEFINED = 0
+ X_WSTDLIB_S_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// This administrivia gets added to the beginning of limits.h
+// if the system has its own version of limits.h.
+
+// We use _GCC_LIMITS_H_ because we want this not to match
+// any macros that the system's limits.h uses for its own purposes.
+
+// Use "..." so that we find syslimits.h only in this same directory.
+// syslimits.h stands for the system's own limits.h file.
+// If we can use it ok unmodified, then we install this text.
+// If fixincludes fixes it, then the fixed version is installed
+// instead of this text.
+
+// *
+// 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 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.
+
+// File system limits
+//
+// NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
+// required for the NUL. TODO: Test?
+// NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
+// are semantically identical, with a limit of 259 characters for the
+// path name, plus one for a terminating NUL, for a total of 260.
+
+// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Number of bits in a `char'.
+
+// Maximum length of a multibyte character.
+
+// Minimum and maximum values a `signed char' can hold.
+
+// Maximum value an `unsigned char' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `char' can hold.
+
+// Minimum and maximum values a `signed short int' can hold.
+
+// Maximum value an `unsigned short int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed int' can hold.
+
+// Maximum value an `unsigned int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long int' can hold.
+// (Same as `int').
+
+// Maximum value an `unsigned long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// Minimum and maximum values a `signed long long int' can hold.
+
+// Maximum value an `unsigned long long int' can hold. (Minimum is 0).
+
+// This administrivia gets added to the end of limits.h
+// if the system has its own version of limits.h.
+
+type X_onexit_t = uintptr /* stdlib.h:49:15 */
+
+type X_div_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:59:11 */
+
+type Div_t = X_div_t /* stdlib.h:62:5 */
+
+type X_ldiv_t = struct {
+ Fquot int32
+ Frem int32
+} /* stdlib.h:64:11 */
+
+type Ldiv_t = X_ldiv_t /* stdlib.h:67:5 */
+
+type X_LDOUBLE = struct{ Fld [10]uint8 } /* stdlib.h:76:5 */
+
+type X_CRT_DOUBLE = struct{ Fx float64 } /* stdlib.h:83:5 */
+
+type X_CRT_FLOAT = struct{ Ff float32 } /* stdlib.h:87:5 */
+
+type X_LONGDOUBLE = struct{ Fx float64 } /* stdlib.h:94:5 */
+
+type X_LDBL12 = struct{ Fld12 [12]uint8 } /* stdlib.h:101:5 */
+
+type X_purecall_handler = uintptr /* stdlib.h:142:16 */
+
+type X_invalid_parameter_handler = uintptr /* stdlib.h:147:16 */
+
+type Lldiv_t = struct {
+ Fquot int64
+ Frem int64
+} /* stdlib.h:699:61 */
+
+// *
+// 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 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.
+
+// Return codes for _heapwalk()
+
+// Values for _heapinfo.useflag
+
+// The structure used to walk through the heap with _heapwalk.
+type X_heapinfo = struct {
+ F_pentry uintptr
+ F_size Size_t
+ F_useflag int32
+ F__ccgo_pad1 [4]byte
+} /* malloc.h:46:11 */
+
+// *
+// 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 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.
+
+// Return codes for _heapwalk()
+
+// Values for _heapinfo.useflag
+
+// The structure used to walk through the heap with _heapwalk.
+type X_HEAPINFO = X_heapinfo /* malloc.h:50:5 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sync.go b/vendor/modernc.org/libc/sync.go
new file mode 100644
index 00000000..f4f91f6c
--- /dev/null
+++ b/vendor/modernc.org/libc/sync.go
@@ -0,0 +1,17 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "sync/atomic"
+)
+
+var __sync_synchronize_dummy int32
+
+// __sync_synchronize();
+func X__sync_synchronize(t *TLS) {
+ // Attempt to implement a full memory barrier without assembler.
+ atomic.StoreInt32(&__sync_synchronize_dummy, atomic.LoadInt32(&__sync_synchronize_dummy)+1)
+}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go
new file mode 100644
index 00000000..a2822d19
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// 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
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go
new file mode 100644
index 00000000..ba45cfeb
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.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_darwin_arm64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_freebsd_386.go b/vendor/modernc.org/libc/sys/socket/capi_freebsd_386.go
new file mode 100644
index 00000000..5fc3c106
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_freebsd_386.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_freebsd_386.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_freebsd_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_freebsd_amd64.go
new file mode 100644
index 00000000..03826109
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_freebsd_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_freebsd_amd64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_386.go b/vendor/modernc.org/libc/sys/socket/capi_linux_386.go
new file mode 100644
index 00000000..0911eab5
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_386.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_linux_386.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go
new file mode 100644
index 00000000..57ceee42
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_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_linux_amd64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_arm.go b/vendor/modernc.org/libc/sys/socket/capi_linux_arm.go
new file mode 100644
index 00000000..34259749
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_arm.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_linux_arm.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go b/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go
new file mode 100644
index 00000000..0464f888
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.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_linux_arm64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go b/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go
new file mode 100644
index 00000000..5f53ef43
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.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_linux_s390x.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
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 00000000..d640c064
--- /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/capi_openbsd_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_openbsd_amd64.go
new file mode 100644
index 00000000..40211227
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_openbsd_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_openbsd_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
new file mode 100644
index 00000000..e5ea90e2
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go
@@ -0,0 +1,5033 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 28
+ AF_ECMA = 8
+ AF_HYLINK = 15
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 30
+ AF_IPX = 23
+ AF_ISDN = 28
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 40
+ AF_NATM = 31
+ AF_NDRV = 27
+ AF_NETBIOS = 33
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PPP = 34
+ AF_PUP = 4
+ AF_RESERVED_36 = 36
+ AF_ROUTE = 17
+ AF_SIP = 24
+ AF_SNA = 11
+ AF_SYSTEM = 32
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_UTUN = 38
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CONNECT_DATA_AUTHENTICATED = 0x4
+ CONNECT_DATA_IDEMPOTENT = 0x2
+ CONNECT_RESUME_ON_READ_WRITE = 0x1
+ FD_SETSIZE = 1024
+ KEV_DL_ADDMULTI = 7
+ KEV_DL_AWDL_RESTRICTED = 26
+ KEV_DL_AWDL_UNRESTRICTED = 27
+ KEV_DL_DELMULTI = 8
+ KEV_DL_IFCAP_CHANGED = 19
+ KEV_DL_IFDELEGATE_CHANGED = 25
+ KEV_DL_IF_ATTACHED = 9
+ KEV_DL_IF_DETACHED = 11
+ KEV_DL_IF_DETACHING = 10
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18
+ KEV_DL_ISSUES = 24
+ KEV_DL_LINK_ADDRESS_CHANGED = 16
+ KEV_DL_LINK_OFF = 12
+ KEV_DL_LINK_ON = 13
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30
+ KEV_DL_MASTER_ELECTED = 23
+ KEV_DL_NODE_ABSENCE = 22
+ KEV_DL_NODE_PRESENCE = 21
+ KEV_DL_PROTO_ATTACHED = 14
+ KEV_DL_PROTO_DETACHED = 15
+ KEV_DL_QOS_MODE_CHANGED = 29
+ KEV_DL_RRC_STATE_CHANGED = 28
+ KEV_DL_SIFFLAGS = 1
+ KEV_DL_SIFGENERIC = 6
+ KEV_DL_SIFMEDIA = 5
+ KEV_DL_SIFMETRICS = 2
+ KEV_DL_SIFMTU = 3
+ KEV_DL_SIFPHYS = 4
+ KEV_DL_SUBCLASS = 2
+ KEV_DL_WAKEFLAGS_CHANGED = 17
+ KEV_INET6_ADDR_DELETED = 3
+ KEV_INET6_CHANGED_ADDR = 2
+ KEV_INET6_DEFROUTER = 6
+ KEV_INET6_NEW_LL_ADDR = 4
+ KEV_INET6_NEW_RTADV_ADDR = 5
+ KEV_INET6_NEW_USER_ADDR = 1
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7
+ KEV_INET6_SUBCLASS = 6
+ KEV_INET_ADDR_DELETED = 3
+ KEV_INET_ARPCOLLISION = 7
+ KEV_INET_ARPRTRALIVE = 10
+ KEV_INET_ARPRTRFAILURE = 9
+ KEV_INET_CHANGED_ADDR = 2
+ KEV_INET_NEW_ADDR = 1
+ KEV_INET_PORTINUSE = 8
+ KEV_INET_SIFBRDADDR = 5
+ KEV_INET_SIFDSTADDR = 4
+ KEV_INET_SIFNETMASK = 6
+ KEV_INET_SUBCLASS = 1
+ LITTLE_ENDIAN = 1234
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ NBBY = 8
+ NETSVC_MRKNG_LVL_L2 = 1
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2
+ NETSVC_MRKNG_LVL_L3L2_BK = 3
+ NETSVC_MRKNG_UNKNOWN = 0
+ NET_MAXID = 40
+ NET_RT_DUMP = 1
+ NET_RT_DUMP2 = 7
+ NET_RT_FLAGS = 2
+ NET_RT_FLAGS_PRIV = 10
+ NET_RT_IFLIST = 3
+ NET_RT_IFLIST2 = 6
+ NET_RT_MAXID = 11
+ NET_RT_STAT = 4
+ NET_RT_TRASH = 5
+ NET_SERVICE_TYPE_AV = 6
+ NET_SERVICE_TYPE_BE = 0
+ NET_SERVICE_TYPE_BK = 1
+ NET_SERVICE_TYPE_OAM = 7
+ NET_SERVICE_TYPE_RD = 8
+ NET_SERVICE_TYPE_RV = 5
+ NET_SERVICE_TYPE_SIG = 2
+ NET_SERVICE_TYPE_VI = 3
+ NET_SERVICE_TYPE_VO = 4
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 30
+ PF_IPX = 23
+ PF_ISDN = 28
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 40
+ PF_NATM = 31
+ PF_NDRV = 27
+ PF_NETBIOS = 33
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PPP = 34
+ PF_PUP = 4
+ PF_RESERVED_36 = 36
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 24
+ PF_SNA = 11
+ PF_SYSTEM = 32
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_UTUN = 38
+ PF_XTP = 19
+ SAE_ASSOCID_ANY = 0
+ SAE_CONNID_ANY = 0
+ SCM_CREDS = 0x03
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIMESTAMP_MONOTONIC = 0x04
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SONPX_SETOPTSHUT = 0x000000001
+ SO_ACCEPTCONN = 0x0002
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DONTROUTE = 0x0010
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x0080
+ SO_LINGER_SEC = 0x1080
+ SO_NETSVC_MARKING_LEVEL = 0x1119
+ SO_NET_SERVICE_TYPE = 0x1116
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x0100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x0400
+ SO_TIMESTAMP_MONOTONIC = 0x0800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x0040
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GID_T = 0
+ X_I386__ENDIAN_H_ = 0
+ X_I386__PARAM_H_ = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NET_NETKEV_H_ = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS__OSBYTEORDERI386_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SA_FAMILY_T = 0
+ X_SIZE_T = 0
+ X_SOCKLEN_T = 0
+ X_SSIZE_T = 0
+ X_SS_MAXSIZE = 128
+ X_STRUCT_IOVEC = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ Pseudo_AF_HDRCMPLT = 35
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1985, 1986, 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $
+// NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+// support for mandatory and extensible security protections. This notice
+// is included in support of clause 2.2 (b) of the Apple Public License,
+// Version 2.0.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2008 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:289:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:293:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:303:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:303:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:309:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:315:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:333:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:420:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:440:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// 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
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:546:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:587:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ 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
new file mode 100644
index 00000000..4a743258
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go
@@ -0,0 +1,5802 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 28
+ AF_ECMA = 8
+ AF_HYLINK = 15
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 30
+ AF_IPX = 23
+ AF_ISDN = 28
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 41
+ AF_NATM = 31
+ AF_NDRV = 27
+ AF_NETBIOS = 33
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PPP = 34
+ AF_PUP = 4
+ AF_RESERVED_36 = 36
+ AF_ROUTE = 17
+ AF_SIP = 24
+ AF_SNA = 11
+ AF_SYSTEM = 32
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_UTUN = 38
+ AF_VSOCK = 40
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CONNECT_DATA_AUTHENTICATED = 0x4
+ CONNECT_DATA_IDEMPOTENT = 0x2
+ CONNECT_RESUME_ON_READ_WRITE = 0x1
+ FD_SETSIZE = 1024
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ KEV_DL_ADDMULTI = 7
+ KEV_DL_AWDL_RESTRICTED = 26
+ KEV_DL_AWDL_UNRESTRICTED = 27
+ KEV_DL_DELMULTI = 8
+ KEV_DL_IFCAP_CHANGED = 19
+ KEV_DL_IFDELEGATE_CHANGED = 25
+ KEV_DL_IF_ATTACHED = 9
+ KEV_DL_IF_DETACHED = 11
+ KEV_DL_IF_DETACHING = 10
+ KEV_DL_IF_IDLE_ROUTE_REFCNT = 18
+ KEV_DL_ISSUES = 24
+ KEV_DL_LINK_ADDRESS_CHANGED = 16
+ KEV_DL_LINK_OFF = 12
+ KEV_DL_LINK_ON = 13
+ KEV_DL_LINK_QUALITY_METRIC_CHANGED = 20
+ KEV_DL_LOW_POWER_MODE_CHANGED = 30
+ KEV_DL_NODE_ABSENCE = 22
+ KEV_DL_NODE_PRESENCE = 21
+ KEV_DL_PRIMARY_ELECTED = 23
+ KEV_DL_PROTO_ATTACHED = 14
+ KEV_DL_PROTO_DETACHED = 15
+ KEV_DL_QOS_MODE_CHANGED = 29
+ KEV_DL_RRC_STATE_CHANGED = 28
+ KEV_DL_SIFFLAGS = 1
+ KEV_DL_SIFGENERIC = 6
+ KEV_DL_SIFMEDIA = 5
+ KEV_DL_SIFMETRICS = 2
+ KEV_DL_SIFMTU = 3
+ KEV_DL_SIFPHYS = 4
+ KEV_DL_SUBCLASS = 2
+ KEV_DL_WAKEFLAGS_CHANGED = 17
+ KEV_INET6_ADDR_DELETED = 3
+ KEV_INET6_CHANGED_ADDR = 2
+ KEV_INET6_DEFROUTER = 6
+ KEV_INET6_NEW_LL_ADDR = 4
+ KEV_INET6_NEW_RTADV_ADDR = 5
+ KEV_INET6_NEW_USER_ADDR = 1
+ KEV_INET6_REQUEST_NAT64_PREFIX = 7
+ KEV_INET6_SUBCLASS = 6
+ KEV_INET_ADDR_DELETED = 3
+ KEV_INET_ARPCOLLISION = 7
+ KEV_INET_ARPRTRALIVE = 10
+ KEV_INET_ARPRTRFAILURE = 9
+ KEV_INET_CHANGED_ADDR = 2
+ KEV_INET_NEW_ADDR = 1
+ KEV_INET_PORTINUSE = 8
+ KEV_INET_SIFBRDADDR = 5
+ KEV_INET_SIFDSTADDR = 4
+ KEV_INET_SIFNETMASK = 6
+ KEV_INET_SUBCLASS = 1
+ LITTLE_ENDIAN = 1234
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOF = 0x100
+ MSG_EOR = 0x8
+ MSG_FLUSH = 0x400
+ MSG_HAVEMORE = 0x2000
+ MSG_HOLD = 0x800
+ MSG_NEEDSA = 0x10000
+ MSG_NOSIGNAL = 0x80000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_RCVMORE = 0x4000
+ MSG_SEND = 0x1000
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MSG_WAITSTREAM = 0x200
+ NBBY = 8
+ NETSVC_MRKNG_LVL_L2 = 1
+ NETSVC_MRKNG_LVL_L3L2_ALL = 2
+ NETSVC_MRKNG_LVL_L3L2_BK = 3
+ NETSVC_MRKNG_UNKNOWN = 0
+ NET_MAXID = 41
+ NET_RT_DUMP = 1
+ NET_RT_DUMP2 = 7
+ NET_RT_FLAGS = 2
+ NET_RT_FLAGS_PRIV = 10
+ NET_RT_IFLIST = 3
+ NET_RT_IFLIST2 = 6
+ NET_RT_MAXID = 11
+ NET_RT_STAT = 4
+ NET_RT_TRASH = 5
+ NET_SERVICE_TYPE_AV = 6
+ NET_SERVICE_TYPE_BE = 0
+ NET_SERVICE_TYPE_BK = 1
+ NET_SERVICE_TYPE_OAM = 7
+ NET_SERVICE_TYPE_RD = 8
+ NET_SERVICE_TYPE_RV = 5
+ NET_SERVICE_TYPE_SIG = 2
+ NET_SERVICE_TYPE_VI = 3
+ NET_SERVICE_TYPE_VO = 4
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 30
+ PF_IPX = 23
+ PF_ISDN = 28
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 41
+ PF_NATM = 31
+ PF_NDRV = 27
+ PF_NETBIOS = 33
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PPP = 34
+ PF_PUP = 4
+ PF_RESERVED_36 = 36
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 24
+ PF_SNA = 11
+ PF_SYSTEM = 32
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_UTUN = 38
+ PF_VSOCK = 40
+ PF_XTP = 19
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ SAE_ASSOCID_ANY = 0
+ SAE_CONNID_ANY = 0
+ SCM_CREDS = 0x03
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIMESTAMP_MONOTONIC = 0x04
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SONPX_SETOPTSHUT = 0x000000001
+ SO_ACCEPTCONN = 0x0002
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DONTROUTE = 0x0010
+ SO_DONTTRUNC = 0x2000
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LABEL = 0x1010
+ SO_LINGER = 0x0080
+ SO_LINGER_SEC = 0x1080
+ SO_NETSVC_MARKING_LEVEL = 0x1119
+ SO_NET_SERVICE_TYPE = 0x1116
+ SO_NKE = 0x1021
+ SO_NOADDRERR = 0x1023
+ SO_NOSIGPIPE = 0x1022
+ SO_NOTIFYCONFLICT = 0x1026
+ SO_NP_EXTENSIONS = 0x1083
+ SO_NREAD = 0x1020
+ SO_NUMRCVPKT = 0x1112
+ SO_NWRITE = 0x1024
+ SO_OOBINLINE = 0x0100
+ SO_PEERLABEL = 0x1011
+ SO_RANDOMPORT = 0x1082
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_REUSESHAREUID = 0x1025
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x0400
+ SO_TIMESTAMP_MONOTONIC = 0x0800
+ SO_TYPE = 0x1008
+ SO_UPCALLCLOSEWAIT = 0x1027
+ SO_USELOOPBACK = 0x0040
+ SO_WANTMORE = 0x4000
+ SO_WANTOOBFLAG = 0x8000
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM__ENDIAN_H_ = 0
+ X_ARM__PARAM_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__PARAM_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NET_NETKEV_H_ = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SA_FAMILY_T = 0
+ X_SIZE_T = 0
+ X_SOCKLEN_T = 0
+ X_SSIZE_T = 0
+ X_SS_MAXSIZE = 128
+ X_STDINT_H_ = 0
+ X_STRUCT_IOVEC = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 0
+ Pseudo_AF_HDRCMPLT = 35
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+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 */
+
+// Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1982, 1985, 1986, 1988, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $
+// NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+// support for mandatory and extensible security protections. This notice
+// is included in support of clause 2.2 (b) of the Apple Public License,
+// Version 2.0.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Define _NOQUAD if the compiler does NOT support 64-bit integers.
+// #define _NOQUAD
+
+// Define the order of 32-bit words in 64-bit words.
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Macros for network/external number representation conversion.
+
+// Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header is normally included from <libkern/OSByteOrder.h>. However,
+// <sys/_endian.h> also includes this in the case of little-endian
+// architectures, so that we can map OSByteOrder routines to the hton* and ntoh*
+// macros. This results in the asymmetry below; we only include
+// <libkern/arch/_OSByteOrder.h> for little-endian architectures.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Macros for swapping constant values in the preprocessing stage.
+
+// Copyright (c) 1999-2007 Apple Inc. All rights reserved.
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Round p (pointer or byte index) up to a correctly-aligned value for all
+// data types (int, long, ...). The result is unsigned int and must be
+// cast to any desired pointer type.
+
+// Copyright (c) 2016-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Kernel event subclass identifiers for KEV_NETWORK_CLASS
+// KEV_INET_SUBCLASS event codes
+
+// Define Data-Link event subclass, and associated
+// events.
+
+// KEV_INET6_SUBCLASS event codes
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Sa_family_t = X__uint8_t /* _sa_family_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// XXX Not explicitly defined by POSIX, but function return types are
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The iovec structure shall be defined as described in <sys/uio.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec_t.h:31:1 */
+
+// Types
+
+// Option flags per-socket.
+// (ATOMIC proto)
+
+// Additional options, not kept in so_options.
+
+// When adding new socket-options, you need to make sure MPTCP supports these as well!
+
+// Network Service Type for option SO_NET_SERVICE_TYPE
+//
+// The vast majority of sockets should use Best Effort that is the default
+// Network Service Type. Other Network Service Types have to be used only if
+// the traffic actually matches the description of the Network Service Type.
+//
+// Network Service Types do not represent priorities but rather describe
+// different categories of delay, jitter and loss parameters.
+// Those parameters may influence protocols from layer 4 protocols like TCP
+// to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+// how the traffic is queued and scheduled by the host networking stack and
+// by other entities on the network like switches and routers. For example
+// for Wi-Fi, the Network Service Type can select the marking of the
+// layer 2 packet with the appropriate WMM Access Category.
+//
+// There is no point in attempting to game the system and use
+// a Network Service Type that does not correspond to the actual
+// traffic characteristic but one that seems to have a higher precedence.
+// The reason is that for service classes that have lower tolerance
+// for delay and jitter, the queues size is lower than for service
+// classes that are more tolerant to delay and jitter.
+//
+// For example using a voice service type for bulk data transfer will lead
+// to disastrous results as soon as congestion happens because the voice
+// queue overflows and packets get dropped. This is not only bad for the bulk
+// data transfer but it is also bad for VoIP apps that legitimately are using
+// the voice service type.
+//
+// The characteristics of the Network Service Types are based on the service
+// classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+// Classes"
+//
+// When system detects the outgoing interface belongs to a DiffServ domain
+// that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+// IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+// that corresponds to Network Service Type.
+//
+// NET_SERVICE_TYPE_BE
+// "Best Effort", unclassified/standard. This is the default service
+// class and cover the majority of the traffic.
+//
+// NET_SERVICE_TYPE_BK
+// "Background", high delay tolerant, loss tolerant. elastic flow,
+// variable size & long-lived. E.g: non-interactive network bulk transfer
+// like synching or backup.
+//
+// NET_SERVICE_TYPE_RD
+// "Responsive Data", a notch higher than "Best Effort", medium delay
+// tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+// instant messaging, for which there is a sense of interactivity and
+// urgency (user waiting for output).
+//
+// NET_SERVICE_TYPE_OAM
+// "Operations, Administration, and Management", medium delay tolerant,
+// low-medium loss tolerant, elastic & inelastic flows, variable size.
+// E.g. VPN tunnels.
+//
+// NET_SERVICE_TYPE_AV
+// "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+// loss tolerant, elastic flow, constant packet interval, variable rate
+// and size. E.g. video and audio playback with buffering.
+//
+// NET_SERVICE_TYPE_RV
+// "Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+// loss tolerant, elastic flow, variable packet interval, rate and size.
+// E.g. screen sharing.
+//
+// NET_SERVICE_TYPE_VI
+// "Interactive Video", low delay tolerant, low-medium loss tolerant,
+// elastic flow, constant packet interval, variable rate & size. E.g.
+// video telephony.
+//
+// NET_SERVICE_TYPE_SIG
+// "Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+// jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+//
+// NET_SERVICE_TYPE_VO
+// "Interactive Voice", very low delay tolerant, very low loss tolerant,
+// inelastic flow, constant packet rate, somewhat fixed size.
+// E.g. VoIP.
+
+// These are supported values for SO_NETSVC_MARKING_LEVEL
+
+type Sae_associd_t = X__uint32_t /* socket.h:293:20 */
+
+type Sae_connid_t = X__uint32_t /* socket.h:297:20 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints = struct {
+ Fsae_srcif uint32
+ F__ccgo_pad1 [4]byte
+ Fsae_srcaddr uintptr
+ Fsae_srcaddrlen Socklen_t
+ F__ccgo_pad2 [4]byte
+ Fsae_dstaddr uintptr
+ Fsae_dstaddrlen Socklen_t
+ F__ccgo_pad3 [4]byte
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:307:9 */
+
+// connectx() flag parameters
+
+// sockaddr endpoints
+type Sa_endpoints_t = Sa_endpoints /* socket.h:313:3 */
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:319:1 */
+
+// Structure to control non-portable Sockets extension to POSIX
+type So_np_extensions = struct {
+ Fnpx_flags U_int32_t
+ Fnpx_mask U_int32_t
+} /* socket.h:337:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family X__uint16_t
+ Fsp_protocol X__uint16_t
+} /* socket.h:425:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+// [XSI] sockaddr_storage
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:445:1 */
+
+// Protocol families, same as address families for now.
+
+// These do not have socket-layer support:
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// 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
+// Allows read access non-local host's MAC address
+// if the process has neighbor cache entitlement.
+
+// Maximum queue length specifiable by listen.
+
+// [XSI] Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:552:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:600:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// Given pointer to struct cmsghdr, return pointer to next cmsghdr
+// RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:691:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go b/vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go
new file mode 100644
index 00000000..c92c62a1
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go
@@ -0,0 +1,1146 @@
+// 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_freebsd_386.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 = 35
+ AF_ATM = 30
+ AF_BLUETOOTH = 36
+ 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_HYLINK = 15
+ AF_HYPERV = 43
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 28
+ AF_INET6_SDP = 42
+ AF_INET_SDP = 40
+ AF_IPX = 23
+ AF_ISDN = 26
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 43
+ AF_NATM = 29
+ AF_NETBIOS = 6
+ AF_NETGRAPH = 32
+ AF_OSI = 7
+ AF_PUP = 4
+ AF_ROUTE = 17
+ AF_SCLUSTER = 34
+ AF_SIP = 24
+ AF_SLOW = 33
+ AF_SNA = 11
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VENDOR00 = 39
+ AF_VENDOR01 = 41
+ AF_VENDOR03 = 45
+ AF_VENDOR04 = 47
+ AF_VENDOR05 = 49
+ AF_VENDOR06 = 51
+ AF_VENDOR07 = 53
+ AF_VENDOR08 = 55
+ AF_VENDOR09 = 57
+ AF_VENDOR10 = 59
+ AF_VENDOR11 = 61
+ AF_VENDOR12 = 63
+ AF_VENDOR13 = 65
+ AF_VENDOR14 = 67
+ AF_VENDOR15 = 69
+ AF_VENDOR16 = 71
+ AF_VENDOR17 = 73
+ AF_VENDOR18 = 75
+ AF_VENDOR19 = 77
+ AF_VENDOR20 = 79
+ AF_VENDOR21 = 81
+ AF_VENDOR22 = 83
+ AF_VENDOR23 = 85
+ AF_VENDOR24 = 87
+ AF_VENDOR25 = 89
+ AF_VENDOR26 = 91
+ AF_VENDOR27 = 93
+ AF_VENDOR28 = 95
+ AF_VENDOR29 = 97
+ AF_VENDOR30 = 99
+ AF_VENDOR31 = 101
+ AF_VENDOR32 = 103
+ AF_VENDOR33 = 105
+ AF_VENDOR34 = 107
+ AF_VENDOR35 = 109
+ AF_VENDOR36 = 111
+ AF_VENDOR37 = 113
+ AF_VENDOR38 = 115
+ AF_VENDOR39 = 117
+ AF_VENDOR40 = 119
+ AF_VENDOR41 = 121
+ AF_VENDOR42 = 123
+ AF_VENDOR43 = 125
+ AF_VENDOR44 = 127
+ AF_VENDOR45 = 129
+ AF_VENDOR46 = 131
+ AF_VENDOR47 = 133
+ CMGROUP_MAX = 16
+ MSG_CMSG_CLOEXEC = 0x00040000
+ MSG_COMPAT = 0x00008000
+ MSG_CTRUNC = 0x00000020
+ MSG_DONTROUTE = 0x00000004
+ MSG_DONTWAIT = 0x00000080
+ MSG_EOF = 0x00000100
+ MSG_EOR = 0x00000008
+ MSG_NBIO = 0x00004000
+ MSG_NOSIGNAL = 0x00020000
+ MSG_NOTIFICATION = 0x00002000
+ MSG_OOB = 0x00000001
+ MSG_PEEK = 0x00000002
+ MSG_TRUNC = 0x00000010
+ MSG_WAITALL = 0x00000040
+ MSG_WAITFORONE = 0x00080000
+ NET_RT_DUMP = 1
+ NET_RT_FLAGS = 2
+ NET_RT_IFLIST = 3
+ NET_RT_IFLISTL = 5
+ NET_RT_IFMALIST = 4
+ NET_RT_NHGRP = 7
+ NET_RT_NHOP = 6
+ PF_APPLETALK = 16
+ PF_ARP = 35
+ PF_ATM = 30
+ PF_BLUETOOTH = 36
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IEEE80211 = 37
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 28
+ PF_INET6_SDP = 42
+ PF_INET_SDP = 40
+ PF_IPX = 23
+ PF_ISDN = 26
+ PF_ISO = 7
+ PF_KEY = 27
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 43
+ PF_NATM = 29
+ PF_NETBIOS = 6
+ PF_NETGRAPH = 32
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PUP = 4
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SCLUSTER = 34
+ PF_SIP = 24
+ PF_SLOW = 33
+ PF_SNA = 11
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_XTP = 19
+ PRU_FLUSH_RD = 0
+ PRU_FLUSH_RDWR = 2
+ PRU_FLUSH_WR = 1
+ SCM_BINTIME = 0x04
+ SCM_CREDS = 0x03
+ SCM_CREDS2 = 0x08
+ SCM_MONOTONIC = 0x06
+ SCM_REALTIME = 0x05
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIME_INFO = 0x07
+ SF_MNOWAIT = 0x00000002
+ SF_NOCACHE = 0x00000010
+ SF_NODISKIO = 0x00000001
+ SF_SYNC = 0x00000004
+ SF_USER_READAHEAD = 0x00000008
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SOCK_CLOEXEC = 0x10000000
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_NONBLOCK = 0x20000000
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SO_ACCEPTCONN = 0x00000002
+ SO_ACCEPTFILTER = 0x00001000
+ SO_BINTIME = 0x00002000
+ SO_BROADCAST = 0x00000020
+ SO_DEBUG = 0x00000001
+ SO_DOMAIN = 0x1019
+ SO_DONTROUTE = 0x00000010
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x00000008
+ SO_LABEL = 0x1009
+ SO_LINGER = 0x00000080
+ SO_LISTENINCQLEN = 0x1013
+ SO_LISTENQLEN = 0x1012
+ SO_LISTENQLIMIT = 0x1011
+ SO_MAX_PACING_RATE = 0x1018
+ SO_NOSIGPIPE = 0x00000800
+ SO_NO_DDP = 0x00008000
+ SO_NO_OFFLOAD = 0x00004000
+ SO_OOBINLINE = 0x00000100
+ SO_PEERLABEL = 0x1010
+ SO_PROTOCOL = 0x1016
+ SO_PROTOTYPE = 4118
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_RERROR = 0x00020000
+ SO_REUSEADDR = 0x00000004
+ SO_REUSEPORT = 0x00000200
+ SO_REUSEPORT_LB = 0x00010000
+ SO_SETFIB = 0x1014
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x00000400
+ SO_TS_BINTIME = 1
+ SO_TS_CLOCK = 0x1017
+ SO_TS_CLOCK_MAX = 3
+ SO_TS_DEFAULT = 0
+ SO_TS_MONOTONIC = 3
+ SO_TS_REALTIME = 2
+ SO_TS_REALTIME_MICRO = 0
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x00000040
+ SO_USER_COOKIE = 0x1015
+ SO_VENDOR = 0x80000000
+ ST_INFO_HW = 0x0001
+ ST_INFO_HW_HPREC = 0x0002
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T_DECLARED = 0
+ X_PID_T_DECLARED = 0
+ X_SA_FAMILY_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SOCKLEN_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SS_MAXSIZE = 128
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS__IOVEC_H_ = 0
+ X_SYS__SOCKADDR_STORAGE_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_X86_INCLUDE__ALIGN_H_ = 0
+ I386 = 1
+ Pseudo_AF_HDRCMPLT = 31
+ Pseudo_AF_KEY = 27
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec.h:45:1 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2001 David E. O'Brien
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// William Jolitz.
+//
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)param.h 5.8 (Berkeley) 6/28/91
+// $FreeBSD$
+
+// Round p (pointer or byte index) up to a correctly-aligned value
+// for all data types (int, long, ...). The result is unsigned int
+// and must be cast to any desired pointer type.
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+type Gid_t = X__gid_t /* socket.h:52:18 */
+
+type Off_t = X__off_t /* socket.h:57:18 */
+
+type Pid_t = X__pid_t /* socket.h:62:18 */
+
+type Sa_family_t = X__sa_family_t /* socket.h:68:23 */
+
+type Socklen_t = X__socklen_t /* socket.h:73:21 */
+
+type Ssize_t = X__ssize_t /* socket.h:78:19 */
+
+type Uid_t = X__uid_t /* socket.h:84:18 */
+
+type Uint32_t = X__uint32_t /* socket.h:90:20 */
+
+type Uintptr_t = X__uintptr_t /* socket.h:95:21 */
+
+// Types
+
+// Creation flags, OR'ed into socket() and socketpair() type argument.
+
+// Option flags per-socket.
+
+// Additional options, not kept in so_options.
+
+// Space reserved for new socket options added by third-party vendors.
+// This range applies to all socket option levels. New socket options
+// in FreeBSD should always use an option value less than SO_VENDOR.
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:199:1 */
+
+type Accept_filter_arg = struct {
+ Faf_name [16]int8
+ Faf_arg [240]int8
+} /* socket.h:205:1 */
+
+// Level number for (get/set)sockopt() to apply to socket itself.
+
+// Address families.
+// When allocating a new AF_ constant, please only allocate
+// even numbered constants for FreeBSD until 134 as odd numbered AF_
+// constants 39-133 are now reserved for vendors.
+
+// Structure used by kernel to store most
+// addresses.
+type Sockaddr = struct {
+ Fsa_len uint8
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:329:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family uint16
+ Fsp_protocol uint16
+} /* socket.h:341:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD$
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+type Sockaddr_storage = struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* _sockaddr_storage.h:48:1 */
+
+// Protocol families, same as address families for now.
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families.
+
+// 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.
+
+// Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:433:1 */
+
+// 0x00000200 unused
+// 0x00000400 unused
+// 0x00000800 unused
+// 0x00001000 unused
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:482:1 */
+
+// While we may have more groups than this, the cmsgcred struct must
+// be able to fit in an mbuf and we have historically supported a
+// maximum of 16 groups.
+
+// Credentials structure, used to verify the identity of a peer
+// process that has sent us a message. This is allocated by the
+// peer process but filled in by the kernel. This prevents the
+// peer from lying about its identity. (Note that cmcred_groups[0]
+// is the effective GID.)
+type Cmsgcred = struct {
+ Fcmcred_pid Pid_t
+ Fcmcred_uid Uid_t
+ Fcmcred_euid Uid_t
+ Fcmcred_gid Gid_t
+ Fcmcred_ngroups int16
+ F__ccgo_pad1 [2]byte
+ Fcmcred_groups [16]Gid_t
+} /* socket.h:504:1 */
+
+// Socket credentials (LOCAL_CREDS).
+type Sockcred = struct {
+ Fsc_uid Uid_t
+ Fsc_euid Uid_t
+ Fsc_gid Gid_t
+ Fsc_egid Gid_t
+ Fsc_ngroups int32
+ Fsc_groups [1]Gid_t
+} /* socket.h:516:1 */
+
+// Compute size of a sockcred structure with groups.
+
+// Socket credentials (LOCAL_CREDS_PERSISTENT).
+type Sockcred2 = struct {
+ Fsc_version int32
+ Fsc_pid Pid_t
+ Fsc_uid Uid_t
+ Fsc_euid Uid_t
+ Fsc_gid Gid_t
+ Fsc_egid Gid_t
+ Fsc_ngroups int32
+ Fsc_groups [1]Gid_t
+} /* socket.h:534:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// given pointer to struct cmsghdr, return pointer to next cmsghdr
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+type Sock_timestamp_info = struct {
+ Fst_info_flags X__uint32_t
+ Fst_info_pad0 X__uint32_t
+ Fst_info_rsv [7]X__uint64_t
+} /* socket.h:593:1 */
+
+// 4.3 compat sockaddr, move to compat file later
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]int8
+} /* socket.h:608:1 */
+
+// 4.3-compat message header (move to compat file later).
+type Omsghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen int32
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ Fmsg_accrights uintptr
+ Fmsg_accrightslen int32
+} /* socket.h:616:1 */
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// for SCTP
+// we cheat and use the SHUT_XX defines for these
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ Fheaders uintptr
+ Fhdr_cnt int32
+ Ftrailers uintptr
+ Ftrl_cnt int32
+} /* socket.h:645:1 */
+
+// Sendfile-specific flag(s)
+
+// Sendmmsg/recvmmsg specific structure(s)
+type Mmsghdr = struct {
+ Fmsg_hdr struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+ }
+ Fmsg_len Ssize_t
+} /* socket.h:669: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
new file mode 100644
index 00000000..5085f727
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go
@@ -0,0 +1,1159 @@
+// 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_freebsd_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 = 35
+ AF_ATM = 30
+ AF_BLUETOOTH = 36
+ 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_HYLINK = 15
+ AF_HYPERV = 43
+ AF_IEEE80211 = 37
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 28
+ AF_INET6_SDP = 42
+ AF_INET_SDP = 40
+ AF_IPX = 23
+ AF_ISDN = 26
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 43
+ AF_NATM = 29
+ AF_NETBIOS = 6
+ AF_NETGRAPH = 32
+ AF_OSI = 7
+ AF_PUP = 4
+ AF_ROUTE = 17
+ AF_SCLUSTER = 34
+ AF_SIP = 24
+ AF_SLOW = 33
+ AF_SNA = 11
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VENDOR00 = 39
+ AF_VENDOR01 = 41
+ AF_VENDOR03 = 45
+ AF_VENDOR04 = 47
+ AF_VENDOR05 = 49
+ AF_VENDOR06 = 51
+ AF_VENDOR07 = 53
+ AF_VENDOR08 = 55
+ AF_VENDOR09 = 57
+ AF_VENDOR10 = 59
+ AF_VENDOR11 = 61
+ AF_VENDOR12 = 63
+ AF_VENDOR13 = 65
+ AF_VENDOR14 = 67
+ AF_VENDOR15 = 69
+ AF_VENDOR16 = 71
+ AF_VENDOR17 = 73
+ AF_VENDOR18 = 75
+ AF_VENDOR19 = 77
+ AF_VENDOR20 = 79
+ AF_VENDOR21 = 81
+ AF_VENDOR22 = 83
+ AF_VENDOR23 = 85
+ AF_VENDOR24 = 87
+ AF_VENDOR25 = 89
+ AF_VENDOR26 = 91
+ AF_VENDOR27 = 93
+ AF_VENDOR28 = 95
+ AF_VENDOR29 = 97
+ AF_VENDOR30 = 99
+ AF_VENDOR31 = 101
+ AF_VENDOR32 = 103
+ AF_VENDOR33 = 105
+ AF_VENDOR34 = 107
+ AF_VENDOR35 = 109
+ AF_VENDOR36 = 111
+ AF_VENDOR37 = 113
+ AF_VENDOR38 = 115
+ AF_VENDOR39 = 117
+ AF_VENDOR40 = 119
+ AF_VENDOR41 = 121
+ AF_VENDOR42 = 123
+ AF_VENDOR43 = 125
+ AF_VENDOR44 = 127
+ AF_VENDOR45 = 129
+ AF_VENDOR46 = 131
+ AF_VENDOR47 = 133
+ CMGROUP_MAX = 16
+ MSG_CMSG_CLOEXEC = 0x00040000
+ MSG_COMPAT = 0x00008000
+ MSG_CTRUNC = 0x00000020
+ MSG_DONTROUTE = 0x00000004
+ MSG_DONTWAIT = 0x00000080
+ MSG_EOF = 0x00000100
+ MSG_EOR = 0x00000008
+ MSG_NBIO = 0x00004000
+ MSG_NOSIGNAL = 0x00020000
+ MSG_NOTIFICATION = 0x00002000
+ MSG_OOB = 0x00000001
+ MSG_PEEK = 0x00000002
+ MSG_TRUNC = 0x00000010
+ MSG_WAITALL = 0x00000040
+ MSG_WAITFORONE = 0x00080000
+ NET_RT_DUMP = 1
+ NET_RT_FLAGS = 2
+ NET_RT_IFLIST = 3
+ NET_RT_IFLISTL = 5
+ NET_RT_IFMALIST = 4
+ NET_RT_NHGRP = 7
+ NET_RT_NHOP = 6
+ PF_APPLETALK = 16
+ PF_ARP = 35
+ PF_ATM = 30
+ PF_BLUETOOTH = 36
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_HYLINK = 15
+ PF_IEEE80211 = 37
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 28
+ PF_INET6_SDP = 42
+ PF_INET_SDP = 40
+ PF_IPX = 23
+ PF_ISDN = 26
+ PF_ISO = 7
+ PF_KEY = 27
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 43
+ PF_NATM = 29
+ PF_NETBIOS = 6
+ PF_NETGRAPH = 32
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PUP = 4
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SCLUSTER = 34
+ PF_SIP = 24
+ PF_SLOW = 33
+ PF_SNA = 11
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_XTP = 19
+ PRU_FLUSH_RD = 0
+ PRU_FLUSH_RDWR = 2
+ PRU_FLUSH_WR = 1
+ SCM_BINTIME = 0x04
+ SCM_CREDS = 0x03
+ SCM_CREDS2 = 0x08
+ SCM_MONOTONIC = 0x06
+ SCM_REALTIME = 0x05
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x02
+ SCM_TIME_INFO = 0x07
+ SF_MNOWAIT = 0x00000002
+ SF_NOCACHE = 0x00000010
+ SF_NODISKIO = 0x00000001
+ SF_SYNC = 0x00000004
+ SF_USER_READAHEAD = 0x00000008
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SOCK_CLOEXEC = 0x10000000
+ SOCK_DGRAM = 2
+ SOCK_MAXADDRLEN = 255
+ SOCK_NONBLOCK = 0x20000000
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SO_ACCEPTCONN = 0x00000002
+ SO_ACCEPTFILTER = 0x00001000
+ SO_BINTIME = 0x00002000
+ SO_BROADCAST = 0x00000020
+ SO_DEBUG = 0x00000001
+ SO_DOMAIN = 0x1019
+ SO_DONTROUTE = 0x00000010
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x00000008
+ SO_LABEL = 0x1009
+ SO_LINGER = 0x00000080
+ SO_LISTENINCQLEN = 0x1013
+ SO_LISTENQLEN = 0x1012
+ SO_LISTENQLIMIT = 0x1011
+ SO_MAX_PACING_RATE = 0x1018
+ SO_NOSIGPIPE = 0x00000800
+ SO_NO_DDP = 0x00008000
+ SO_NO_OFFLOAD = 0x00004000
+ SO_OOBINLINE = 0x00000100
+ SO_PEERLABEL = 0x1010
+ SO_PROTOCOL = 0x1016
+ SO_PROTOTYPE = 4118
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x00000004
+ SO_REUSEPORT = 0x00000200
+ SO_REUSEPORT_LB = 0x00010000
+ SO_SETFIB = 0x1014
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x00000400
+ SO_TS_BINTIME = 1
+ SO_TS_CLOCK = 0x1017
+ SO_TS_CLOCK_MAX = 3
+ SO_TS_DEFAULT = 0
+ SO_TS_MONOTONIC = 3
+ SO_TS_REALTIME = 2
+ SO_TS_REALTIME_MICRO = 0
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x00000040
+ SO_USER_COOKIE = 0x1015
+ SO_VENDOR = 0x80000000
+ ST_INFO_HW = 0x0001
+ ST_INFO_HW_HPREC = 0x0002
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T_DECLARED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T_DECLARED = 0
+ X_PID_T_DECLARED = 0
+ X_SA_FAMILY_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SOCKLEN_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SS_MAXSIZE = 128
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS__IOVEC_H_ = 0
+ X_SYS__SOCKADDR_STORAGE_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UID_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_X86_INCLUDE__ALIGN_H_ = 0
+ Pseudo_AF_HDRCMPLT = 31
+ Pseudo_AF_KEY = 27
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* _iovec.h:45:1 */
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2001 David E. O'Brien
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// William Jolitz.
+//
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)param.h 5.8 (Berkeley) 6/28/91
+// $FreeBSD$
+
+// Round p (pointer or byte index) up to a correctly-aligned value
+// for all data types (int, long, ...). The result is unsigned int
+// and must be cast to any desired pointer type.
+
+// Definitions related to sockets: types, address families, options.
+
+// Data types.
+type Gid_t = X__gid_t /* socket.h:52:18 */
+
+type Off_t = X__off_t /* socket.h:57:18 */
+
+type Pid_t = X__pid_t /* socket.h:62:18 */
+
+type Sa_family_t = X__sa_family_t /* socket.h:68:23 */
+
+type Socklen_t = X__socklen_t /* socket.h:73:21 */
+
+type Ssize_t = X__ssize_t /* socket.h:78:19 */
+
+type Uid_t = X__uid_t /* socket.h:84:18 */
+
+type Uint32_t = X__uint32_t /* socket.h:90:20 */
+
+type Uintptr_t = X__uintptr_t /* socket.h:95:21 */
+
+// Types
+
+// Creation flags, OR'ed into socket() and socketpair() type argument.
+
+// Option flags per-socket.
+
+// Additional options, not kept in so_options.
+
+// Space reserved for new socket options added by third-party vendors.
+// This range applies to all socket option levels. New socket options
+// in FreeBSD should always use an option value less than SO_VENDOR.
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:198:1 */
+
+type Accept_filter_arg = struct {
+ Faf_name [16]int8
+ Faf_arg [240]int8
+} /* socket.h:204:1 */
+
+// Level number for (get/set)sockopt() to apply to socket itself.
+
+// Address families.
+// When allocating a new AF_ constant, please only allocate
+// even numbered constants for FreeBSD until 134 as odd numbered AF_
+// constants 39-133 are now reserved for vendors.
+
+// Structure used by kernel to store most
+// addresses.
+type Sockaddr = struct {
+ Fsa_len uint8
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:328:1 */
+
+// Structure used by kernel to pass protocol
+// information in raw sockets.
+type Sockproto = struct {
+ Fsp_family uint16
+ Fsp_protocol uint16
+} /* socket.h:340:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+// $FreeBSD$
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+type Sockaddr_storage = struct {
+ Fss_len uint8
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* _sockaddr_storage.h:48:1 */
+
+// Protocol families, same as address families for now.
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families.
+
+// 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.
+
+// Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:432:1 */
+
+// 0x00000200 unused
+// 0x00000400 unused
+// 0x00000800 unused
+// 0x00001000 unused
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:481:1 */
+
+// While we may have more groups than this, the cmsgcred struct must
+// be able to fit in an mbuf and we have historically supported a
+// maximum of 16 groups.
+
+// Credentials structure, used to verify the identity of a peer
+// process that has sent us a message. This is allocated by the
+// peer process but filled in by the kernel. This prevents the
+// peer from lying about its identity. (Note that cmcred_groups[0]
+// is the effective GID.)
+type Cmsgcred = struct {
+ Fcmcred_pid Pid_t
+ Fcmcred_uid Uid_t
+ Fcmcred_euid Uid_t
+ Fcmcred_gid Gid_t
+ Fcmcred_ngroups int16
+ F__ccgo_pad1 [2]byte
+ Fcmcred_groups [16]Gid_t
+} /* socket.h:503:1 */
+
+// Socket credentials (LOCAL_CREDS).
+type Sockcred = struct {
+ Fsc_uid Uid_t
+ Fsc_euid Uid_t
+ Fsc_gid Gid_t
+ Fsc_egid Gid_t
+ Fsc_ngroups int32
+ Fsc_groups [1]Gid_t
+} /* socket.h:515:1 */
+
+// Compute size of a sockcred structure with groups.
+
+// Socket credentials (LOCAL_CREDS_PERSISTENT).
+type Sockcred2 = struct {
+ Fsc_version int32
+ Fsc_pid Pid_t
+ Fsc_uid Uid_t
+ Fsc_euid Uid_t
+ Fsc_gid Gid_t
+ Fsc_egid Gid_t
+ Fsc_ngroups int32
+ Fsc_groups [1]Gid_t
+} /* socket.h:533:1 */
+
+// given pointer to struct cmsghdr, return pointer to data
+
+// given pointer to struct cmsghdr, return pointer to next cmsghdr
+
+// RFC 2292 requires to check msg_controllen, in case that the kernel returns
+// an empty list for some reasons.
+
+// RFC 2292 additions
+
+// "Socket"-level control message types:
+
+type Sock_timestamp_info = struct {
+ Fst_info_flags X__uint32_t
+ Fst_info_pad0 X__uint32_t
+ Fst_info_rsv [7]X__uint64_t
+} /* socket.h:592:1 */
+
+// 4.3 compat sockaddr, move to compat file later
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]int8
+} /* socket.h:607:1 */
+
+// 4.3-compat message header (move to compat file later).
+type Omsghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen int32
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_accrights uintptr
+ Fmsg_accrightslen int32
+ F__ccgo_pad3 [4]byte
+} /* socket.h:615:1 */
+
+// howto arguments for shutdown(2), specified by Posix.1g.
+
+// for SCTP
+// we cheat and use the SHUT_XX defines for these
+
+// sendfile(2) header/trailer struct
+type Sf_hdtr = struct {
+ 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)
+
+// Sendmmsg/recvmmsg specific structure(s)
+type Mmsghdr = struct {
+ Fmsg_hdr struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+ }
+ Fmsg_len Ssize_t
+} /* socket.h:668:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_386.go b/vendor/modernc.org/libc/sys/socket/socket_linux_386.go
new file mode 100644
index 00000000..999c4683
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_386.go
@@ -0,0 +1,1806 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ SO_RCVBUF = 8
+ SO_RCVBUFFORCE = 33
+ SO_RCVLOWAT = 18
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
+ SO_REUSEADDR = 2
+ SO_REUSEPORT = 15
+ SO_RXQ_OVFL = 40
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ SO_SNDBUFFORCE = 32
+ SO_SNDLOWAT = 19
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* 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_align uint32
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+// 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.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// Instruct lower device to use last 4-bytes of skb data as FCS
+
+// Structure used to manipulate the SO_LINGER option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* 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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go
new file mode 100644
index 00000000..eef52f84
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go
@@ -0,0 +1,1835 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ Fsa_data [14]int8
+} /* 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_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go b/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go
new file mode 100644
index 00000000..97233cfc
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go
@@ -0,0 +1,1891 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ SO_RCVBUF = 8
+ SO_RCVBUFFORCE = 33
+ SO_RCVLOWAT = 18
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
+ SO_REUSEADDR = 2
+ SO_REUSEPORT = 15
+ SO_RXQ_OVFL = 40
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ SO_SNDBUFFORCE = 32
+ SO_SNDLOWAT = 19
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint32
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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
+
+// 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.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// Instruct lower device to use last 4-bytes of skb data as FCS
+
+// Structure used to manipulate the SO_LINGER option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* 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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+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
new file mode 100644
index 00000000..b9f96dbf
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go
@@ -0,0 +1,1910 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+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
new file mode 100644
index 00000000..42056c4d
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go
@@ -0,0 +1,1833 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_ALG = 38
+ AF_APPLETALK = 5
+ AF_ASH = 18
+ AF_ATMPVC = 8
+ AF_ATMSVC = 20
+ AF_AX25 = 3
+ AF_BLUETOOTH = 31
+ AF_BRIDGE = 7
+ AF_CAIF = 37
+ AF_CAN = 29
+ AF_DECnet = 12
+ AF_ECONET = 19
+ AF_FILE = 1
+ AF_IB = 27
+ AF_IEEE802154 = 36
+ AF_INET = 2
+ AF_INET6 = 10
+ AF_IPX = 4
+ AF_IRDA = 23
+ AF_ISDN = 34
+ AF_IUCV = 32
+ AF_KCM = 41
+ AF_KEY = 15
+ AF_LLC = 26
+ AF_LOCAL = 1
+ AF_MAX = 45
+ AF_MPLS = 28
+ AF_NETBEUI = 13
+ AF_NETLINK = 16
+ AF_NETROM = 6
+ AF_NFC = 39
+ AF_PACKET = 17
+ AF_PHONET = 35
+ AF_PPPOX = 24
+ AF_QIPCRTR = 42
+ AF_RDS = 21
+ AF_ROSE = 11
+ AF_ROUTE = 16
+ AF_RXRPC = 33
+ AF_SECURITY = 14
+ AF_SMC = 43
+ AF_SNA = 22
+ AF_TIPC = 30
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ AF_VSOCK = 40
+ AF_WANPIPE = 25
+ AF_X25 = 9
+ AF_XDP = 44
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 4321
+ FD_SETSIZE = 1024
+ FIOGETOWN = 0x8903
+ FIOSETOWN = 0x8901
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ PF_ALG = 38
+ PF_APPLETALK = 5
+ PF_ASH = 18
+ PF_ATMPVC = 8
+ PF_ATMSVC = 20
+ PF_AX25 = 3
+ PF_BLUETOOTH = 31
+ PF_BRIDGE = 7
+ PF_CAIF = 37
+ PF_CAN = 29
+ PF_DECnet = 12
+ PF_ECONET = 19
+ PF_FILE = 1
+ PF_IB = 27
+ PF_IEEE802154 = 36
+ PF_INET = 2
+ PF_INET6 = 10
+ PF_IPX = 4
+ PF_IRDA = 23
+ PF_ISDN = 34
+ PF_IUCV = 32
+ PF_KCM = 41
+ PF_KEY = 15
+ PF_LLC = 26
+ PF_LOCAL = 1
+ PF_MAX = 45
+ PF_MPLS = 28
+ PF_NETBEUI = 13
+ PF_NETLINK = 16
+ PF_NETROM = 6
+ PF_NFC = 39
+ PF_PACKET = 17
+ PF_PHONET = 35
+ PF_PPPOX = 24
+ PF_QIPCRTR = 42
+ PF_RDS = 21
+ PF_ROSE = 11
+ PF_ROUTE = 16
+ PF_RXRPC = 33
+ PF_SECURITY = 14
+ PF_SMC = 43
+ PF_SNA = 22
+ PF_TIPC = 30
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_VSOCK = 40
+ PF_WANPIPE = 25
+ PF_X25 = 9
+ PF_XDP = 44
+ SCM_TIMESTAMP = 29
+ SCM_TIMESTAMPING = 37
+ SCM_TIMESTAMPING_OPT_STATS = 54
+ SCM_TIMESTAMPING_PKTINFO = 58
+ SCM_TIMESTAMPNS = 35
+ SCM_TXTIME = 61
+ SCM_WIFI_STATUS = 41
+ SIOCATMARK = 0x8905
+ SIOCGPGRP = 0x8904
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCSPGRP = 0x8902
+ SOL_AAL = 265
+ SOL_ALG = 279
+ SOL_ATM = 264
+ SOL_BLUETOOTH = 274
+ SOL_CAIF = 278
+ SOL_DCCP = 269
+ SOL_DECNET = 261
+ SOL_IRDA = 266
+ SOL_IUCV = 277
+ SOL_KCM = 281
+ SOL_LLC = 268
+ SOL_NETBEUI = 267
+ SOL_NETLINK = 270
+ SOL_NFC = 280
+ SOL_PACKET = 263
+ SOL_PNPIPE = 275
+ SOL_PPPOL2TP = 273
+ SOL_RAW = 255
+ SOL_RDS = 276
+ SOL_RXRPC = 272
+ SOL_SOCKET = 1
+ SOL_TIPC = 271
+ SOL_TLS = 282
+ SOL_X25 = 262
+ 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
+ SO_BUSY_POLL = 46
+ SO_CNX_ADVICE = 53
+ SO_COOKIE = 57
+ 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
+ SO_GET_FILTER = 26
+ SO_INCOMING_CPU = 49
+ SO_INCOMING_NAPI_ID = 56
+ SO_KEEPALIVE = 9
+ SO_LINGER = 13
+ SO_LOCK_FILTER = 44
+ SO_MARK = 36
+ SO_MAX_PACING_RATE = 47
+ SO_MEMINFO = 55
+ SO_NOFCS = 43
+ SO_NO_CHECK = 11
+ SO_OOBINLINE = 10
+ SO_PASSCRED = 16
+ SO_PASSSEC = 34
+ SO_PEEK_OFF = 42
+ SO_PEERCRED = 17
+ SO_PEERGROUPS = 59
+ SO_PEERNAME = 28
+ SO_PEERSEC = 31
+ SO_PRIORITY = 12
+ SO_PROTOCOL = 38
+ 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
+ SO_SECURITY_AUTHENTICATION = 22
+ SO_SECURITY_ENCRYPTION_NETWORK = 24
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 23
+ SO_SELECT_ERR_QUEUE = 45
+ SO_SNDBUF = 7
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SS_SIZE = 128
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+// Bits in the FLAGS argument to `send', `recv', et al.
+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.
+ MSG_CTRUNC = 8 // Control data lost before delivery.
+ MSG_PROXY = 16 // Supply or ask second address.
+ MSG_TRUNC = 32
+ MSG_DONTWAIT = 64 // Nonblocking IO.
+ MSG_EOR = 128 // End of record.
+ MSG_WAITALL = 256 // Wait for a full request.
+ MSG_FIN = 512
+ MSG_SYN = 1024
+ MSG_CONFIRM = 2048 // Confirm path validity.
+ MSG_RST = 4096
+ MSG_ERRQUEUE = 8192 // Fetch message from error queue.
+ MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE.
+ MSG_MORE = 32768 // Sender will send more.
+ MSG_WAITFORONE = 65536 // Wait for at least one packet to return.
+ MSG_BATCH = 262144 // sendmmsg: more messages coming.
+ MSG_ZEROCOPY = 67108864 // Use user data in kernel path.
+ MSG_FASTOPEN = 536870912 // Send data in TCP SYN.
+
+ MSG_CMSG_CLOEXEC = 1073741824
+)
+
+// Socket level message types. This must match the definitions in
+// <linux/socket.h>.
+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-2020 Free Software 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/>.
+
+// Types of sockets.
+const ( /* socket_type.h:24:1: */
+ SOCK_STREAM = 1 // Sequenced, reliable, connection-based
+ // byte streams.
+ SOCK_DGRAM = 2 // Connectionless, unreliable datagrams
+ // of fixed maximum length.
+ SOCK_RAW = 3 // Raw protocol interface.
+ SOCK_RDM = 4 // Reliably-delivered messages.
+ SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based,
+ // datagrams of fixed maximum length.
+ SOCK_DCCP = 6 // Datagram Congestion Control Protocol.
+ SOCK_PACKET = 10 // Linux specific way of getting packets
+ // at the dev level. For writing rarp and
+ // other similar things on the user level.
+
+ // Flags to be ORed into the type parameter of socket and socketpair and
+ // used for the flags parameter of paccept.
+
+ SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the
+ // new descriptor(s).
+ SOCK_NONBLOCK = 2048
+)
+
+// The following constants should be used for the second parameter of
+// `shutdown'.
+const ( /* socket.h:41:1: */
+ SHUT_RD = 0 // No more receptions.
+ SHUT_WR = 1 // No more transmissions.
+ SHUT_RDWR = 2
+)
+
+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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Structure for scatter/gather I/O.
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* struct_iovec.h:26:1 */
+
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// 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-2020 Free Software 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// Type for length arguments in socket calls.
+type Socklen_t = X__socklen_t /* socket.h:33:21 */
+
+// Protocol families.
+
+// Address families.
+
+// Socket level values. Others are defined in the appropriate headers.
+//
+// XXX These definitions also should go into the appropriate headers as
+// far as they are available.
+
+// Maximum queue length specifiable by listen.
+
+// Get the definition of the macro to define the common sockaddr members.
+// Definition of struct sockaddr_* common members and sizes, generic version.
+// Copyright (C) 1995-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/socket.h> instead.
+
+// POSIX.1g specifies this type name for the `sa_family' member.
+type Sa_family_t = uint16 /* sockaddr.h:28:28 */
+
+// This macro is used to declare the initial common members
+// of the data types used for socket addresses, `struct sockaddr',
+// `struct sockaddr_in', `struct sockaddr_un', etc.
+
+// Size of struct sockaddr_storage.
+
+// Structure describing a generic socket address.
+type Sockaddr = struct {
+ Fsa_family Sa_family_t
+ 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]uint8
+ F__ss_align uint64
+} /* socket.h:191:1 */
+
+// Structure describing messages sent by
+// `sendmsg' and received by `recvmsg'.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen Size_t
+ Fmsg_control uintptr
+ Fmsg_controllen Size_t
+ Fmsg_flags int32
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
+
+// Structure used for storage of ancillary data object information.
+type Cmsghdr = struct {
+ 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
+
+// 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
+// S390 version
+//
+
+// 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
+
+// Socket-level I/O control calls.
+
+// For setsockopt(2)
+
+// Security levels - as per NRL IPv6 - don't actually do anything
+
+// Socket filtering
+
+// 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: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.
+type Osockaddr = struct {
+ Fsa_family uint16
+ Fsa_data [14]uint8
+} /* struct_osockaddr.h:6:1 */
+
+// Define some macros helping to catch buffer overflows.
+
+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 00000000..15c0a0f4
--- /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/socket/socket_openbsd_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_openbsd_amd64.go
new file mode 100644
index 00000000..479bddf0
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_openbsd_amd64.go
@@ -0,0 +1,899 @@
+// 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_openbsd_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_BLUETOOTH = 32
+ 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_ENCAP = 28
+ AF_HYLINK = 15
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 24
+ AF_IPX = 23
+ AF_ISDN = 26
+ AF_ISO = 7
+ AF_KEY = 30
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 36
+ AF_MPLS = 33
+ AF_NATM = 27
+ AF_NS = 6
+ AF_OSI = 7
+ AF_PUP = 4
+ AF_ROUTE = 17
+ AF_SIP = 29
+ AF_SNA = 11
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ LITTLE_ENDIAN = 1234
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOR = 0x8
+ MSG_MCAST = 0x200
+ MSG_NOSIGNAL = 0x400
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ NET_BPF_BUFSIZE = 1
+ NET_BPF_MAXBUFSIZE = 2
+ NET_BPF_MAXID = 3
+ NET_KEY_MAXID = 3
+ NET_KEY_SADB_DUMP = 1
+ NET_KEY_SPD_DUMP = 2
+ NET_LINK_IFRXQ = 1
+ NET_LINK_IFRXQ_MAXID = 3
+ NET_LINK_IFRXQ_PRESSURE_DROP = 2
+ NET_LINK_IFRXQ_PRESSURE_RETURN = 1
+ NET_LINK_MAXID = 2
+ NET_MAXID = 36
+ NET_PFLOW_MAXID = 2
+ NET_PFLOW_STATS = 1
+ NET_RT_DUMP = 1
+ NET_RT_FLAGS = 2
+ NET_RT_IFLIST = 3
+ NET_RT_IFNAMES = 6
+ NET_RT_MAXID = 8
+ NET_RT_SOURCE = 7
+ NET_RT_STATS = 4
+ NET_RT_TABLE = 5
+ NET_UNIX_DEFERRED = 7
+ NET_UNIX_INFLIGHT = 6
+ NET_UNIX_MAXID = 8
+ NET_UNIX_PROTO_MAXID = 3
+ PDP_ENDIAN = 3412
+ PF_APPLETALK = 16
+ PF_BLUETOOTH = 32
+ PF_BPF = 31
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_ECMA = 8
+ PF_ENCAP = 28
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 24
+ PF_IPX = 23
+ PF_ISDN = 26
+ PF_ISO = 7
+ PF_KEY = 30
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 36
+ PF_MPLS = 33
+ PF_NATM = 27
+ PF_NS = 6
+ PF_OSI = 7
+ PF_PFLOW = 34
+ PF_PIP = 25
+ PF_PIPEX = 35
+ PF_PUP = 4
+ PF_ROUTE = 17
+ PF_RTIP = 22
+ PF_SIP = 29
+ PF_SNA = 11
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_XTP = 19
+ RT_TABLEID_BITS = 8
+ RT_TABLEID_MASK = 0xff
+ RT_TABLEID_MAX = 255
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x04
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SOCK_CLOEXEC = 0x8000
+ SOCK_DGRAM = 2
+ SOCK_DNS = 0x1000
+ SOCK_NONBLOCK = 0x4000
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SO_ACCEPTCONN = 0x0002
+ SO_BINDANY = 0x1000
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DOMAIN = 0x1024
+ SO_DONTROUTE = 0x0010
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LINGER = 0x0080
+ SO_NETPROC = 0x1020
+ SO_OOBINLINE = 0x0100
+ SO_PEERCRED = 0x1022
+ SO_PROTOCOL = 0x1025
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_RTABLE = 0x1021
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_SPLICE = 0x1023
+ SO_TIMESTAMP = 0x0800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x0040
+ SO_ZEROIZE = 0x2000
+ UIO_MAXIOV = 1024
+ UNPCTL_RECVSPACE = 1
+ UNPCTL_SENDSPACE = 2
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SA_FAMILY_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SOCKLEN_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UIO_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIMEVAL_DECLARED = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Pseudo_AF_HDRCMPLT = 31
+ Pseudo_AF_PFLOW = 34
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_PIPEX = 35
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+ Unix = 1
+)
+
+const ( /* uio.h:57:1: */
+ UIO_READ = 0
+ UIO_WRITE = 1
+)
+
+// Segment flag values.
+const ( /* uio.h:60: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 */
+
+// $OpenBSD: socket.h,v 1.100 2021/05/17 17:54:31 claudio Exp $
+// $NetBSD: socket.h,v 1.14 1996/02/09 18:25:36 christos Exp $
+
+// Copyright (c) 1982, 1985, 1986, 1988, 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.
+//
+// @(#)socket.h 8.4 (Berkeley) 2/21/94
+
+// get the definitions for struct iovec, size_t, ssize_t, and <sys/cdefs.h>
+// $OpenBSD: uio.h,v 1.19 2018/08/20 16:00:22 mpi Exp $
+// $NetBSD: uio.h,v 1.12 1996/02/09 18:25:45 christos 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
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+type Ssize_t = X__ssize_t /* uio.h:48:19 */
+
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* uio.h:51:1 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+type Socklen_t = X__socklen_t /* socket.h:47:21 */ // length type for network syscalls
+
+type Sa_family_t = X__sa_family_t /* socket.h:52:23 */ // sockaddr address family type
+
+// Definitions related to sockets: types, address families, options.
+
+// Types
+
+// Socket creation flags
+
+// Option flags per-socket.
+
+// Additional options, not kept in so_options.
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:122:1 */
+
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* socket.h:131:1 */
+
+// Structure used for manipulating splice option.
+type Splice = struct {
+ Fsp_fd int32
+ F__ccgo_pad1 [4]byte
+ Fsp_max Off_t
+ Fsp_idle struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* socket.h:140:1 */
+
+// Maximum number of alternate routing tables
+
+// 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 Sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:209:1 */
+
+// Sockaddr type which can hold any sockaddr type available
+// in the system.
+//
+// Note: __ss_{len,family} is defined in RFC2553. During RFC2553 discussion
+// the field name went back and forth between ss_len and __ss_len,
+// and RFC2553 specifies it to be __ss_len. openbsd picked ss_len.
+// For maximum portability, userland programmer would need to
+// (1) make the code never touch ss_len portion (cast it into sockaddr and
+// touch sa_len), or (2) add "-Dss_len=__ss_len" into CFLAGS to unify all
+// occurrences (including header file) to __ss_len.
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family Sa_family_t
+ F__ss_pad1 [6]uint8
+ F__ss_pad2 X__uint64_t
+ F__ss_pad3 [240]uint8
+} /* socket.h:227:1 */
+
+// Protocol families, same as address families for now.
+
+// These are the valid values for the "how" field used by shutdown(2).
+
+// Read using getsockopt() with SOL_SOCKET, SO_PEERCRED
+type Sockpeercred = struct {
+ Fuid Uid_t
+ Fgid Gid_t
+ Fpid Pid_t
+} /* socket.h:300:1 */
+
+// Definitions for network related sysctl, CTL_NET.
+//
+// Second level is protocol family.
+// Third level is protocol number.
+//
+// Further levels are defined by the individual families below.
+
+// PF_ROUTE - Routing table
+//
+// Four 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
+// Seventh: routing table to use (facultative, defaults to 0)
+// NET_RT_TABLE has the table id as sixth element.
+
+// PF_UNIX - unix socket tunables
+
+// PF_LINK - link layer or device tunables
+
+// PF_KEY - Key Management
+
+// PF_BPF not really a family, but connected under CTL_NET
+
+// PF_PFLOW not really a family, but connected under CTL_NET
+
+// Maximum queue length specifiable by listen(2).
+
+// Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen Socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen uint32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen Socklen_t
+ Fmsg_flags int32
+} /* socket.h:483:1 */
+
+// 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 Socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:512: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
new file mode 100644
index 00000000..550e5b58
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// 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
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go
new file mode 100644
index 00000000..827c5c42
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.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_darwin_arm64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_freebsd_386.go b/vendor/modernc.org/libc/sys/stat/capi_freebsd_386.go
new file mode 100644
index 00000000..19a4bcd5
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_freebsd_386.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_freebsd_386.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_freebsd_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_freebsd_amd64.go
new file mode 100644
index 00000000..4aed33ac
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_freebsd_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_freebsd_amd64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_386.go b/vendor/modernc.org/libc/sys/stat/capi_linux_386.go
new file mode 100644
index 00000000..56b0ecca
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_386.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_linux_386.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go
new file mode 100644
index 00000000..4b376b5c
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_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_linux_amd64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_arm.go b/vendor/modernc.org/libc/sys/stat/capi_linux_arm.go
new file mode 100644
index 00000000..d528ab88
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_arm.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_linux_arm.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go b/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go
new file mode 100644
index 00000000..381d13e0
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.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_linux_arm64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go b/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go
new file mode 100644
index 00000000..cd717e88
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.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_linux_s390x.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
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 00000000..eac88b03
--- /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_openbsd_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_openbsd_amd64.go
new file mode 100644
index 00000000..4f54d20f
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_openbsd_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_openbsd_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
new file mode 100644
index 00000000..ec7e8697
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_windows_386.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_windows_386.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go
new file mode 100644
index 00000000..c05d5e74
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_windows_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_windows_amd64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go
new file mode 100644
index 00000000..e1ed6a77
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_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_darwin_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
+ DEFFILEMODE = 438
+ EF_IS_PURGEABLE = 0x00000008
+ EF_IS_SPARSE = 0x00000010
+ EF_IS_SYNC_ROOT = 0x00000004
+ EF_MAY_SHARE_BLOCKS = 0x00000001
+ EF_NO_XATTRS = 0x00000002
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_DATALESS = 0x40000000
+ SF_FIRMLINK = 0x00800000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_RESTRICTED = 0x00080000
+ SF_SETTABLE = 0x3fff0000
+ SF_SUPPORTED = 0x009f0000
+ SF_SYNTHETIC = 0xc0000000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ UF_APPEND = 0x00000004
+ UF_COMPRESSED = 0x00000020
+ UF_DATAVAULT = 0x00000080
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_OPAQUE = 0x00000008
+ UF_SETTABLE = 0x0000ffff
+ UF_TRACKED = 0x00000040
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// [XSI] The timespec structure may be defined as described in <time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+// gid_t, off_t, and time_t types shall be defined as described in
+// <sys/types.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// XXX So deprecated, it would make your head spin
+//
+// The old stat structure. In fact, this is not used by the kernel at all,
+// and should not be used by user space, and should be removed from this
+// header file entirely (along with the unused cvtstat() prototype in
+// vnode_internal.h).
+type Ostat = struct {
+ Fst_dev X__uint16_t
+ 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
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+} /* stat.h:110:1 */
+
+// This structure is used as the second parameter to the fstat64(),
+// lstat64(), and stat64() functions, and for struct stat when
+// __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+// above, depending on whether we use struct timespec or the direct
+// components.
+//
+// This is simillar to stat except for 64bit inode number
+// number instead of 32bit ino_t and the addition of create(birth) time.
+
+// [XSI] This structure is used as the second parameter to the fstat(),
+// lstat(), and stat() functions.
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:182:1 */
+
+type Stat64 = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:221:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
new file mode 100644
index 00000000..dc6c3958
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
@@ -0,0 +1,2318 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSPERMS = 511
+ ALLPERMS = 4095
+ DEFFILEMODE = 438
+ EF_IS_PURGEABLE = 0x00000008
+ EF_IS_SPARSE = 0x00000010
+ EF_IS_SYNC_ROOT = 0x00000004
+ EF_IS_SYNTHETIC = 0x00000020
+ EF_MAY_SHARE_BLOCKS = 0x00000001
+ EF_NO_XATTRS = 0x00000002
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_DATALESS = 0x40000000
+ SF_FIRMLINK = 0x00800000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_RESTRICTED = 0x00080000
+ SF_SETTABLE = 0x3fff0000
+ SF_SUPPORTED = 0x009f0000
+ SF_SYNTHETIC = 0xc0000000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 512
+ S_ISUID = 0004000
+ S_ISVTX = 0001000
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ UF_APPEND = 0x00000004
+ UF_COMPRESSED = 0x00000020
+ UF_DATAVAULT = 0x00000080
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_OPAQUE = 0x00000008
+ UF_SETTABLE = 0x0000ffff
+ UF_TRACKED = 0x00000040
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_ARM_MACHTYPES_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_FILESEC_T = 0
+ X_FILE_OFFSET_BITS = 64
+ X_GID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 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 */
+
+// Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// [XSI] The timespec structure may be defined as described in <time.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+// gid_t, off_t, and time_t types shall be defined as described in
+// <sys/types.h>.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// XXX So deprecated, it would make your head spin
+//
+// The old stat structure. In fact, this is not used by the kernel at all,
+// and should not be used by user space, and should be removed from this
+// header file entirely (along with the unused cvtstat() prototype in
+// vnode_internal.h).
+type Ostat = struct {
+ Fst_dev X__uint16_t
+ 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
+ F__ccgo_pad2 [2]byte
+ Fst_size X__int32_t
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_blksize X__int32_t
+ Fst_blocks X__int32_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+} /* stat.h:110:1 */
+
+// This structure is used as the second parameter to the fstat64(),
+// lstat64(), and stat64() functions, and for struct stat when
+// __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+// above, depending on whether we use struct timespec or the direct
+// components.
+//
+// This is simillar to stat except for 64bit inode number
+// number instead of 32bit ino_t and the addition of create(birth) time.
+
+// [XSI] This structure is used as the second parameter to the fstat(),
+// lstat(), and stat() functions.
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode Mode_t
+ Fst_nlink Nlink_t
+ Fst_ino X__darwin_ino64_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_rdev Dev_t
+ F__ccgo_pad1 [4]byte
+ Fst_atimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_mtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_ctimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtimespec struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags X__uint32_t
+ Fst_gen X__uint32_t
+ Fst_lspare X__int32_t
+ Fst_qspare [2]X__int64_t
+} /* stat.h:182:1 */
+
+type Filesec_t = uintptr /* _filesec_t.h:31:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go b/vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go
new file mode 100644
index 00000000..e236e64c
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go
@@ -0,0 +1,1986 @@
+// 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_freebsd_386.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
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_BOOTTIME = 5
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_COARSE = 12
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_COARSE = 10
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ CPUCLOCK_WHICH_PID = 0
+ CPUCLOCK_WHICH_TID = 1
+ DEFFILEMODE = 438
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ FD_SETSIZE = 1024
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ SBT_MAX = 0x7fffffffffffffff
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_SETTABLE = 0xffff0000
+ SF_SNAPSHOT = 0x00200000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 0001000
+ 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_ARCHIVE = 0x00000800
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_NOUNLINK = 0x00000010
+ UF_OFFLINE = 0x00000200
+ UF_OPAQUE = 0x00000008
+ UF_READONLY = 0x00001000
+ UF_REPARSE = 0x00000400
+ UF_SETTABLE = 0x0000ffff
+ UF_SPARSE = 0x00000100
+ UF_SYSTEM = 0x00000080
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED = 0
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKNOD_DECLARED = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_SYS__CLOCK_ID_H = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.12 (Berkeley) 6/16/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Blksize_t = X__blksize_t /* stat.h:48:21 */
+
+type Blkcnt_t = X__blkcnt_t /* stat.h:53:20 */
+
+type Dev_t = X__dev_t /* stat.h:58:18 */
+
+type Fflags_t = X__fflags_t /* stat.h:63:20 */
+
+type Gid_t = X__gid_t /* stat.h:68:18 */
+
+type Ino_t = X__ino_t /* stat.h:73:18 */
+
+type Mode_t = X__mode_t /* stat.h:78:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:83:19 */
+
+type Off_t = X__off_t /* stat.h:88:18 */
+
+type Uid_t = X__uid_t /* stat.h:93:18 */
+
+// XXX We get miscellaneous namespace pollution with this.
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Suseconds_t = X__suseconds_t /* _timeval.h:37:23 */
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+type Pthread_once = struct {
+ Fstate int32
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint32 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint32 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// 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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint32 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// These macros are shared between time.h and sys/time.h.
+
+// Note: The values shown below as a comment for the __POSIX_VISIBLE values are
+// the ones FreeBSD traditionally used based on our reading of the POSIX
+// standards. However, glibc uses 199309 for all of them, even those many were
+// not defined there. To remain bug compatible with glibc means more software
+// that relied on the glibc behavior will compile easily on FreeBSD.
+//
+// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl
+// port until it can be updated properly. It incorrectly assumes that this was a
+// standard value. It will be moved back to the __BSD_VISIBLE section once the
+// issue is corrected.
+
+// FreeBSD-specific clocks.
+
+// Linux compatible names.
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:43:1 */
+
+type Bintime = struct {
+ Fsec Time_t
+ Ffrac Uint64_t
+} /* time.h:56:1 */
+
+// Operations on timespecs
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:459:1 */
+
+// Getkerninfo clock information structure
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fspare int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:467:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+// New in POSIX 1003.1b-1993.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* time.h:101:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_mode Mode_t
+ Fst_padding0 X__int16_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_padding1 X__int32_t
+ Fst_rdev Dev_t
+ Fst_atim_ext X__int32_t
+ Fst_atim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_mtim_ext X__int32_t
+ Fst_mtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_ctim_ext X__int32_t
+ Fst_ctim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_btim_ext X__int32_t
+ Fst_birthtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fst_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags Fflags_t
+ Fst_gen X__uint64_t
+ Fst_spare [10]X__uint64_t
+} /* stat.h:160:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go
new file mode 100644
index 00000000..a19412e8
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go
@@ -0,0 +1,1897 @@
+// 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_freebsd_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
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ CPUCLOCK_WHICH_PID = 0
+ CPUCLOCK_WHICH_TID = 1
+ DEFFILEMODE = 438
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ FD_SETSIZE = 1024
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ SBT_MAX = 0x7fffffffffffffff
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_NOUNLINK = 0x00100000
+ SF_SETTABLE = 0xffff0000
+ SF_SNAPSHOT = 0x00200000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ S_IFWHT = 0160000
+ 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 = 0001000
+ 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_ARCHIVE = 0x00000800
+ UF_HIDDEN = 0x00008000
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_NOUNLINK = 0x00000010
+ UF_OFFLINE = 0x00000200
+ UF_OPAQUE = 0x00000008
+ UF_READONLY = 0x00001000
+ UF_REPARSE = 0x00000400
+ UF_SETTABLE = 0x0000ffff
+ UF_SPARSE = 0x00000100
+ UF_SYSTEM = 0x00000080
+ UTIME_NOW = -1
+ UTIME_OMIT = -2
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED = 0
+ X_LP64 = 1
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKNOD_DECLARED = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.12 (Berkeley) 6/16/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Time_t = X__time_t /* _timespec.h:42:18 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Blksize_t = X__blksize_t /* stat.h:48:21 */
+
+type Blkcnt_t = X__blkcnt_t /* stat.h:53:20 */
+
+type Dev_t = X__dev_t /* stat.h:58:18 */
+
+type Fflags_t = X__fflags_t /* stat.h:63:20 */
+
+type Gid_t = X__gid_t /* stat.h:68:18 */
+
+type Ino_t = X__ino_t /* stat.h:73:18 */
+
+type Mode_t = X__mode_t /* stat.h:78:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:83:19 */
+
+type Off_t = X__off_t /* stat.h:88:18 */
+
+type Uid_t = X__uid_t /* stat.h:93:18 */
+
+// XXX We get miscellaneous namespace pollution with this.
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Suseconds_t = X__suseconds_t /* _timeval.h:37:23 */
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+type Pthread_once = struct {
+ Fstate int32
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint64 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint64 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// 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
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint64 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [16]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:42:1 */
+
+type Bintime = struct {
+ Fsec Time_t
+ Ffrac Uint64_t
+} /* time.h:55:1 */
+
+// Operations on timespecs
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:447:1 */
+
+// Getkerninfo clock information structure
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fspare int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:455:1 */
+
+// These macros are also in time.h.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+// New in POSIX 1003.1b-1993.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// 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
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:129:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_mode Mode_t
+ Fst_padding0 X__int16_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ Fst_padding1 X__int32_t
+ 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 Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags Fflags_t
+ Fst_gen X__uint64_t
+ Fst_spare [10]X__uint64_t
+} /* stat.h:160:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_386.go b/vendor/modernc.org/libc/sys/stat/stat_linux_386.go
new file mode 100644
index 00000000..798ee36e
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_386.go
@@ -0,0 +1,932 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ 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_ILP32 = 1
+ X_MKNOD_VER = 1
+ X_MKNOD_VER_LINUX = 1
+ X_MKNOD_VER_SVR4 = 2
+ 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 = 3
+ X_STAT_VER_KERNEL = 1
+ X_STAT_VER_LINUX = 3
+ X_STAT_VER_LINUX_OLD = 1
+ X_STAT_VER_SVR4 = 2
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_STAT_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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-2020 Free Software 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/>.
+
+// 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: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-2020 Free Software 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+type Dev_t = X__dev_t /* stat.h:40:17 */
+
+type Gid_t = X__gid_t /* stat.h:45:17 */
+
+type Ino_t = X__ino64_t /* stat.h:53:19 */
+
+type Mode_t = X__mode_t /* stat.h:59:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:64:19 */
+
+type Off_t = X__off64_t /* stat.h:72:19 */
+
+type Uid_t = X__uid_t /* stat.h:78:17 */
+
+// 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/>.
+
+// Versions of the `struct stat' data structure.
+
+// i386 versions of the `xmknod' interface.
+
+type Stat = 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
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ino X__ino64_t
+} /* stat.h:46:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go
new file mode 100644
index 00000000..f4422a2d
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go
@@ -0,0 +1,944 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ 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 = 1
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 1
+ 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 */
+
+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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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-2020 Free Software 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/>.
+
+// 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: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-2020 Free Software 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+type Dev_t = X__dev_t /* stat.h:40:17 */
+
+type Gid_t = X__gid_t /* stat.h:45:17 */
+
+type Ino_t = X__ino64_t /* stat.h:53:19 */
+
+type Mode_t = X__mode_t /* stat.h:59:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:64:19 */
+
+type Off_t = X__off64_t /* stat.h:72:19 */
+
+type Uid_t = X__uid_t /* stat.h:78:17 */
+
+// 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/>.
+
+// Versions of the `struct stat' data structure.
+
+// x86-64 versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino_t
+ Fst_nlink X__nlink_t
+ Fst_mode X__mode_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__pad0 int32
+ Fst_rdev X__dev_t
+ Fst_size X__off_t
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ F__glibc_reserved [3]X__syscall_slong_t
+} /* stat.h:46:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go b/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go
new file mode 100644
index 00000000..af8229ba
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go
@@ -0,0 +1,992 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ 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_MKNOD_VER = 1
+ X_MKNOD_VER_LINUX = 1
+ X_MKNOD_VER_SVR4 = 2
+ 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 = 3
+ X_STAT_VER_KERNEL = 1
+ X_STAT_VER_LINUX = 3
+ X_STAT_VER_LINUX_OLD = 1
+ X_STAT_VER_SVR4 = 2
+ 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 = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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-2020 Free Software 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/>.
+
+// 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: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-2020 Free Software 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+type Dev_t = X__dev_t /* stat.h:40:17 */
+
+type Gid_t = X__gid_t /* stat.h:45:17 */
+
+type Ino_t = X__ino64_t /* stat.h:53:19 */
+
+type Mode_t = X__mode_t /* stat.h:59:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:64:19 */
+
+type Off_t = X__off64_t /* stat.h:72:19 */
+
+type Uid_t = X__uid_t /* stat.h:78:17 */
+
+// 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
+// <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
+ 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
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ino X__ino64_t
+} /* stat.h:38:1 */
+
+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
new file mode 100644
index 00000000..f701f6f5
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go
@@ -0,0 +1,1057 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ 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 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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-2020 Free Software 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/>.
+
+// 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: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-2020 Free Software 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+type Dev_t = X__dev_t /* stat.h:40:17 */
+
+type Gid_t = X__gid_t /* stat.h:45:17 */
+
+type Ino_t = X__ino64_t /* stat.h:53:19 */
+
+type Mode_t = X__mode_t /* stat.h:59:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:64:19 */
+
+type Off_t = X__off64_t /* stat.h:72:19 */
+
+type Uid_t = X__uid_t /* stat.h:78:17 */
+
+// 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.
+//
+// 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/>.
+
+// 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
+// APIs offered by libc use the kernel shape for their struct stat
+// structure; the only difference is that 32-bit programs not
+// using __USE_FILE_OFFSET64 only see the low 32 bits of some
+// of the fields (specifically st_ino, st_size, and st_blocks).
+
+// Versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino64_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__pad1 X__dev_t
+ Fst_size X__off64_t
+ Fst_blksize X__blksize_t
+ F__pad2 int32
+ Fst_blocks X__blkcnt64_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ F__glibc_reserved [2]int32
+} /* stat.h:58:1 */
+
+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
new file mode 100644
index 00000000..8a13a9b0
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go
@@ -0,0 +1,945 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ 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 = 1
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 1
+ 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 */
+
+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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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-2020 Free Software 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/>.
+
+// 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: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-2020 Free Software 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+type Dev_t = X__dev_t /* stat.h:40:17 */
+
+type Gid_t = X__gid_t /* stat.h:45:17 */
+
+type Ino_t = X__ino64_t /* stat.h:53:19 */
+
+type Mode_t = X__mode_t /* stat.h:59:18 */
+
+type Nlink_t = X__nlink_t /* stat.h:64:19 */
+
+type Off_t = X__off64_t /* stat.h:72:19 */
+
+type Uid_t = X__uid_t /* stat.h:78:17 */
+
+// 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
+// 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.
+
+// Versions of the `struct stat' data structure.
+
+// Versions of the `xmknod' interface.
+
+type Stat = struct {
+ Fst_dev X__dev_t
+ Fst_ino X__ino_t
+ Fst_nlink X__nlink_t
+ Fst_mode X__mode_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__glibc_reserved0 int32
+ Fst_rdev X__dev_t
+ Fst_size X__off_t
+ Fst_atim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_mtim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_ctim struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt_t
+ F__glibc_reserved [3]int64
+} /* stat.h:50:1 */
+
+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 00000000..a1292720
--- /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_openbsd_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_openbsd_amd64.go
new file mode 100644
index 00000000..c748b3d1
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_openbsd_amd64.go
@@ -0,0 +1,1092 @@
+// 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_openbsd_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
+ CLK_TCK = 100
+ CLOCKS_PER_SEC = 100
+ CLOCK_BOOTTIME = 6
+ CLOCK_MONOTONIC = 3
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 4
+ CLOCK_UPTIME = 5
+ DEFFILEMODE = 438
+ DST_AUST = 2
+ DST_CAN = 6
+ DST_EET = 5
+ DST_MET = 4
+ DST_NONE = 0
+ DST_USA = 1
+ DST_WET = 3
+ FD_SETSIZE = 1024
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ NBBY = 8
+ PDP_ENDIAN = 3412
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_SETTABLE = 0xffff0000
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 0060000
+ S_IFCHR = 0020000
+ S_IFDIR = 0040000
+ S_IFIFO = 0010000
+ S_IFLNK = 0120000
+ S_IFMT = 0170000
+ S_IFREG = 0100000
+ S_IFSOCK = 0140000
+ 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 = 0001000
+ 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
+ UTIME_NOW = -2
+ UTIME_OMIT = -1
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SELECT_DEFINED_ = 0
+ X_SIGSET_T_DEFINED_ = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TIME_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIMESPEC_DECLARED = 0
+ X_TIMEVAL_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: stat.h,v 1.28 2015/04/04 18:06:08 jca Exp $
+// $NetBSD: stat.h,v 1.20 1996/05/16 22:17:49 cgd Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)stat.h 8.9 (Berkeley) 8/17/94
+
+// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $
+// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft 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.2 (Berkeley) 7/10/94
+
+// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther 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
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* select.h:41:1 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* select.h:49:1 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+// We don't want to pollute the namespace with select(2) internals.
+// Non-underscore versions are exposed later #if __BSD_VISIBLE
+type X__fd_mask = Uint32_t /* select.h:70:18 */
+
+type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */
+
+type Fd_set = Fd_set1 /* select.h:76:3 */
+
+type Sigset_t = uint32 /* select.h:122:22 */
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:72:1 */
+
+// Operations on timevals.
+
+// Operations on timespecs.
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ }
+} /* time.h:148:1 */
+
+// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE})
+type Clockinfo = struct {
+ Fhz int32
+ Ftick int32
+ Fstathz int32
+ Fprofhz int32
+} /* time.h:157:1 */
+
+// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $
+// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $
+
+// Copyright (c) 1989 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 5.12 (Berkeley) 3/9/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha 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.
+
+// Per-process and per-thread clocks encode the PID or TID into the
+// high bits, with the type in the bottom bits
+
+// Structure defined by POSIX 1003.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:56:1 */
+
+type Locale_t = uintptr /* time.h:107:14 */
+
+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:111:1 */
+
+type Stat = struct {
+ Fst_mode Mode_t
+ Fst_dev Dev_t
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_uid Uid_t
+ Fst_gid Gid_t
+ 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_size Off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags U_int32_t
+ Fst_gen U_int32_t
+ F__ccgo_pad1 [4]byte
+ F__st_birthtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+} /* stat.h:45: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
new file mode 100644
index 00000000..46b091f7
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_windows_386.go
@@ -0,0 +1,554 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ F_OK = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ R_OK = 4
+ S_IEXEC = 64
+ S_IFBLK = 12288
+ S_IFCHR = 8192
+ S_IFDIR = 16384
+ S_IFIFO = 4096
+ S_IFMT = 61440
+ S_IFREG = 32768
+ S_IREAD = 256
+ S_IRGRP = 32
+ S_IROTH = 4
+ S_IRUSR = 256
+ S_IRWXG = 56
+ S_IRWXO = 7
+ S_IRWXU = 448
+ S_IWGRP = 16
+ S_IWOTH = 2
+ S_IWRITE = 128
+ S_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ W_OK = 2
+ X_OK = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_A_ARCH = 0x20
+ X_A_HIDDEN = 0x02
+ X_A_NORMAL = 0x00
+ X_A_RDONLY = 0x01
+ X_A_SUBDIR = 0x10
+ X_A_SYSTEM = 0x04
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_MEMORY_DEFINED = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_LSEEK = 0
+ 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
+ X_INC_STAT = 0
+ X_INC_STRING = 0
+ X_INC_STRING_S = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IO_H_ = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_NLSCMPERROR = 2147483647
+ X_NLSCMP_DEFINED = 0
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_PGLOBAL = 0
+ X_PID_T_ = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIGSET_T_ = 0
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_STAT_DEFINED = 0
+ X_S_IEXEC = 0x0040
+ X_S_IFBLK = 0x3000
+ X_S_IFCHR = 0x2000
+ X_S_IFDIR = 0x4000
+ X_S_IFIFO = 0x1000
+ X_S_IFMT = 0xF000
+ X_S_IFREG = 0x8000
+ X_S_IREAD = 0x0100
+ X_S_IRUSR = 256
+ X_S_IRWXU = 448
+ X_S_IWRITE = 0x0080
+ X_S_IWUSR = 128
+ X_S_IXUSR = 64
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WConst_return = 0
+ X_WFINDDATA_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WIO_DEFINED = 0
+ X_WSTAT_DEFINED = 0
+ X_WSTRING_DEFINED = 0
+ X_WSTRING_S_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+type X_fsize_t = uint32 /* io.h:29:25 */
+
+type X_finddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]int8
+} /* io.h:35:3 */
+
+type X_finddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]int8
+ F__ccgo_pad1 [4]byte
+} /* io.h:44:3 */
+
+type X_finddata64i32_t = struct {
+ Fattrib uint32
+ 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]int8
+} /* io.h:53:3 */
+
+type X__finddata64_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:62:3 */
+
+type X_wfinddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]Wchar_t
+} /* io.h:94:3 */
+
+type X_wfinddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:103:3 */
+
+type X_wfinddata64i32_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:112:3 */
+
+type X_wfinddata64_t = struct {
+ Fattrib uint32
+ F__ccgo_pad1 [4]byte
+ Ftime_create X__time64_t
+ Ftime_access X__time64_t
+ Ftime_write X__time64_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:121:3 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+// *
+// 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 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.
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int32 /* types.h:60:13 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+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
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* types.h:94:1 */
+
+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
+ 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
+ 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
+ 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
+ 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
+ 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
new file mode 100644
index 00000000..9756b48a
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go
@@ -0,0 +1,556 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ 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
+ S_IEXEC = 64
+ S_IFBLK = 12288
+ S_IFCHR = 8192
+ S_IFDIR = 16384
+ S_IFIFO = 4096
+ S_IFMT = 61440
+ S_IFREG = 32768
+ S_IREAD = 256
+ S_IRGRP = 32
+ S_IROTH = 4
+ S_IRUSR = 256
+ S_IRWXG = 56
+ S_IRWXO = 7
+ S_IRWXU = 448
+ S_IWGRP = 16
+ S_IWOTH = 2
+ S_IWRITE = 128
+ S_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ W_OK = 2
+ X_OK = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_A_ARCH = 0x20
+ X_A_HIDDEN = 0x02
+ X_A_NORMAL = 0x00
+ X_A_RDONLY = 0x01
+ X_A_SUBDIR = 0x10
+ X_A_SYSTEM = 0x04
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_MEMORY_DEFINED = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DEV_T_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_LSEEK = 0
+ X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_FINDDATA_T_DEFINED = 0
+ X_FSIZE_T_DEFINED = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_STAT = 0
+ X_INC_STRING = 0
+ X_INC_STRING_S = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IO_H_ = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_NLSCMPERROR = 2147483647
+ X_NLSCMP_DEFINED = 0
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_PGLOBAL = 0
+ 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
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_STAT_DEFINED = 0
+ X_S_IEXEC = 0x0040
+ X_S_IFBLK = 0x3000
+ X_S_IFCHR = 0x2000
+ X_S_IFDIR = 0x4000
+ X_S_IFIFO = 0x1000
+ X_S_IFMT = 0xF000
+ X_S_IFREG = 0x8000
+ X_S_IREAD = 0x0100
+ X_S_IRUSR = 256
+ X_S_IRWXU = 448
+ X_S_IWRITE = 0x0080
+ X_S_IWUSR = 128
+ X_S_IXUSR = 64
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WConst_return = 0
+ X_WFINDDATA_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WIO_DEFINED = 0
+ X_WSTAT_DEFINED = 0
+ X_WSTRING_DEFINED = 0
+ X_WSTRING_S_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+type X_fsize_t = uint32 /* io.h:29:25 */
+
+type X_finddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]int8
+} /* io.h:35:3 */
+
+type X_finddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]int8
+ F__ccgo_pad1 [4]byte
+} /* io.h:44:3 */
+
+type X_finddata64i32_t = struct {
+ Fattrib uint32
+ 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]int8
+} /* io.h:53:3 */
+
+type X__finddata64_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:62:3 */
+
+type X_wfinddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]Wchar_t
+} /* io.h:94:3 */
+
+type X_wfinddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:103:3 */
+
+type X_wfinddata64i32_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:112:3 */
+
+type X_wfinddata64_t = struct {
+ Fattrib uint32
+ F__ccgo_pad1 [4]byte
+ Ftime_create X__time64_t
+ Ftime_access X__time64_t
+ Ftime_write X__time64_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:121:3 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+// *
+// 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 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.
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int64 /* types.h:63:17 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+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
+ F__ccgo_pad1 [4]byte
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
new file mode 100644
index 00000000..3ab4f393
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// 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
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go
new file mode 100644
index 00000000..96cf0022
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.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_darwin_arm64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_freebsd_386.go b/vendor/modernc.org/libc/sys/types/capi_freebsd_386.go
new file mode 100644
index 00000000..e1a9f475
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_freebsd_386.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_freebsd_386.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_freebsd_amd64.go b/vendor/modernc.org/libc/sys/types/capi_freebsd_amd64.go
new file mode 100644
index 00000000..38dd284a
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_freebsd_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_freebsd_amd64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_386.go b/vendor/modernc.org/libc/sys/types/capi_linux_386.go
new file mode 100644
index 00000000..026dff4a
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_386.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_linux_386.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_amd64.go b/vendor/modernc.org/libc/sys/types/capi_linux_amd64.go
new file mode 100644
index 00000000..bc337eed
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_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_linux_amd64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_arm.go b/vendor/modernc.org/libc/sys/types/capi_linux_arm.go
new file mode 100644
index 00000000..c64f386e
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_arm.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_linux_arm.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_arm64.go b/vendor/modernc.org/libc/sys/types/capi_linux_arm64.go
new file mode 100644
index 00000000..4ec64ab5
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_arm64.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_linux_arm64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_s390x.go b/vendor/modernc.org/libc/sys/types/capi_linux_s390x.go
new file mode 100644
index 00000000..90fa54ba
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_s390x.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_linux_s390x.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
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 00000000..9164103d
--- /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_openbsd_amd64.go b/vendor/modernc.org/libc/sys/types/capi_openbsd_amd64.go
new file mode 100644
index 00000000..32587202
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_openbsd_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_openbsd_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
new file mode 100644
index 00000000..d09a4ea4
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_windows_386.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_windows_386.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_windows_amd64.go b/vendor/modernc.org/libc/sys/types/capi_windows_amd64.go
new file mode 100644
index 00000000..b044a707
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_windows_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_windows_amd64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go b/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go
new file mode 100644
index 00000000..46de712b
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go
@@ -0,0 +1,4017 @@
+// 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
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ NBBY = 8
+ PDP_ENDIAN = 3412
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GID_T = 0
+ X_I386__ENDIAN_H_ = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS__OSBYTEORDERI386_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_SUSECONDS_T = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
new file mode 100644
index 00000000..cd35b200
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
@@ -0,0 +1,4827 @@
+// 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
+
+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 = 1024
+ 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 = 32767
+ INT_FAST16_MIN = -32768
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 127
+ INT_FAST8_MIN = -128
+ 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
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ NBBY = 8
+ PDP_ENDIAN = 3412
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ RSIZE_MAX = 9223372036854775807
+ 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 = 65535
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 255
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 2147483647
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 2147483647
+ WINT_MIN = -2147483648
+ X_ARM_ARCH_H = 0
+ X_ARM_MACHTYPES_H_ = 0
+ X_ARM__ENDIAN_H_ = 0
+ X_BLKCNT_T = 0
+ X_BLKSIZE_T = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_ENDIAN_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CADDR_T = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DEV_T = 0
+ X_ERRNO_T = 0
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T = 0
+ X_FSFILCNT_T = 0
+ X_GCC_WRAP_STDINT_H = 0
+ X_GID_T = 0
+ X_ID_T = 0
+ X_INO64_T = 0
+ X_INO_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTMAX_T = 0
+ X_INTPTR_T = 0
+ X_IN_ADDR_T = 0
+ X_IN_PORT_T = 0
+ X_KEY_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_NLINK_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_OS_OSBYTEORDERARM_H = 0
+ X_OS__OSBYTEORDER_H = 0
+ X_PID_T = 0
+ X_PTHREAD_ATTR_T = 0
+ X_PTHREAD_CONDATTR_T = 0
+ X_PTHREAD_COND_T = 0
+ X_PTHREAD_KEY_T = 0
+ X_PTHREAD_MUTEXATTR_T = 0
+ X_PTHREAD_MUTEX_T = 0
+ X_PTHREAD_ONCE_T = 0
+ X_PTHREAD_RWLOCKATTR_T = 0
+ X_PTHREAD_RWLOCK_T = 0
+ X_PTHREAD_T = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RSIZE_T = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_STDINT_H_ = 0
+ X_SUSECONDS_T = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT16_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINT8_T = 0
+ X_UINTMAX_T = 0
+ X_UINTPTR_T = 0
+ X_USECONDS_T = 0
+ X_U_CHAR = 0
+ X_U_INT = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_U_LONG = 0
+ X_U_SHORT = 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 */
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Machine type dependent parameters.
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Define _NOQUAD if the compiler does NOT support 64-bit integers.
+// #define _NOQUAD
+
+// Define the order of 32-bit words in 64-bit words.
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Macros for network/external number representation conversion.
+
+// Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header is normally included from <libkern/OSByteOrder.h>. However,
+// <sys/_endian.h> also includes this in the case of little-endian
+// architectures, so that we can map OSByteOrder routines to the hton* and ntoh*
+// macros. This results in the asymmetry below; we only include
+// <libkern/arch/_OSByteOrder.h> for little-endian architectures.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Macros for swapping constant values in the preprocessing stage.
+
+// Copyright (c) 1999-2007 Apple Inc. All rights reserved.
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2000-2010 Apple Inc.
+// All rights reserved.
+
+// from ISO/IEC 988:1999 spec
+
+// 7.18.1.1 Exact-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint8_t = uint8 /* _uint8_t.h:31:23 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint16_t = uint16 /* _uint16_t.h:31:24 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type Int_least8_t = Int8_t /* stdint.h:38:26 */
+type Int_least16_t = Int16_t /* stdint.h:39:25 */
+type Int_least32_t = Int32_t /* stdint.h:40:25 */
+type Int_least64_t = Int64_t /* stdint.h:41:25 */
+type Uint_least8_t = Uint8_t /* stdint.h:42:25 */
+type Uint_least16_t = Uint16_t /* stdint.h:43:24 */
+type Uint_least32_t = Uint32_t /* stdint.h:44:24 */
+type Uint_least64_t = Uint64_t /* stdint.h:45:24 */
+
+// 7.18.1.3 Fastest-width integer types
+type Int_fast8_t = Int8_t /* stdint.h:49:27 */
+type Int_fast16_t = Int16_t /* stdint.h:50:26 */
+type Int_fast32_t = Int32_t /* stdint.h:51:26 */
+type Int_fast64_t = Int64_t /* stdint.h:52:26 */
+type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */
+type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */
+type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */
+type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// 7.18.1.5 Greatest-width integer types
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Intmax_t = int64 /* _intmax_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */
+
+// Functions for byte reversed loads.
+
+type X_OSUnalignedU16 = struct{ F__val Uint16_t } /* OSByteOrder.h:64:1 */
+
+type X_OSUnalignedU32 = struct{ F__val Uint32_t } /* OSByteOrder.h:68:1 */
+
+type X_OSUnalignedU64 = struct{ F__val Uint64_t } /* OSByteOrder.h:72:1 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_char = uint8 /* _u_char.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_short = uint16 /* _u_short.h:30:25 */
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int = uint32 /* _u_int.h:30:25 */
+type U_long = uint64 /* types.h:88:33 */
+type Ushort = uint16 /* types.h:91:33 */ // Sys V compatibility
+type Uint = uint32 /* types.h:92:33 */ // Sys V compatibility
+
+type U_quad_t = U_int64_t /* types.h:95:33 */ // quads
+type Quad_t = Int64_t /* types.h:96:33 */
+type Qaddr_t = uintptr /* types.h:97:16 */
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Caddr_t = uintptr /* _caddr_t.h:30:14 */
+
+type Daddr_t = Int32_t /* types.h:101:33 */ // disk address
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+
+type Fixpt_t = U_int32_t /* types.h:105:33 */ // fixed point number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blkcnt_t = X__darwin_blkcnt_t /* _blkcnt_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Blksize_t = X__darwin_blksize_t /* _blksize_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino_t = X__darwin_ino_t /* _ino_t.h:31:33 */ // inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Ino64_t = X__darwin_ino64_t /* _ino64_t.h:31:33 */ // 64bit inode number
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Key_t = X__int32_t /* _key_t.h:31:26 */ // IPC key (for Sys V IPC)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Nlink_t = X__uint16_t /* _nlink_t.h:31:27 */ // link count
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Id_t = X__darwin_id_t /* _id_t.h:31:25 */ // can hold pid_t, gid_t, or uid_t
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+
+type Segsz_t = Int32_t /* types.h:125:33 */ // segment size
+type Swblk_t = Int32_t /* types.h:126:33 */ // swap offset
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+
+// Major, minor numbers, dev_t's.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Rsize_t = X__darwin_size_t /* _rsize_t.h:31:32 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Errno_t = int32 /* _errno_t.h:30:32 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// This code is present here in order to maintain historical backward
+// compatability, and is intended to be removed at some point in the
+// future; please include <sys/select.h> instead.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+type Fd_mask = X__int32_t /* types.h:189:25 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_attr_t = X__darwin_pthread_attr_t /* _pthread_attr_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_cond_t = X__darwin_pthread_cond_t /* _pthread_cond_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_condattr_t = X__darwin_pthread_condattr_t /* _pthread_condattr_t.h:31:37 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutex_t = X__darwin_pthread_mutex_t /* _pthread_mutex_t.h:31:34 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_mutexattr_t = X__darwin_pthread_mutexattr_t /* _pthread_mutexattr_t.h:31:38 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_once_t = X__darwin_pthread_once_t /* _pthread_once_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlock_t = X__darwin_pthread_rwlock_t /* _pthread_rwlock_t.h:31:35 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_rwlockattr_t = X__darwin_pthread_rwlockattr_t /* _pthread_rwlockattr_t.h:31:39 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_t = X__darwin_pthread_t /* _pthread_t.h:31:28 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pthread_key_t = X__darwin_pthread_key_t /* _pthread_key_t.h:31:32 */
+
+// statvfs and fstatvfs
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsblkcnt_t = X__darwin_fsblkcnt_t /* _fsblkcnt_t.h:31:41 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Fsfilcnt_t = X__darwin_fsfilcnt_t /* _fsfilcnt_t.h:31:41 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_freebsd_386.go b/vendor/modernc.org/libc/sys/types/types_freebsd_386.go
new file mode 100644
index 00000000..3d712f6f
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_freebsd_386.go
@@ -0,0 +1,1407 @@
+// 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_freebsd_386.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 = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint32 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint32 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46: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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint32 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go b/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go
new file mode 100644
index 00000000..dcec7778
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go
@@ -0,0 +1,1448 @@
+// 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_freebsd_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 = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint64 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint64 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46: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
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint64 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [16]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_linux_386.go b/vendor/modernc.org/libc/sys/types/types_linux_386.go
new file mode 100644
index 00000000..98949f0a
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_linux_386.go
@@ -0,0 +1,1484 @@
+// 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
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ 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
new file mode 100644
index 00000000..2aa62fe3
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_linux_amd64.go
@@ -0,0 +1,1502 @@
+// 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
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ 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
new file mode 100644
index 00000000..466d7a19
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_linux_arm.go
@@ -0,0 +1,1594 @@
+// 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
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+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
new file mode 100644
index 00000000..8efdaee6
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_linux_arm64.go
@@ -0,0 +1,1605 @@
+// 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
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+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
new file mode 100644
index 00000000..3f66eb72
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_linux_s390x.go
@@ -0,0 +1,1499 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 4321
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ 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
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ 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
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+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 00000000..37b688de
--- /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_openbsd_amd64.go b/vendor/modernc.org/libc/sys/types/types_openbsd_amd64.go
new file mode 100644
index 00000000..e42cd88d
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_openbsd_amd64.go
@@ -0,0 +1,652 @@
+// 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_openbsd_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
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+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
new file mode 100644
index 00000000..25487bb4
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_windows_386.go
@@ -0,0 +1,324 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_PGLOBAL = 0
+ X_PID_T_ = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIGSET_T_ = 0
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int32 /* types.h:60:13 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+type Mode_t = X_mode_t /* types.h:77:17 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+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
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* types.h:94:1 */
+
+type X_sigset_t = uint32 /* types.h:106:23 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_windows_amd64.go b/vendor/modernc.org/libc/sys/types/types_windows_amd64.go
new file mode 100644
index 00000000..cf0d07b9
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_windows_amd64.go
@@ -0,0 +1,326 @@
+// 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
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ 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
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DEV_T_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_PGLOBAL = 0
+ 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
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int64 /* types.h:63:17 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+type Mode_t = X_mode_t /* types.h:77:17 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+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
+ F__ccgo_pad1 [4]byte
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ 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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/capi_darwin_amd64.go b/vendor/modernc.org/libc/termios/capi_darwin_amd64.go
new file mode 100644
index 00000000..d6981189
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo termios/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 termios/termios_darwin_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/termios/capi_darwin_arm64.go b/vendor/modernc.org/libc/termios/capi_darwin_arm64.go
new file mode 100644
index 00000000..3e2e7800
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_darwin_arm64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_freebsd_386.go b/vendor/modernc.org/libc/termios/capi_freebsd_386.go
new file mode 100644
index 00000000..8bfc1af7
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_freebsd_386.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_freebsd_amd64.go b/vendor/modernc.org/libc/termios/capi_freebsd_amd64.go
new file mode 100644
index 00000000..b8f8280d
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_freebsd_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_linux_386.go b/vendor/modernc.org/libc/termios/capi_linux_386.go
new file mode 100644
index 00000000..bc8ddcbe
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_386.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_linux_amd64.go b/vendor/modernc.org/libc/termios/capi_linux_amd64.go
new file mode 100644
index 00000000..663db586
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_linux_arm.go b/vendor/modernc.org/libc/termios/capi_linux_arm.go
new file mode 100644
index 00000000..be226509
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_arm.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_linux_arm64.go b/vendor/modernc.org/libc/termios/capi_linux_arm64.go
new file mode 100644
index 00000000..f94925e6
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_arm64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_linux_s390x.go b/vendor/modernc.org/libc/termios/capi_linux_s390x.go
new file mode 100644
index 00000000..b4b71f1c
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_s390x.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_netbsd_amd64.go b/vendor/modernc.org/libc/termios/capi_netbsd_amd64.go
new file mode 100644
index 00000000..4b6fad62
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_netbsd_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/capi_openbsd_amd64.go b/vendor/modernc.org/libc/termios/capi_openbsd_amd64.go
new file mode 100644
index 00000000..537bac53
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo termios/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 termios/termios_openbsd_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/termios/termios_darwin_amd64.go b/vendor/modernc.org/libc/termios/termios_darwin_amd64.go
new file mode 100644
index 00000000..1dec2bc5
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_darwin_amd64.go
@@ -0,0 +1,1560 @@
+// Code generated by 'ccgo termios/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 termios/termios_darwin_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200
+ B0 = 0
+ B110 = 110
+ B115200 = 115200
+ B1200 = 1200
+ B134 = 134
+ B14400 = 14400
+ B150 = 150
+ B1800 = 1800
+ B19200 = 19200
+ B200 = 200
+ B230400 = 230400
+ B2400 = 2400
+ B28800 = 28800
+ B300 = 300
+ B38400 = 38400
+ B4800 = 4800
+ B50 = 50
+ B57600 = 57600
+ B600 = 600
+ B7200 = 7200
+ B75 = 75
+ B76800 = 76800
+ B9600 = 9600
+ BRKINT = 0x00000002
+ BS0 = 0x00000000
+ BS1 = 0x00008000
+ BSDLY = 0x00008000
+ CBRK = 255
+ CCAR_OFLOW = 0x00100000
+ CCTS_OFLOW = 0x00010000
+ CDISCARD = 15
+ CDSR_OFLOW = 0x00080000
+ CDSUSP = 25
+ CDTR_IFLOW = 0x00040000
+ CEOF = 4
+ CEOL = 0xff
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIGNORE = 0x00000001
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0x00008000
+ CMIN = 1
+ CQUIT = 034
+ CR0 = 0x00000000
+ CR1 = 0x00001000
+ CR2 = 0x00002000
+ CR3 = 0x00003000
+ CRDLY = 0x00003000
+ CREAD = 0x00000800
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 196608
+ CRTS_IFLOW = 0x00020000
+ CS5 = 0x00000000
+ CS6 = 0x00000100
+ CS7 = 0x00000200
+ CS8 = 0x00000300
+ CSIZE = 0x00000300
+ CSTART = 17
+ CSTATUS = 20
+ CSTOP = 19
+ CSTOPB = 0x00000400
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0x00000008
+ ECHOCTL = 0x00000040
+ ECHOE = 0x00000002
+ ECHOK = 0x00000004
+ ECHOKE = 0x00000001
+ ECHONL = 0x00000010
+ ECHOPRT = 0x00000020
+ EXTA = 19200
+ EXTB = 38400
+ EXTPROC = 0x00000800
+ FF0 = 0x00000000
+ FF1 = 0x00004000
+ FFDLY = 0x00004000
+ FLUSHO = 0x00800000
+ HUPCL = 0x00004000
+ ICANON = 0x00000100
+ ICRNL = 0x00000100
+ IEXTEN = 0x00000400
+ IGNBRK = 0x00000001
+ IGNCR = 0x00000080
+ IGNPAR = 0x00000004
+ IMAXBEL = 0x00002000
+ INLCR = 0x00000040
+ INPCK = 0x00000010
+ IOCPARM_MASK = 0x1fff
+ IOCPARM_MAX = 8192
+ ISIG = 0x00000080
+ ISTRIP = 0x00000020
+ IUTF8 = 0x00004000
+ IXANY = 0x00000800
+ IXOFF = 0x00000400
+ IXON = 0x00000200
+ MDMBUF = 0x00100000
+ NCCS = 20
+ NL0 = 0x00000000
+ NL1 = 0x00000100
+ NL2 = 0x00000200
+ NL3 = 0x00000300
+ NLDLY = 0x00000300
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x02000000
+ OCRNL = 0x00000010
+ OFDEL = 0x00020000
+ OFILL = 0x00000080
+ ONLCR = 0x00000002
+ ONLRET = 0x00000040
+ ONOCR = 0x00000020
+ ONOEOT = 0x00000008
+ OPOST = 0x00000001
+ OXTABS = 0x00000004
+ PARENB = 0x00001000
+ PARMRK = 0x00000008
+ PARODD = 0x00002000
+ PENDIN = 0x20000000
+ PPPDISC = 5
+ SLIPDISC = 4
+ TAB0 = 0x00000000
+ TAB1 = 0x00000400
+ TAB2 = 0x00000800
+ TAB3 = 0x00000004
+ TABDLY = 0x00000c04
+ TABLDISC = 3
+ TCIFLUSH = 1
+ TCIOFF = 3
+ TCIOFLUSH = 3
+ TCION = 4
+ TCOFLUSH = 2
+ TCOOFF = 1
+ TCOON = 2
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TCSASOFT = 0x10
+ TIOCM_CAR = 0100
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 128
+ TIOCM_RNG = 0200
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TOSTOP = 0x00400000
+ TTYDEF_CFLAG = 19200
+ TTYDEF_IFLAG = 11010
+ TTYDEF_LFLAG = 1483
+ TTYDEF_OFLAG = 3
+ TTYDEF_SPEED = 9600
+ TTYDISC = 0
+ VDISCARD = 15
+ VDSUSP = 11
+ VEOF = 0
+ VEOL = 1
+ VEOL2 = 2
+ VERASE = 3
+ VINTR = 8
+ VKILL = 5
+ VLNEXT = 14
+ VMIN = 16
+ VQUIT = 9
+ VREPRINT = 6
+ VSTART = 12
+ VSTATUS = 18
+ VSTOP = 13
+ VSUSP = 10
+ VT0 = 0x00000000
+ VT1 = 0x00010000
+ VTDLY = 0x00010000
+ VTIME = 17
+ VWERASE = 4
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T = 0
+ X_SYS_IOCCOM_H_ = 0
+ X_SYS_TERMIOS_H_ = 0
+ X_SYS_TTYCOM_H_ = 0
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1988, 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 spare 1
+// 19 spare 2
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+// The following block of features is unimplemented. Use of these flags in
+// programs will currently result in unexpected behaviour.
+//
+// - Begin unimplemented features
+// These manifest constants have the same names as those in the header
+// <sys/ioctl_compat.h>, so you are not permitted to have both definitions
+// in scope simultaneously in the same compilation unit. Nevertheless,
+// they are required to be in scope when _POSIX_C_SOURCE is requested;
+// this means that including the <sys/ioctl_compat.h> header before this
+// one when _POSIX_C_SOURCE is in scope will result in redefintions. We
+// attempt to maintain these as the same values so as to avoid this being
+// an outright error in most compilers.
+// not in sys/ioctl_compat.h, use OXTABS value
+// + End unimplemented features
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+type Tcflag_t = uint64 /* termios.h:263:25 */
+type Cc_t = uint8 /* termios.h:264:25 */
+type Speed_t = uint64 /* termios.h:265:25 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ F__ccgo_pad1 [4]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios.h:267:1 */
+
+// Include tty ioctl's that aren't just for backwards compatibility
+// with the old tty driver. These ioctl definitions were previously
+// in <sys/ioctl.h>.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)ioccom.h 8.2 (Berkeley) 3/28/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Ioctl's have the command encoded in the lower word, and the size of
+// any in or out parameters in the upper word. The high 3 bits of the
+// upper word are used to encode the in/out status of the parameter.
+
+// no parameters
+// copy parameters out
+// copy parameters in
+// copy paramters in and out
+// mask for IN/OUT/VOID
+
+// this should be _IORW, but stdio got there first
+
+// Tty ioctl's except for those supported only for backwards compatibility
+// with the old tty driver.
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* ttycom.h:82:1 */
+
+// 8-10 compat
+// 15 unused
+// 17-18 compat
+// 127-124 compat
+// 117-116 compat
+
+// END OF PROTECTED INCLUDE.
+
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_darwin_arm64.go b/vendor/modernc.org/libc/termios/termios_darwin_arm64.go
new file mode 100644
index 00000000..2445b648
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_darwin_arm64.go
@@ -0,0 +1,1547 @@
+// Code generated by 'ccgo termios/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 termios/termios_darwin_arm64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200
+ B0 = 0
+ B110 = 110
+ B115200 = 115200
+ B1200 = 1200
+ B134 = 134
+ B14400 = 14400
+ B150 = 150
+ B1800 = 1800
+ B19200 = 19200
+ B200 = 200
+ B230400 = 230400
+ B2400 = 2400
+ B28800 = 28800
+ B300 = 300
+ B38400 = 38400
+ B4800 = 4800
+ B50 = 50
+ B57600 = 57600
+ B600 = 600
+ B7200 = 7200
+ B75 = 75
+ B76800 = 76800
+ B9600 = 9600
+ BRKINT = 0x00000002
+ BS0 = 0x00000000
+ BS1 = 0x00008000
+ BSDLY = 0x00008000
+ CBRK = 255
+ CCAR_OFLOW = 0x00100000
+ CCTS_OFLOW = 0x00010000
+ CDISCARD = 15
+ CDSR_OFLOW = 0x00080000
+ CDSUSP = 25
+ CDTR_IFLOW = 0x00040000
+ CEOF = 4
+ CEOL = 0xff
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIGNORE = 0x00000001
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0x00008000
+ CMIN = 1
+ CQUIT = 034
+ CR0 = 0x00000000
+ CR1 = 0x00001000
+ CR2 = 0x00002000
+ CR3 = 0x00003000
+ CRDLY = 0x00003000
+ CREAD = 0x00000800
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 196608
+ CRTS_IFLOW = 0x00020000
+ CS5 = 0x00000000
+ CS6 = 0x00000100
+ CS7 = 0x00000200
+ CS8 = 0x00000300
+ CSIZE = 0x00000300
+ CSTART = 17
+ CSTATUS = 20
+ CSTOP = 19
+ CSTOPB = 0x00000400
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0x00000008
+ ECHOCTL = 0x00000040
+ ECHOE = 0x00000002
+ ECHOK = 0x00000004
+ ECHOKE = 0x00000001
+ ECHONL = 0x00000010
+ ECHOPRT = 0x00000020
+ EXTA = 19200
+ EXTB = 38400
+ EXTPROC = 0x00000800
+ FF0 = 0x00000000
+ FF1 = 0x00004000
+ FFDLY = 0x00004000
+ FLUSHO = 0x00800000
+ HUPCL = 0x00004000
+ ICANON = 0x00000100
+ ICRNL = 0x00000100
+ IEXTEN = 0x00000400
+ IGNBRK = 0x00000001
+ IGNCR = 0x00000080
+ IGNPAR = 0x00000004
+ IMAXBEL = 0x00002000
+ INLCR = 0x00000040
+ INPCK = 0x00000010
+ IOCPARM_MASK = 0x1fff
+ IOCPARM_MAX = 8192
+ ISIG = 0x00000080
+ ISTRIP = 0x00000020
+ IUTF8 = 0x00004000
+ IXANY = 0x00000800
+ IXOFF = 0x00000400
+ IXON = 0x00000200
+ MDMBUF = 0x00100000
+ NCCS = 20
+ NL0 = 0x00000000
+ NL1 = 0x00000100
+ NL2 = 0x00000200
+ NL3 = 0x00000300
+ NLDLY = 0x00000300
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x02000000
+ OCRNL = 0x00000010
+ OFDEL = 0x00020000
+ OFILL = 0x00000080
+ ONLCR = 0x00000002
+ ONLRET = 0x00000040
+ ONOCR = 0x00000020
+ ONOEOT = 0x00000008
+ OPOST = 0x00000001
+ OXTABS = 0x00000004
+ PARENB = 0x00001000
+ PARMRK = 0x00000008
+ PARODD = 0x00002000
+ PENDIN = 0x20000000
+ PPPDISC = 5
+ SLIPDISC = 4
+ TAB0 = 0x00000000
+ TAB1 = 0x00000400
+ TAB2 = 0x00000800
+ TAB3 = 0x00000004
+ TABDLY = 0x00000c04
+ TABLDISC = 3
+ TCIFLUSH = 1
+ TCIOFF = 3
+ TCIOFLUSH = 3
+ TCION = 4
+ TCOFLUSH = 2
+ TCOOFF = 1
+ TCOON = 2
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TCSASOFT = 0x10
+ TIOCM_CAR = 0100
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 128
+ TIOCM_RNG = 0200
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TOSTOP = 0x00400000
+ TTYDEF_CFLAG = 19200
+ TTYDEF_IFLAG = 11010
+ TTYDEF_LFLAG = 1483
+ TTYDEF_OFLAG = 3
+ TTYDEF_SPEED = 9600
+ TTYDISC = 0
+ VDISCARD = 15
+ VDSUSP = 11
+ VEOF = 0
+ VEOL = 1
+ VEOL2 = 2
+ VERASE = 3
+ VINTR = 8
+ VKILL = 5
+ VLNEXT = 14
+ VMIN = 16
+ VQUIT = 9
+ VREPRINT = 6
+ VSTART = 12
+ VSTATUS = 18
+ VSTOP = 13
+ VSUSP = 10
+ VT0 = 0x00000000
+ VT1 = 0x00010000
+ VTDLY = 0x00010000
+ VTIME = 17
+ VWERASE = 4
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T = 0
+ X_SYS_IOCCOM_H_ = 0
+ X_SYS_TERMIOS_H_ = 0
+ X_SYS_TTYCOM_H_ = 0
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__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 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1988, 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 spare 1
+// 19 spare 2
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+// The following block of features is unimplemented. Use of these flags in
+// programs will currently result in unexpected behaviour.
+//
+// - Begin unimplemented features
+// These manifest constants have the same names as those in the header
+// <sys/ioctl_compat.h>, so you are not permitted to have both definitions
+// in scope simultaneously in the same compilation unit. Nevertheless,
+// they are required to be in scope when _POSIX_C_SOURCE is requested;
+// this means that including the <sys/ioctl_compat.h> header before this
+// one when _POSIX_C_SOURCE is in scope will result in redefintions. We
+// attempt to maintain these as the same values so as to avoid this being
+// an outright error in most compilers.
+// not in sys/ioctl_compat.h, use OXTABS value
+// + End unimplemented features
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+type Tcflag_t = uint64 /* termios.h:263:25 */
+type Cc_t = uint8 /* termios.h:264:25 */
+type Speed_t = uint64 /* termios.h:265:25 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ F__ccgo_pad1 [4]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios.h:267:1 */
+
+// Include tty ioctl's that aren't just for backwards compatibility
+// with the old tty driver. These ioctl definitions were previously
+// in <sys/ioctl.h>.
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)ioccom.h 8.2 (Berkeley) 3/28/94
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Ioctl's have the command encoded in the lower word, and the size of
+// any in or out parameters in the upper word. The high 3 bits of the
+// upper word are used to encode the in/out status of the parameter.
+
+// no parameters
+// copy parameters out
+// copy parameters in
+// copy parameters in and out
+// mask for IN/OUT/VOID
+
+// this should be _IORW, but stdio got there first
+
+// Tty ioctl's except for those supported only for backwards compatibility
+// with the old tty driver.
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* ttycom.h:82:1 */
+
+// 8-10 compat
+// 15 unused
+// 17-18 compat
+// 127-124 compat
+// 117-116 compat
+// 105 unused
+
+// END OF PROTECTED INCLUDE.
+
+// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved
+// -
+// Copyright (c) 1982, 1986, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_freebsd_386.go b/vendor/modernc.org/libc/termios/termios_freebsd_386.go
new file mode 100644
index 00000000..8211b2ad
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_freebsd_386.go
@@ -0,0 +1,1002 @@
+// Code generated by 'ccgo termios/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 termios/termios_freebsd_386.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200
+ B0 = 0
+ B1000000 = 1000000
+ B110 = 110
+ B115200 = 115200
+ B1200 = 1200
+ B134 = 134
+ B14400 = 14400
+ B150 = 150
+ B1500000 = 1500000
+ B1800 = 1800
+ B19200 = 19200
+ B200 = 200
+ B2000000 = 2000000
+ B230400 = 230400
+ B2400 = 2400
+ B2500000 = 2500000
+ B28800 = 28800
+ B300 = 300
+ B3000000 = 3000000
+ B3500000 = 3500000
+ B38400 = 38400
+ B4000000 = 4000000
+ B460800 = 460800
+ B4800 = 4800
+ B50 = 50
+ B500000 = 500000
+ B57600 = 57600
+ B600 = 600
+ B7200 = 7200
+ B75 = 75
+ B76800 = 76800
+ B921600 = 921600
+ B9600 = 9600
+ BRKINT = 0x00000002
+ CBRK = 255
+ CCAR_OFLOW = 0x00100000
+ CCTS_OFLOW = 0x00010000
+ CDISCARD = 15
+ CDSR_OFLOW = 0x00080000
+ CDSUSP = 25
+ CDTR_IFLOW = 0x00040000
+ CEOF = 4
+ CEOL = 0xff
+ CEOT = 4
+ CERASE = 127
+ CERASE2 = 8
+ CFLUSH = 15
+ CIGNORE = 0x00000001
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0x00008000
+ CMIN = 1
+ CNO_RTSDTR = 0x00200000
+ CQUIT = 28
+ CREAD = 0x00000800
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 196608
+ CRTS_IFLOW = 0x00020000
+ CS5 = 0x00000000
+ CS6 = 0x00000100
+ CS7 = 0x00000200
+ CS8 = 0x00000300
+ CSIZE = 0x00000300
+ CSTART = 17
+ CSTATUS = 20
+ CSTOP = 19
+ CSTOPB = 0x00000400
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0x00000008
+ ECHOCTL = 0x00000040
+ ECHOE = 0x00000002
+ ECHOK = 0x00000004
+ ECHOKE = 0x00000001
+ ECHONL = 0x00000010
+ ECHOPRT = 0x00000020
+ EXTA = 19200
+ EXTB = 38400
+ EXTPROC = 0x00000800
+ FLUSHO = 0x00800000
+ H4DISC = 7
+ HUPCL = 0x00004000
+ ICANON = 0x00000100
+ ICRNL = 0x00000100
+ IEXTEN = 0x00000400
+ IGNBRK = 0x00000001
+ IGNCR = 0x00000080
+ IGNPAR = 0x00000004
+ IMAXBEL = 0x00002000
+ INLCR = 0x00000040
+ INPCK = 0x00000010
+ IOCPARM_MASK = 8191
+ IOCPARM_MAX = 8192
+ IOCPARM_SHIFT = 13
+ IOC_DIRMASK = 3758096384
+ IOC_IN = 0x80000000
+ IOC_INOUT = 3221225472
+ IOC_OUT = 0x40000000
+ IOC_VOID = 0x20000000
+ ISIG = 0x00000080
+ ISTRIP = 0x00000020
+ IXANY = 0x00000800
+ IXOFF = 0x00000400
+ IXON = 0x00000200
+ MDMBUF = 1048576
+ NCCS = 20
+ NETGRAPHDISC = 6
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x02000000
+ OCRNL = 0x00000010
+ ONLCR = 0x00000002
+ ONLRET = 0x00000040
+ ONOCR = 0x00000020
+ ONOEOT = 0x00000008
+ OPOST = 0x00000001
+ OXTABS = 4
+ PARENB = 0x00001000
+ PARMRK = 0x00000008
+ PARODD = 0x00002000
+ PENDIN = 0x20000000
+ PPPDISC = 5
+ SLIPDISC = 4
+ TAB0 = 0x00000000
+ TAB3 = 0x00000004
+ TABDLY = 0x00000004
+ TCIFLUSH = 1
+ TCIOFF = 3
+ TCIOFLUSH = 3
+ TCION = 4
+ TCOFLUSH = 2
+ TCOOFF = 1
+ TCOON = 2
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TCSASOFT = 0x10
+ TIOCM_CAR = 64
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DCD = 0100
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 0200
+ TIOCM_RNG = 128
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TOSTOP = 0x00400000
+ TTYDEF_CFLAG = 19200
+ TTYDEF_IFLAG = 11010
+ TTYDEF_LFLAG = 1483
+ TTYDEF_LFLAG_ECHO = 1483
+ TTYDEF_LFLAG_NOECHO = 1408
+ TTYDEF_OFLAG = 3
+ TTYDEF_SPEED = 9600
+ TTYDISC = 0
+ VDISCARD = 15
+ VDSUSP = 11
+ VEOF = 0
+ VEOL = 1
+ VEOL2 = 2
+ VERASE = 3
+ VERASE2 = 7
+ VINTR = 8
+ VKILL = 5
+ VLNEXT = 14
+ VMIN = 16
+ VQUIT = 9
+ VREPRINT = 6
+ VSTART = 12
+ VSTATUS = 18
+ VSTOP = 13
+ VSUSP = 10
+ VTIME = 17
+ VWERASE = 4
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_POSIX_VDISABLE = 0xff
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_IOCCOM_H_ = 0
+ X_SYS_TTYCOM_H_ = 0
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_SYS__TERMIOS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_SYS__WINSIZE_H_ = 0
+ X_TERMIOS_H_ = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 ex-spare 1
+// 19 spare 2
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+// Standard speeds
+
+type Tcflag_t = uint32 /* _termios.h:224:22 */
+type Cc_t = uint8 /* _termios.h:225:23 */
+type Speed_t = uint32 /* _termios.h:226:22 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* _termios.h:228:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* _winsize.h:42:1 */
+
+type Pid_t = X__pid_t /* termios.h:46:18 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// Tty ioctl's except for those supported only for backwards compatibility
+// with the old tty driver.
+
+// 0-2 compat
+// 3-7 unused
+// 8-10 compat
+// 11-12 unused
+// 17-18 compat
+// 23-25 unused
+// 29-85 unused
+// 88 unused
+// 89-91 conflicts: tun and tap
+// 92-93 tun and tap
+// 94-97 conflicts: tun and tap
+// 100 unused
+// 105 unused
+// 116-117 compat
+// 124-127 compat
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// XXX: A lot of code uses lowercase characters, but control-character
+// conversion is actually only valid when applied to uppercase
+// characters. We just treat lowercase characters as if they were
+// inserted as uppercase.
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_freebsd_amd64.go b/vendor/modernc.org/libc/termios/termios_freebsd_amd64.go
new file mode 100644
index 00000000..f1622be4
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_freebsd_amd64.go
@@ -0,0 +1,999 @@
+// Code generated by 'ccgo termios/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 termios/termios_freebsd_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200
+ B0 = 0
+ B110 = 110
+ B115200 = 115200
+ B1200 = 1200
+ B134 = 134
+ B14400 = 14400
+ B150 = 150
+ B1800 = 1800
+ B19200 = 19200
+ B200 = 200
+ B230400 = 230400
+ B2400 = 2400
+ B28800 = 28800
+ B300 = 300
+ B38400 = 38400
+ B460800 = 460800
+ B4800 = 4800
+ B50 = 50
+ B57600 = 57600
+ B600 = 600
+ B7200 = 7200
+ B75 = 75
+ B76800 = 76800
+ B921600 = 921600
+ B9600 = 9600
+ BRKINT = 0x00000002
+ CBRK = 255
+ CCAR_OFLOW = 0x00100000
+ CCTS_OFLOW = 0x00010000
+ CDISCARD = 15
+ CDSR_OFLOW = 0x00080000
+ CDSUSP = 25
+ CDTR_IFLOW = 0x00040000
+ CEOF = 4
+ CEOL = 0xff
+ CEOT = 4
+ CERASE = 127
+ CERASE2 = 8
+ CFLUSH = 15
+ CIGNORE = 0x00000001
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0x00008000
+ CMIN = 1
+ CNO_RTSDTR = 0x00200000
+ CQUIT = 28
+ CREAD = 0x00000800
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 196608
+ CRTS_IFLOW = 0x00020000
+ CS5 = 0x00000000
+ CS6 = 0x00000100
+ CS7 = 0x00000200
+ CS8 = 0x00000300
+ CSIZE = 0x00000300
+ CSTART = 17
+ CSTATUS = 20
+ CSTOP = 19
+ CSTOPB = 0x00000400
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0x00000008
+ ECHOCTL = 0x00000040
+ ECHOE = 0x00000002
+ ECHOK = 0x00000004
+ ECHOKE = 0x00000001
+ ECHONL = 0x00000010
+ ECHOPRT = 0x00000020
+ EXTA = 19200
+ EXTB = 38400
+ EXTPROC = 0x00000800
+ FLUSHO = 0x00800000
+ H4DISC = 7
+ HUPCL = 0x00004000
+ ICANON = 0x00000100
+ ICRNL = 0x00000100
+ IEXTEN = 0x00000400
+ IGNBRK = 0x00000001
+ IGNCR = 0x00000080
+ IGNPAR = 0x00000004
+ IMAXBEL = 0x00002000
+ INLCR = 0x00000040
+ INPCK = 0x00000010
+ IOCPARM_MASK = 8191
+ IOCPARM_MAX = 8192
+ IOCPARM_SHIFT = 13
+ IOC_DIRMASK = 3758096384
+ IOC_IN = 0x80000000
+ IOC_INOUT = 3221225472
+ IOC_OUT = 0x40000000
+ IOC_VOID = 0x20000000
+ ISIG = 0x00000080
+ ISTRIP = 0x00000020
+ IXANY = 0x00000800
+ IXOFF = 0x00000400
+ IXON = 0x00000200
+ MDMBUF = 1048576
+ NCCS = 20
+ NETGRAPHDISC = 6
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x02000000
+ OCRNL = 0x00000010
+ ONLCR = 0x00000002
+ ONLRET = 0x00000040
+ ONOCR = 0x00000020
+ ONOEOT = 0x00000008
+ OPOST = 0x00000001
+ OXTABS = 4
+ PARENB = 0x00001000
+ PARMRK = 0x00000008
+ PARODD = 0x00002000
+ PENDIN = 0x20000000
+ PPPDISC = 5
+ SLIPDISC = 4
+ TAB0 = 0x00000000
+ TAB3 = 0x00000004
+ TABDLY = 0x00000004
+ TCIFLUSH = 1
+ TCIOFF = 3
+ TCIOFLUSH = 3
+ TCION = 4
+ TCOFLUSH = 2
+ TCOOFF = 1
+ TCOON = 2
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TCSASOFT = 0x10
+ TIOCM_CAR = 64
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DCD = 0100
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 0200
+ TIOCM_RNG = 128
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TOSTOP = 0x00400000
+ TTYDEF_CFLAG = 19200
+ TTYDEF_IFLAG = 11010
+ TTYDEF_LFLAG = 1483
+ TTYDEF_LFLAG_ECHO = 1483
+ TTYDEF_LFLAG_NOECHO = 1408
+ TTYDEF_OFLAG = 3
+ TTYDEF_SPEED = 9600
+ TTYDISC = 0
+ VDISCARD = 15
+ VDSUSP = 11
+ VEOF = 0
+ VEOL = 1
+ VEOL2 = 2
+ VERASE = 3
+ VERASE2 = 7
+ VINTR = 8
+ VKILL = 5
+ VLNEXT = 14
+ VMIN = 16
+ VQUIT = 9
+ VREPRINT = 6
+ VSTART = 12
+ VSTATUS = 18
+ VSTOP = 13
+ VSUSP = 10
+ VTIME = 17
+ VWERASE = 4
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_POSIX_VDISABLE = 0xff
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_IOCCOM_H_ = 0
+ X_SYS_TTYCOM_H_ = 0
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_SYS__TERMIOS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_SYS__WINSIZE_H_ = 0
+ X_TERMIOS_H_ = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 ex-spare 1
+// 19 spare 2
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+// Standard speeds
+
+type Tcflag_t = uint32 /* _termios.h:216:22 */
+type Cc_t = uint8 /* _termios.h:217:23 */
+type Speed_t = uint32 /* _termios.h:218:22 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* _termios.h:220:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* _winsize.h:42:1 */
+
+type Pid_t = X__pid_t /* termios.h:46:18 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+// $FreeBSD$
+
+// Tty ioctl's except for those supported only for backwards compatibility
+// with the old tty driver.
+
+// 0-2 compat
+// 3-7 unused
+// 8-10 compat
+// 11-12 unused
+// 17-18 compat
+// 23-25 unused
+// 29-85 unused
+// 88 unused
+// 89-91 conflicts: tun and tap
+// 92-93 tun and tap
+// 94-97 conflicts: tun and tap
+// 100 unused
+// 105 unused
+// 116-117 compat
+// 124-127 compat
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+// $FreeBSD$
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// XXX: A lot of code uses lowercase characters, but control-character
+// conversion is actually only valid when applied to uppercase
+// characters. We just treat lowercase characters as if they were
+// inserted as uppercase.
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_linux_386.go b/vendor/modernc.org/libc/termios/termios_linux_386.go
new file mode 100644
index 00000000..94986fa3
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_linux_386.go
@@ -0,0 +1,1004 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_386.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ B0 = 0000000
+ B1000000 = 0010010
+ B110 = 0000003
+ B115200 = 0010002
+ B1152000 = 0010011
+ B1200 = 0000011
+ B134 = 0000004
+ B150 = 0000005
+ B1500000 = 0010012
+ B1800 = 0000012
+ B19200 = 0000016
+ B200 = 0000006
+ B2000000 = 0010013
+ B230400 = 0010003
+ B2400 = 0000013
+ B2500000 = 0010014
+ B300 = 0000007
+ B3000000 = 0010015
+ B3500000 = 0010016
+ B38400 = 0000017
+ B4000000 = 0010017
+ B460800 = 0010004
+ B4800 = 0000014
+ B50 = 0000001
+ B500000 = 0010005
+ B57600 = 0010001
+ B576000 = 0010006
+ B600 = 0000010
+ B75 = 0000002
+ B921600 = 0010007
+ B9600 = 0000015
+ BRKINT = 0000002
+ BS0 = 0000000
+ BS1 = 0020000
+ BSDLY = 0020000
+ CBAUD = 000000010017
+ CBAUDEX = 000000010000
+ CBRK = 0
+ CDISCARD = 15
+ CDSUSP = 25
+ CEOF = 4
+ CEOL = 0
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIBAUD = 002003600000
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0004000
+ CMIN = 1
+ CMSPAR = 010000000000
+ CQUIT = 034
+ CR0 = 0000000
+ CR1 = 0001000
+ CR2 = 0002000
+ CR3 = 0003000
+ CRDLY = 0003000
+ CREAD = 0000200
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 020000000000
+ CS5 = 0000000
+ CS6 = 0000020
+ CS7 = 0000040
+ CS8 = 0000060
+ CSIZE = 0000060
+ CSTART = 17
+ CSTATUS = 0
+ CSTOP = 19
+ CSTOPB = 0000100
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0000010
+ ECHOCTL = 0001000
+ ECHOE = 0000020
+ ECHOK = 0000040
+ ECHOKE = 0004000
+ ECHONL = 0000100
+ ECHOPRT = 0002000
+ EXTA = 14
+ EXTB = 15
+ EXTPROC = 0200000
+ FF0 = 0000000
+ FF1 = 0100000
+ FFDLY = 0100000
+ FLUSHO = 0010000
+ HUPCL = 0002000
+ ICANON = 0000002
+ ICRNL = 0000400
+ IEXTEN = 0100000
+ IGNBRK = 0000001
+ IGNCR = 0000200
+ IGNPAR = 0000004
+ IMAXBEL = 0020000
+ INLCR = 0000100
+ INPCK = 0000020
+ ISIG = 0000001
+ ISTRIP = 0000040
+ IUCLC = 0001000
+ IUTF8 = 0040000
+ IXANY = 0004000
+ IXOFF = 0010000
+ IXON = 0002000
+ NCCS = 32
+ NL0 = 0000000
+ NL1 = 0000400
+ NLDLY = 0000400
+ NOFLSH = 0000200
+ OCRNL = 0000010
+ OFDEL = 0000200
+ OFILL = 0000100
+ OLCUC = 0000002
+ ONLCR = 0000004
+ ONLRET = 0000040
+ ONOCR = 0000020
+ OPOST = 0000001
+ PARENB = 0000400
+ PARMRK = 0000010
+ PARODD = 0001000
+ PENDIN = 0040000
+ TAB0 = 0000000
+ TAB1 = 0004000
+ TAB2 = 0010000
+ TAB3 = 0014000
+ TABDLY = 0014000
+ TCIFLUSH = 0
+ TCIOFF = 2
+ TCIOFLUSH = 2
+ TCION = 3
+ TCOFLUSH = 1
+ TCOOFF = 0
+ TCOON = 1
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TIOCSER_TEMT = 0x01
+ TOSTOP = 0000400
+ TTYDEF_CFLAG = 1440
+ TTYDEF_IFLAG = 11554
+ TTYDEF_LFLAG = 35355
+ TTYDEF_OFLAG = 6149
+ TTYDEF_SPEED = 13
+ VDISCARD = 13
+ VEOF = 4
+ VEOL = 11
+ VEOL2 = 16
+ VERASE = 2
+ VINTR = 0
+ VKILL = 3
+ VLNEXT = 15
+ VMIN = 6
+ VQUIT = 1
+ VREPRINT = 12
+ VSTART = 8
+ VSTOP = 9
+ VSUSP = 10
+ VSWTC = 7
+ VT0 = 0000000
+ VT1 = 0040000
+ VTDLY = 0040000
+ VTIME = 5
+ VWERASE = 14
+ XCASE = 0000004
+ XTABS = 0014000
+ X_ATFILE_SOURCE = 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_HAVE_STRUCT_TERMIOS_C_ISPEED = 1
+ X_HAVE_STRUCT_TERMIOS_C_OSPEED = 1
+ X_ILP32 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_TERMIOS_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// We need `pid_t'.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Pid_t = X__pid_t /* termios.h:30:17 */
+
+// Get the system-dependent definitions of `struct termios', `tcflag_t',
+// `cc_t', `speed_t', and all the macros specifying the flag bits.
+// termios type and macro definitions. Linux version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+type Cc_t = uint8 /* termios.h:23:23 */
+type Speed_t = uint32 /* termios.h:24:22 */
+type Tcflag_t = uint32 /* termios.h:25:22 */
+
+// struct termios definition. Linux/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
+// <https://www.gnu.org/licenses/>.
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_line Cc_t
+ Fc_cc [32]Cc_t
+ F__ccgo_pad1 [3]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios-struct.h:24:1 */
+
+// -
+// Copyright (c) 1982, 1986, 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.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state. Linux version.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_linux_amd64.go b/vendor/modernc.org/libc/termios/termios_linux_amd64.go
new file mode 100644
index 00000000..929ca5f5
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_linux_amd64.go
@@ -0,0 +1,1022 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ B0 = 0000000
+ B1000000 = 0010010
+ B110 = 0000003
+ B115200 = 0010002
+ B1152000 = 0010011
+ B1200 = 0000011
+ B134 = 0000004
+ B150 = 0000005
+ B1500000 = 0010012
+ B1800 = 0000012
+ B19200 = 0000016
+ B200 = 0000006
+ B2000000 = 0010013
+ B230400 = 0010003
+ B2400 = 0000013
+ B2500000 = 0010014
+ B300 = 0000007
+ B3000000 = 0010015
+ B3500000 = 0010016
+ B38400 = 0000017
+ B4000000 = 0010017
+ B460800 = 0010004
+ B4800 = 0000014
+ B50 = 0000001
+ B500000 = 0010005
+ B57600 = 0010001
+ B576000 = 0010006
+ B600 = 0000010
+ B75 = 0000002
+ B921600 = 0010007
+ B9600 = 0000015
+ BRKINT = 0000002
+ BS0 = 0000000
+ BS1 = 0020000
+ BSDLY = 0020000
+ CBAUD = 000000010017
+ CBAUDEX = 000000010000
+ CBRK = 0
+ CDISCARD = 15
+ CDSUSP = 25
+ CEOF = 4
+ CEOL = 0
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIBAUD = 002003600000
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0004000
+ CMIN = 1
+ CMSPAR = 010000000000
+ CQUIT = 034
+ CR0 = 0000000
+ CR1 = 0001000
+ CR2 = 0002000
+ CR3 = 0003000
+ CRDLY = 0003000
+ CREAD = 0000200
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 020000000000
+ CS5 = 0000000
+ CS6 = 0000020
+ CS7 = 0000040
+ CS8 = 0000060
+ CSIZE = 0000060
+ CSTART = 17
+ CSTATUS = 0
+ CSTOP = 19
+ CSTOPB = 0000100
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0000010
+ ECHOCTL = 0001000
+ ECHOE = 0000020
+ ECHOK = 0000040
+ ECHOKE = 0004000
+ ECHONL = 0000100
+ ECHOPRT = 0002000
+ EXTA = 14
+ EXTB = 15
+ EXTPROC = 0200000
+ FF0 = 0000000
+ FF1 = 0100000
+ FFDLY = 0100000
+ FLUSHO = 0010000
+ HUPCL = 0002000
+ ICANON = 0000002
+ ICRNL = 0000400
+ IEXTEN = 0100000
+ IGNBRK = 0000001
+ IGNCR = 0000200
+ IGNPAR = 0000004
+ IMAXBEL = 0020000
+ INLCR = 0000100
+ INPCK = 0000020
+ ISIG = 0000001
+ ISTRIP = 0000040
+ IUCLC = 0001000
+ IUTF8 = 0040000
+ IXANY = 0004000
+ IXOFF = 0010000
+ IXON = 0002000
+ NCCS = 32
+ NL0 = 0000000
+ NL1 = 0000400
+ NLDLY = 0000400
+ NOFLSH = 0000200
+ OCRNL = 0000010
+ OFDEL = 0000200
+ OFILL = 0000100
+ OLCUC = 0000002
+ ONLCR = 0000004
+ ONLRET = 0000040
+ ONOCR = 0000020
+ OPOST = 0000001
+ PARENB = 0000400
+ PARMRK = 0000010
+ PARODD = 0001000
+ PENDIN = 0040000
+ TAB0 = 0000000
+ TAB1 = 0004000
+ TAB2 = 0010000
+ TAB3 = 0014000
+ TABDLY = 0014000
+ TCIFLUSH = 0
+ TCIOFF = 2
+ TCIOFLUSH = 2
+ TCION = 3
+ TCOFLUSH = 1
+ TCOOFF = 0
+ TCOON = 1
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TIOCSER_TEMT = 0x01
+ TOSTOP = 0000400
+ TTYDEF_CFLAG = 1440
+ TTYDEF_IFLAG = 11554
+ TTYDEF_LFLAG = 35355
+ TTYDEF_OFLAG = 6149
+ TTYDEF_SPEED = 13
+ VDISCARD = 13
+ VEOF = 4
+ VEOL = 11
+ VEOL2 = 16
+ VERASE = 2
+ VINTR = 0
+ VKILL = 3
+ VLNEXT = 15
+ VMIN = 6
+ VQUIT = 1
+ VREPRINT = 12
+ VSTART = 8
+ VSTOP = 9
+ VSUSP = 10
+ VSWTC = 7
+ VT0 = 0000000
+ VT1 = 0040000
+ VTDLY = 0040000
+ VTIME = 5
+ VWERASE = 14
+ XCASE = 0000004
+ XTABS = 0014000
+ X_ATFILE_SOURCE = 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_HAVE_STRUCT_TERMIOS_C_ISPEED = 1
+ X_HAVE_STRUCT_TERMIOS_C_OSPEED = 1
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_TERMIOS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// We need `pid_t'.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Pid_t = X__pid_t /* termios.h:30:17 */
+
+// Get the system-dependent definitions of `struct termios', `tcflag_t',
+// `cc_t', `speed_t', and all the macros specifying the flag bits.
+// termios type and macro definitions. Linux version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+type Cc_t = uint8 /* termios.h:23:23 */
+type Speed_t = uint32 /* termios.h:24:22 */
+type Tcflag_t = uint32 /* termios.h:25:22 */
+
+// struct termios definition. Linux/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
+// <https://www.gnu.org/licenses/>.
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_line Cc_t
+ Fc_cc [32]Cc_t
+ F__ccgo_pad1 [3]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios-struct.h:24:1 */
+
+// -
+// Copyright (c) 1982, 1986, 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.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state. Linux version.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_linux_arm.go b/vendor/modernc.org/libc/termios/termios_linux_arm.go
new file mode 100644
index 00000000..2721b808
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_linux_arm.go
@@ -0,0 +1,1063 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_arm.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ B0 = 0000000
+ B1000000 = 0010010
+ B110 = 0000003
+ B115200 = 0010002
+ B1152000 = 0010011
+ B1200 = 0000011
+ B134 = 0000004
+ B150 = 0000005
+ B1500000 = 0010012
+ B1800 = 0000012
+ B19200 = 0000016
+ B200 = 0000006
+ B2000000 = 0010013
+ B230400 = 0010003
+ B2400 = 0000013
+ B2500000 = 0010014
+ B300 = 0000007
+ B3000000 = 0010015
+ B3500000 = 0010016
+ B38400 = 0000017
+ B4000000 = 0010017
+ B460800 = 0010004
+ B4800 = 0000014
+ B50 = 0000001
+ B500000 = 0010005
+ B57600 = 0010001
+ B576000 = 0010006
+ B600 = 0000010
+ B75 = 0000002
+ B921600 = 0010007
+ B9600 = 0000015
+ BRKINT = 0000002
+ BS0 = 0000000
+ BS1 = 0020000
+ BSDLY = 0020000
+ CBAUD = 000000010017
+ CBAUDEX = 000000010000
+ CBRK = 0
+ CDISCARD = 15
+ CDSUSP = 25
+ CEOF = 4
+ CEOL = 0
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIBAUD = 002003600000
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0004000
+ CMIN = 1
+ CMSPAR = 010000000000
+ CQUIT = 034
+ CR0 = 0000000
+ CR1 = 0001000
+ CR2 = 0002000
+ CR3 = 0003000
+ CRDLY = 0003000
+ CREAD = 0000200
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 020000000000
+ CS5 = 0000000
+ CS6 = 0000020
+ CS7 = 0000040
+ CS8 = 0000060
+ CSIZE = 0000060
+ CSTART = 17
+ CSTATUS = 0
+ CSTOP = 19
+ CSTOPB = 0000100
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0000010
+ ECHOCTL = 0001000
+ ECHOE = 0000020
+ ECHOK = 0000040
+ ECHOKE = 0004000
+ ECHONL = 0000100
+ ECHOPRT = 0002000
+ EXTA = 14
+ EXTB = 15
+ EXTPROC = 0200000
+ FF0 = 0000000
+ FF1 = 0100000
+ FFDLY = 0100000
+ FLUSHO = 0010000
+ HUPCL = 0002000
+ ICANON = 0000002
+ ICRNL = 0000400
+ IEXTEN = 0100000
+ IGNBRK = 0000001
+ IGNCR = 0000200
+ IGNPAR = 0000004
+ IMAXBEL = 0020000
+ INLCR = 0000100
+ INPCK = 0000020
+ ISIG = 0000001
+ ISTRIP = 0000040
+ IUCLC = 0001000
+ IUTF8 = 0040000
+ IXANY = 0004000
+ IXOFF = 0010000
+ IXON = 0002000
+ NCCS = 32
+ NL0 = 0000000
+ NL1 = 0000400
+ NLDLY = 0000400
+ NOFLSH = 0000200
+ OCRNL = 0000010
+ OFDEL = 0000200
+ OFILL = 0000100
+ OLCUC = 0000002
+ ONLCR = 0000004
+ ONLRET = 0000040
+ ONOCR = 0000020
+ OPOST = 0000001
+ PARENB = 0000400
+ PARMRK = 0000010
+ PARODD = 0001000
+ PENDIN = 0040000
+ TAB0 = 0000000
+ TAB1 = 0004000
+ TAB2 = 0010000
+ TAB3 = 0014000
+ TABDLY = 0014000
+ TCIFLUSH = 0
+ TCIOFF = 2
+ TCIOFLUSH = 2
+ TCION = 3
+ TCOFLUSH = 1
+ TCOOFF = 0
+ TCOON = 1
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TIOCSER_TEMT = 0x01
+ TOSTOP = 0000400
+ TTYDEF_CFLAG = 1440
+ TTYDEF_IFLAG = 11554
+ TTYDEF_LFLAG = 35355
+ TTYDEF_OFLAG = 6149
+ TTYDEF_SPEED = 13
+ VDISCARD = 13
+ VEOF = 4
+ VEOL = 11
+ VEOL2 = 16
+ VERASE = 2
+ VINTR = 0
+ VKILL = 3
+ VLNEXT = 15
+ VMIN = 6
+ VQUIT = 1
+ VREPRINT = 12
+ VSTART = 8
+ VSTOP = 9
+ VSUSP = 10
+ VSWTC = 7
+ VT0 = 0000000
+ VT1 = 0040000
+ VTDLY = 0040000
+ VTIME = 5
+ VWERASE = 14
+ XCASE = 0000004
+ XTABS = 0014000
+ X_ATFILE_SOURCE = 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_HAVE_STRUCT_TERMIOS_C_ISPEED = 1
+ X_HAVE_STRUCT_TERMIOS_C_OSPEED = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_TERMIOS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// We need `pid_t'.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Pid_t = X__pid_t /* termios.h:30:17 */
+
+// Get the system-dependent definitions of `struct termios', `tcflag_t',
+// `cc_t', `speed_t', and all the macros specifying the flag bits.
+// termios type and macro definitions. Linux version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+type Cc_t = uint8 /* termios.h:23:23 */
+type Speed_t = uint32 /* termios.h:24:22 */
+type Tcflag_t = uint32 /* termios.h:25:22 */
+
+// struct termios definition. Linux/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
+// <https://www.gnu.org/licenses/>.
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_line Cc_t
+ Fc_cc [32]Cc_t
+ F__ccgo_pad1 [3]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios-struct.h:24:1 */
+
+// -
+// Copyright (c) 1982, 1986, 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.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state. Linux version.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_linux_arm64.go b/vendor/modernc.org/libc/termios/termios_linux_arm64.go
new file mode 100644
index 00000000..5ff212e6
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_linux_arm64.go
@@ -0,0 +1,1090 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_arm64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ B0 = 0000000
+ B1000000 = 0010010
+ B110 = 0000003
+ B115200 = 0010002
+ B1152000 = 0010011
+ B1200 = 0000011
+ B134 = 0000004
+ B150 = 0000005
+ B1500000 = 0010012
+ B1800 = 0000012
+ B19200 = 0000016
+ B200 = 0000006
+ B2000000 = 0010013
+ B230400 = 0010003
+ B2400 = 0000013
+ B2500000 = 0010014
+ B300 = 0000007
+ B3000000 = 0010015
+ B3500000 = 0010016
+ B38400 = 0000017
+ B4000000 = 0010017
+ B460800 = 0010004
+ B4800 = 0000014
+ B50 = 0000001
+ B500000 = 0010005
+ B57600 = 0010001
+ B576000 = 0010006
+ B600 = 0000010
+ B75 = 0000002
+ B921600 = 0010007
+ B9600 = 0000015
+ BRKINT = 0000002
+ BS0 = 0000000
+ BS1 = 0020000
+ BSDLY = 0020000
+ CBAUD = 000000010017
+ CBAUDEX = 000000010000
+ CBRK = 0
+ CDISCARD = 15
+ CDSUSP = 25
+ CEOF = 4
+ CEOL = 0
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIBAUD = 002003600000
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0004000
+ CMIN = 1
+ CMSPAR = 010000000000
+ CQUIT = 034
+ CR0 = 0000000
+ CR1 = 0001000
+ CR2 = 0002000
+ CR3 = 0003000
+ CRDLY = 0003000
+ CREAD = 0000200
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 020000000000
+ CS5 = 0000000
+ CS6 = 0000020
+ CS7 = 0000040
+ CS8 = 0000060
+ CSIZE = 0000060
+ CSTART = 17
+ CSTATUS = 0
+ CSTOP = 19
+ CSTOPB = 0000100
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0000010
+ ECHOCTL = 0001000
+ ECHOE = 0000020
+ ECHOK = 0000040
+ ECHOKE = 0004000
+ ECHONL = 0000100
+ ECHOPRT = 0002000
+ EXTA = 14
+ EXTB = 15
+ EXTPROC = 0200000
+ FF0 = 0000000
+ FF1 = 0100000
+ FFDLY = 0100000
+ FLUSHO = 0010000
+ HUPCL = 0002000
+ ICANON = 0000002
+ ICRNL = 0000400
+ IEXTEN = 0100000
+ IGNBRK = 0000001
+ IGNCR = 0000200
+ IGNPAR = 0000004
+ IMAXBEL = 0020000
+ INLCR = 0000100
+ INPCK = 0000020
+ ISIG = 0000001
+ ISTRIP = 0000040
+ IUCLC = 0001000
+ IUTF8 = 0040000
+ IXANY = 0004000
+ IXOFF = 0010000
+ IXON = 0002000
+ NCCS = 32
+ NL0 = 0000000
+ NL1 = 0000400
+ NLDLY = 0000400
+ NOFLSH = 0000200
+ OCRNL = 0000010
+ OFDEL = 0000200
+ OFILL = 0000100
+ OLCUC = 0000002
+ ONLCR = 0000004
+ ONLRET = 0000040
+ ONOCR = 0000020
+ OPOST = 0000001
+ PARENB = 0000400
+ PARMRK = 0000010
+ PARODD = 0001000
+ PENDIN = 0040000
+ TAB0 = 0000000
+ TAB1 = 0004000
+ TAB2 = 0010000
+ TAB3 = 0014000
+ TABDLY = 0014000
+ TCIFLUSH = 0
+ TCIOFF = 2
+ TCIOFLUSH = 2
+ TCION = 3
+ TCOFLUSH = 1
+ TCOOFF = 0
+ TCOON = 1
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TIOCSER_TEMT = 0x01
+ TOSTOP = 0000400
+ TTYDEF_CFLAG = 1440
+ TTYDEF_IFLAG = 11554
+ TTYDEF_LFLAG = 35355
+ TTYDEF_OFLAG = 6149
+ TTYDEF_SPEED = 13
+ VDISCARD = 13
+ VEOF = 4
+ VEOL = 11
+ VEOL2 = 16
+ VERASE = 2
+ VINTR = 0
+ VKILL = 3
+ VLNEXT = 15
+ VMIN = 6
+ VQUIT = 1
+ VREPRINT = 12
+ VSTART = 8
+ VSTOP = 9
+ VSUSP = 10
+ VSWTC = 7
+ VT0 = 0000000
+ VT1 = 0040000
+ VTDLY = 0040000
+ VTIME = 5
+ VWERASE = 14
+ XCASE = 0000004
+ XTABS = 0014000
+ X_ATFILE_SOURCE = 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_HAVE_STRUCT_TERMIOS_C_ISPEED = 1
+ X_HAVE_STRUCT_TERMIOS_C_OSPEED = 1
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_TERMIOS_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// We need `pid_t'.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Pid_t = X__pid_t /* termios.h:30:17 */
+
+// Get the system-dependent definitions of `struct termios', `tcflag_t',
+// `cc_t', `speed_t', and all the macros specifying the flag bits.
+// termios type and macro definitions. Linux version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+type Cc_t = uint8 /* termios.h:23:23 */
+type Speed_t = uint32 /* termios.h:24:22 */
+type Tcflag_t = uint32 /* termios.h:25:22 */
+
+// struct termios definition. Linux/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
+// <https://www.gnu.org/licenses/>.
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_line Cc_t
+ Fc_cc [32]Cc_t
+ F__ccgo_pad1 [3]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios-struct.h:24:1 */
+
+// -
+// Copyright (c) 1982, 1986, 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.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state. Linux version.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_linux_s390x.go b/vendor/modernc.org/libc/termios/termios_linux_s390x.go
new file mode 100644
index 00000000..db74bc6f
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_linux_s390x.go
@@ -0,0 +1,1021 @@
+// Code generated by 'ccgo termios/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 termios/termios_linux_s390x.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ B0 = 0000000
+ B1000000 = 0010010
+ B110 = 0000003
+ B115200 = 0010002
+ B1152000 = 0010011
+ B1200 = 0000011
+ B134 = 0000004
+ B150 = 0000005
+ B1500000 = 0010012
+ B1800 = 0000012
+ B19200 = 0000016
+ B200 = 0000006
+ B2000000 = 0010013
+ B230400 = 0010003
+ B2400 = 0000013
+ B2500000 = 0010014
+ B300 = 0000007
+ B3000000 = 0010015
+ B3500000 = 0010016
+ B38400 = 0000017
+ B4000000 = 0010017
+ B460800 = 0010004
+ B4800 = 0000014
+ B50 = 0000001
+ B500000 = 0010005
+ B57600 = 0010001
+ B576000 = 0010006
+ B600 = 0000010
+ B75 = 0000002
+ B921600 = 0010007
+ B9600 = 0000015
+ BRKINT = 0000002
+ BS0 = 0000000
+ BS1 = 0020000
+ BSDLY = 0020000
+ CBAUD = 000000010017
+ CBAUDEX = 000000010000
+ CBRK = 0
+ CDISCARD = 15
+ CDSUSP = 25
+ CEOF = 4
+ CEOL = 0
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CIBAUD = 002003600000
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0004000
+ CMIN = 1
+ CMSPAR = 010000000000
+ CQUIT = 034
+ CR0 = 0000000
+ CR1 = 0001000
+ CR2 = 0002000
+ CR3 = 0003000
+ CRDLY = 0003000
+ CREAD = 0000200
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 020000000000
+ CS5 = 0000000
+ CS6 = 0000020
+ CS7 = 0000040
+ CS8 = 0000060
+ CSIZE = 0000060
+ CSTART = 17
+ CSTATUS = 0
+ CSTOP = 19
+ CSTOPB = 0000100
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0000010
+ ECHOCTL = 0001000
+ ECHOE = 0000020
+ ECHOK = 0000040
+ ECHOKE = 0004000
+ ECHONL = 0000100
+ ECHOPRT = 0002000
+ EXTA = 14
+ EXTB = 15
+ EXTPROC = 0200000
+ FF0 = 0000000
+ FF1 = 0100000
+ FFDLY = 0100000
+ FLUSHO = 0010000
+ HUPCL = 0002000
+ ICANON = 0000002
+ ICRNL = 0000400
+ IEXTEN = 0100000
+ IGNBRK = 0000001
+ IGNCR = 0000200
+ IGNPAR = 0000004
+ IMAXBEL = 0020000
+ INLCR = 0000100
+ INPCK = 0000020
+ ISIG = 0000001
+ ISTRIP = 0000040
+ IUCLC = 0001000
+ IUTF8 = 0040000
+ IXANY = 0004000
+ IXOFF = 0010000
+ IXON = 0002000
+ NCCS = 32
+ NL0 = 0000000
+ NL1 = 0000400
+ NLDLY = 0000400
+ NOFLSH = 0000200
+ OCRNL = 0000010
+ OFDEL = 0000200
+ OFILL = 0000100
+ OLCUC = 0000002
+ ONLCR = 0000004
+ ONLRET = 0000040
+ ONOCR = 0000020
+ OPOST = 0000001
+ PARENB = 0000400
+ PARMRK = 0000010
+ PARODD = 0001000
+ PENDIN = 0040000
+ TAB0 = 0000000
+ TAB1 = 0004000
+ TAB2 = 0010000
+ TAB3 = 0014000
+ TABDLY = 0014000
+ TCIFLUSH = 0
+ TCIOFF = 2
+ TCIOFLUSH = 2
+ TCION = 3
+ TCOFLUSH = 1
+ TCOOFF = 0
+ TCOON = 1
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TIOCSER_TEMT = 0x01
+ TOSTOP = 0000400
+ TTYDEF_CFLAG = 1440
+ TTYDEF_IFLAG = 11554
+ TTYDEF_LFLAG = 35355
+ TTYDEF_OFLAG = 6149
+ TTYDEF_SPEED = 13
+ VDISCARD = 13
+ VEOF = 4
+ VEOL = 11
+ VEOL2 = 16
+ VERASE = 2
+ VINTR = 0
+ VKILL = 3
+ VLNEXT = 15
+ VMIN = 6
+ VQUIT = 1
+ VREPRINT = 12
+ VSTART = 8
+ VSTOP = 9
+ VSUSP = 10
+ VSWTC = 7
+ VT0 = 0000000
+ VT1 = 0040000
+ VTDLY = 0040000
+ VTIME = 5
+ VWERASE = 14
+ XCASE = 0000004
+ XTABS = 0014000
+ X_ATFILE_SOURCE = 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_HAVE_STRUCT_TERMIOS_C_ISPEED = 1
+ X_HAVE_STRUCT_TERMIOS_C_OSPEED = 1
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_TERMIOS_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// We need `pid_t'.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Pid_t = X__pid_t /* termios.h:30:17 */
+
+// Get the system-dependent definitions of `struct termios', `tcflag_t',
+// `cc_t', `speed_t', and all the macros specifying the flag bits.
+// termios type and macro definitions. Linux version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+type Cc_t = uint8 /* termios.h:23:23 */
+type Speed_t = uint32 /* termios.h:24:22 */
+type Tcflag_t = uint32 /* termios.h:25:22 */
+
+// struct termios definition. Linux/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
+// <https://www.gnu.org/licenses/>.
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_line Cc_t
+ Fc_cc [32]Cc_t
+ F__ccgo_pad1 [3]byte
+ Fc_ispeed Speed_t
+ Fc_ospeed Speed_t
+} /* termios-struct.h:24:1 */
+
+// -
+// Copyright (c) 1982, 1986, 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.
+// 4. 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state. Linux version.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_netbsd_amd64.go b/vendor/modernc.org/libc/termios/termios_netbsd_amd64.go
new file mode 100644
index 00000000..f34384ad
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_netbsd_amd64.go
@@ -0,0 +1,733 @@
+// Code generated by 'ccgo termios/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 termios/termios_netbsd_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200
+ ARG_MAX = 262144
+ B0 = 0
+ B1000000 = 1000000
+ B110 = 110
+ B115200 = 115200
+ B1200 = 1200
+ B134 = 134
+ B14400 = 14400
+ B150 = 150
+ B1500000 = 1500000
+ B1800 = 1800
+ B19200 = 19200
+ B200 = 200
+ B2000000 = 2000000
+ B230400 = 230400
+ B2400 = 2400
+ B2500000 = 2500000
+ B28800 = 28800
+ B300 = 300
+ B3000000 = 3000000
+ B3500000 = 3500000
+ B38400 = 38400
+ B4000000 = 4000000
+ B460800 = 460800
+ B4800 = 4800
+ B50 = 50
+ B500000 = 500000
+ B57600 = 57600
+ B600 = 600
+ B7200 = 7200
+ B75 = 75
+ B76800 = 76800
+ B921600 = 921600
+ B9600 = 9600
+ BC_DIM_MAX = 65535
+ BRKINT = 0x00000002
+ CCTS_OFLOW = 65536
+ CDISCARD = 15
+ CDSUSP = 25
+ CDTRCTS = 0x00020000
+ CEOF = 4
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CHILD_MAX = 160
+ CHWFLOW = 1245184
+ CIGNORE = 0x00000001
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0x00008000
+ CMIN = 1
+ COLL_WEIGHTS_MAX = 2
+ CQUIT = 034
+ CREAD = 0x00000800
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 0x00010000
+ CRTS_IFLOW = 65536
+ CS5 = 0x00000000
+ CS6 = 0x00000100
+ CS7 = 0x00000200
+ CS8 = 0x00000300
+ CSIZE = 0x00000300
+ CSTART = 17
+ CSTATUS = 20
+ CSTOP = 19
+ CSTOPB = 0x00000400
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0x00000008
+ ECHOCTL = 0x00000040
+ ECHOE = 0x00000002
+ ECHOK = 0x00000004
+ ECHOKE = 0x00000001
+ ECHONL = 0x00000010
+ ECHOPRT = 0x00000020
+ EXPR_NEST_MAX = 32
+ EXTA = 19200
+ EXTB = 38400
+ EXTPROC = 0x00000800
+ FLUSHO = 0x00800000
+ GID_MAX = 2147483647
+ HDLCDISC = 9
+ HUPCL = 0x00004000
+ ICANON = 0x00000100
+ ICRNL = 0x00000100
+ IEXTEN = 0x00000400
+ IGNBRK = 0x00000001
+ IGNCR = 0x00000080
+ IGNPAR = 0x00000004
+ IMAXBEL = 0x00002000
+ INLCR = 0x00000040
+ INPCK = 0x00000010
+ IOCGROUP_SHIFT = 8
+ IOCPARM_MASK = 0x1fff
+ IOCPARM_SHIFT = 16
+ IOV_MAX = 1024
+ ISIG = 0x00000080
+ ISTRIP = 0x00000020
+ IXANY = 0x00000800
+ IXOFF = 0x00000400
+ IXON = 0x00000200
+ LINE_MAX = 2048
+ LINK_MAX = 32767
+ LOGIN_NAME_MAX = 17
+ MAX_CANON = 255
+ MAX_INPUT = 255
+ MDMBUF = 0x00100000
+ NAME_MAX = 511
+ NCCS = 20
+ NGROUPS_MAX = 16
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x02000000
+ NZERO = 20
+ OCRNL = 0x00000010
+ ONLCR = 0x00000002
+ ONLRET = 0x00000040
+ ONOCR = 0x00000020
+ ONOEOT = 0x00000008
+ OPEN_MAX = 128
+ OPOST = 0x00000001
+ OXTABS = 0x00000004
+ PARENB = 0x00001000
+ PARMRK = 0x00000008
+ PARODD = 0x00002000
+ PATH_MAX = 1024
+ PENDIN = 0x20000000
+ PIPE_BUF = 512
+ PPPDISC = 5
+ RE_DUP_MAX = 255
+ SLIPDISC = 4
+ STRIPDISC = 6
+ TABLDISC = 3
+ TCIFLUSH = 1
+ TCIOFF = 3
+ TCIOFLUSH = 3
+ TCION = 4
+ TCOFLUSH = 2
+ TCOOFF = 1
+ TCOON = 2
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TCSASOFT = 0x10
+ TIOCFLAG_CDTRCTS = 0x10
+ TIOCFLAG_CLOCAL = 0x02
+ TIOCFLAG_CRTSCTS = 0x04
+ TIOCFLAG_MDMBUF = 0x08
+ TIOCFLAG_SOFTCAR = 0x01
+ TIOCM_CAR = 0100
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 128
+ TIOCM_RNG = 0200
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TOSTOP = 0x00400000
+ TTLINEDNAMELEN = 32
+ TTYDEF_CFLAG = 19200
+ TTYDEF_IFLAG = 11010
+ TTYDEF_LFLAG = 1483
+ TTYDEF_OFLAG = 7
+ TTYDEF_SPEED = 9600
+ TTYDISC = 0
+ UID_MAX = 2147483647
+ VDISCARD = 15
+ VDSUSP = 11
+ VEOF = 0
+ VEOL = 1
+ VEOL2 = 2
+ VERASE = 3
+ VINTR = 8
+ VKILL = 5
+ VLNEXT = 14
+ VMIN = 16
+ VQUIT = 9
+ VREPRINT = 6
+ VSTART = 12
+ VSTATUS = 18
+ VSTOP = 13
+ VSUSP = 10
+ VTIME = 17
+ VWERASE = 4
+ X_AMD64_INT_TYPES_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_NETBSD_SYS_TTYCOM_H_ = 0
+ X_PATH_PTMDEV = "/dev/ptm"
+ X_POSIX_SYS_TTYCOM_H_ = 0
+ 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_IOCCOM_H_ = 0
+ X_SYS_SYSLIMITS_H_ = 0
+ X_SYS_TERMIOS_H_ = 0
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_X86_64_CDEFS_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: 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 */
+
+// $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>
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 spare 1
+// 19 spare 2
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+type Tcflag_t = uint32 /* termios.h:188:22 */
+type Cc_t = uint8 /* termios.h:189:23 */
+type Speed_t = uint32 /* termios.h:190:22 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ Fc_ispeed int32
+ Fc_ospeed int32
+} /* termios.h:192:1 */
+
+// Commands passed to tcsetattr() for setting the termios structure.
+
+// Standard speeds
+
+type Pid_t = X__pid_t /* termios.h:265:18 */
+
+// Include tty ioctl's that aren't just for backwards compatibility
+// with the old tty driver. These ioctl definitions were previously
+// in <sys/ioctl.h>. Most of this appears only when _NETBSD_SOURCE
+// is defined, but (at least) struct winsize has been made standard,
+// and needs to be visible here (as well as via the old <sys/ioctl.h>.)
+// $NetBSD: ttycom.h,v 1.21 2017/10/25 06:32:59 kre Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+
+// $NetBSD: syslimits.h,v 1.28 2015/08/21 07:19:39 uebayasi Exp $
+
+// Copyright (c) 1988, 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.
+//
+// @(#)syslimits.h 8.1 (Berkeley) 6/2/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>
+
+// kept in sync with MAXNAMLEN
+
+// IEEE Std 1003.1c-95, adopted in X/Open CAE Specification Issue 5 Version 2
+
+// X/Open CAE Specification Issue 5 Version 2
+
+// $NetBSD: ioccom.h,v 1.13 2019/05/26 10:21:33 hannken Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)ioccom.h 8.3 (Berkeley) 1/9/95
+
+// Ioctl's have the command encoded in the lower word, and the size of
+// any in or out parameters in the upper word. The high 3 bits of the
+// upper word are used to encode the in/out status of the parameter.
+//
+// 31 29 28 16 15 8 7 0
+// +---------------------------------------------------------------+
+// | I/O | Parameter Length | Command Group | Command |
+// +---------------------------------------------------------------+
+
+// no parameters
+// copy parameters out
+// copy parameters in
+// copy parameters in and out
+// mask for IN/OUT/VOID
+
+// this should be _IORW, but stdio got there first
+
+// Tty ioctl's except for those supported only for backwards compatibility
+// with the old tty driver.
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* ttycom.h:54:1 */
+
+// The following are not exposed when imported via <termios.h>
+// when _POSIX_SOURCE (et.al.) is defined (and hence _NETBSD_SOURCE
+// is not, unless that is added manually.)
+
+// ptmget, for /dev/ptm pty getting ioctl TIOCPTMGET, and for TIOCPTSNAME
+type Ptmget = struct {
+ Fcfd int32
+ Fsfd int32
+ Fcn [1024]int8
+ Fsn [1024]int8
+} /* ttycom.h:74:1 */
+
+// 8-10 compat
+// 15 unused
+// 17-18 compat
+
+// This is the maximum length of a line discipline's name.
+type Linedn_t = [32]int8 /* ttycom.h:111:14 */
+
+// END OF PROTECTED INCLUDE.
+
+// $NetBSD: ttydefaults.h,v 1.16 2008/05/24 14:06:39 yamt Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/termios/termios_openbsd_amd64.go b/vendor/modernc.org/libc/termios/termios_openbsd_amd64.go
new file mode 100644
index 00000000..e04529e4
--- /dev/null
+++ b/vendor/modernc.org/libc/termios/termios_openbsd_amd64.go
@@ -0,0 +1,789 @@
+// Code generated by 'ccgo termios/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 termios/termios_openbsd_amd64.go -pkgname termios', DO NOT EDIT.
+
+package termios
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ALTWERASE = 0x00000200
+ B0 = 0
+ B110 = 110
+ B115200 = 115200
+ B1200 = 1200
+ B134 = 134
+ B14400 = 14400
+ B150 = 150
+ B1800 = 1800
+ B19200 = 19200
+ B200 = 200
+ B230400 = 230400
+ B2400 = 2400
+ B28800 = 28800
+ B300 = 300
+ B38400 = 38400
+ B4800 = 4800
+ B50 = 50
+ B57600 = 57600
+ B600 = 600
+ B7200 = 7200
+ B75 = 75
+ B76800 = 76800
+ B9600 = 9600
+ BRKINT = 0x00000002
+ CCTS_OFLOW = 65536
+ CDISCARD = 15
+ CDSUSP = 25
+ CEOF = 4
+ CEOT = 4
+ CERASE = 0177
+ CFLUSH = 15
+ CHWFLOW = 1114112
+ CIGNORE = 0x00000001
+ CINTR = 3
+ CKILL = 21
+ CLNEXT = 22
+ CLOCAL = 0x00008000
+ CMIN = 1
+ CQUIT = 034
+ CREAD = 0x00000800
+ CREPRINT = 18
+ CRPRNT = 18
+ CRTSCTS = 0x00010000
+ CRTS_IFLOW = 65536
+ CS5 = 0x00000000
+ CS6 = 0x00000100
+ CS7 = 0x00000200
+ CS8 = 0x00000300
+ CSIZE = 0x00000300
+ CSTART = 17
+ CSTOP = 19
+ CSTOPB = 0x00000400
+ CSUSP = 26
+ CTIME = 0
+ CWERASE = 23
+ ECHO = 0x00000008
+ ECHOCTL = 0x00000040
+ ECHOE = 0x00000002
+ ECHOK = 0x00000004
+ ECHOKE = 0x00000001
+ ECHONL = 0x00000010
+ ECHOPRT = 0x00000020
+ ENDRUNDISC = 9
+ EXTA = 19200
+ EXTB = 38400
+ EXTPROC = 0x00000800
+ FLUSHO = 0x00800000
+ HUPCL = 0x00004000
+ ICANON = 0x00000100
+ ICRNL = 0x00000100
+ IEXTEN = 0x00000400
+ IGNBRK = 0x00000001
+ IGNCR = 0x00000080
+ IGNPAR = 0x00000004
+ IMAXBEL = 0x00002000
+ INLCR = 0x00000040
+ INPCK = 0x00000010
+ IOCPARM_MASK = 0x1fff
+ ISIG = 0x00000080
+ ISTRIP = 0x00000020
+ IUCLC = 0x00001000
+ IXANY = 0x00000800
+ IXOFF = 0x00000400
+ IXON = 0x00000200
+ MDMBUF = 0x00100000
+ MSTSDISC = 8
+ NCCS = 20
+ NMEADISC = 7
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x02000000
+ OCRNL = 0x00000010
+ OLCUC = 0x00000020
+ ONLCR = 0x00000002
+ ONLRET = 0x00000080
+ ONOCR = 0x00000040
+ ONOEOT = 0x00000008
+ OPOST = 0x00000001
+ OXTABS = 0x00000004
+ PARENB = 0x00001000
+ PARMRK = 0x00000008
+ PARODD = 0x00002000
+ PENDIN = 0x20000000
+ PPPDISC = 5
+ SLIPDISC = 4
+ STRIPDISC = 6
+ TABLDISC = 3
+ TCIFLUSH = 1
+ TCIOFF = 3
+ TCIOFLUSH = 3
+ TCION = 4
+ TCOFLUSH = 2
+ TCOOFF = 1
+ TCOON = 2
+ TCSADRAIN = 1
+ TCSAFLUSH = 2
+ TCSANOW = 0
+ TCSASOFT = 0x10
+ TIOCFLAG_CLOCAL = 0x02
+ TIOCFLAG_CRTSCTS = 0x04
+ TIOCFLAG_MDMBUF = 0x08
+ TIOCFLAG_PPS = 0x10
+ TIOCFLAG_SOFTCAR = 0x01
+ TIOCM_CAR = 0100
+ TIOCM_CD = 64
+ TIOCM_CTS = 0040
+ TIOCM_DSR = 0400
+ TIOCM_DTR = 0002
+ TIOCM_LE = 0001
+ TIOCM_RI = 128
+ TIOCM_RNG = 0200
+ TIOCM_RTS = 0004
+ TIOCM_SR = 0020
+ TIOCM_ST = 0010
+ TIOCPKT_DATA = 0x00
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x01
+ TIOCPKT_FLUSHWRITE = 0x02
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x08
+ TIOCPKT_STOP = 0x04
+ TOSTOP = 0x00400000
+ TTYDEF_CFLAG = 19200
+ TTYDEF_IFLAG = 11010
+ TTYDEF_LFLAG = 1483
+ TTYDEF_OFLAG = 3
+ TTYDEF_SPEED = 9600
+ TTYDISC = 0
+ VDISCARD = 15
+ VDSUSP = 11
+ VEOF = 0
+ VEOL = 1
+ VEOL2 = 2
+ VERASE = 3
+ VINTR = 8
+ VKILL = 5
+ VLNEXT = 14
+ VMIN = 16
+ VQUIT = 9
+ VREPRINT = 6
+ VSTART = 12
+ VSTATUS = 18
+ VSTOP = 13
+ VSUSP = 10
+ VTIME = 17
+ VWERASE = 4
+ XCASE = 0x01000000
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_PID_T_DEFINED_ = 0
+ X_POSIX_VDISABLE = 255
+ X_RET_PROTECTOR = 1
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_IOCCOM_H_ = 0
+ X_SYS_TERMIOS_H_ = 0
+ X_SYS_TTYCOM_H_ = 0
+ X_SYS_TTYDEFAULTS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ Unix = 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 */
+
+// $OpenBSD: termios.h,v 1.13 2016/09/20 21:10:22 fcambus Exp $
+// $NetBSD: termios.h,v 1.14 1996/04/09 20:55:41 cgd Exp $
+
+// Copyright (c) 1988, 1989, 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.
+//
+// @(#)termios.h 8.3 (Berkeley) 3/28/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// Special Control Characters
+//
+// Index into c_cc[] character array.
+//
+// Name Subscript Enabled by
+// 7 spare 1
+// 19 spare 2
+
+// Input flags - software input processing
+
+// Output flags - software output processing
+
+// Control flags - hardware control of terminal
+
+// "Local" flags - dumping ground for other state
+//
+// Warning: some flags in this structure begin with
+// the letter "I" and look like they belong in the
+// input flag.
+
+type Tcflag_t = uint32 /* termios.h:185:22 */
+type Cc_t = uint8 /* termios.h:186:23 */
+type Speed_t = uint32 /* termios.h:187:22 */
+
+type Termios = struct {
+ Fc_iflag Tcflag_t
+ Fc_oflag Tcflag_t
+ Fc_cflag Tcflag_t
+ Fc_lflag Tcflag_t
+ Fc_cc [20]Cc_t
+ Fc_ispeed int32
+ Fc_ospeed int32
+} /* termios.h:189:1 */
+
+// Commands passed to tcsetattr() for setting the termios structure.
+
+// Standard speeds
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+type Pid_t = X__pid_t /* termios.h:255:18 */
+
+// Include tty ioctl's that aren't just for backwards compatibility
+// with the old tty driver. These ioctl definitions were previously
+// in <sys/ioctl.h>.
+// $OpenBSD: ttycom.h,v 1.17 2018/06/16 13:55:03 deraadt Exp $
+// $NetBSD: ttycom.h,v 1.4 1996/05/19 17:17:53 jonathan Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)ttycom.h 8.1 (Berkeley) 3/28/94
+
+// $OpenBSD: ioccom.h,v 1.5 2013/03/22 21:22:05 deraadt Exp $
+// $NetBSD: ioccom.h,v 1.4 1994/10/30 21:49:56 cgd Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1990, 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.
+//
+// @(#)ioccom.h 8.2 (Berkeley) 3/28/94
+
+// Ioctl's have the command encoded in the lower word, and the size of
+// any in or out parameters in the upper word. The high 3 bits of the
+// upper word are used to encode the in/out status of the parameter.
+
+// no parameters
+// copy parameters out
+// copy parameters in
+// copy parameters in and out
+// mask for IN/OUT/VOID
+
+// this should be _IORW, but stdio got there first
+
+// Tty ioctl's.
+
+// Window/terminal size structure. This information is stored by the kernel
+// in order to provide a consistent interface, but is not used by the kernel.
+type Winsize = struct {
+ Fws_row uint16
+ Fws_col uint16
+ Fws_xpixel uint16
+ Fws_ypixel uint16
+} /* ttycom.h:51:1 */
+
+type Tstamps = struct {
+ Fts_set int32
+ Fts_clr int32
+} /* ttycom.h:58:1 */
+
+// 8-10 compat
+// 15 unused
+// 17-18 compat
+// 127-124 compat
+// 117-116 compat
+
+// Backwards compatibility
+
+// END OF PROTECTED INCLUDE.
+
+// $OpenBSD: ttydefaults.h,v 1.7 2019/03/12 11:01:25 nicm Exp $
+// $NetBSD: ttydefaults.h,v 1.8 1996/04/09 20:55:45 cgd Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+
+// System wide defaults for terminal state.
+
+// Defaults on "first" open.
+
+// Control Character Defaults
+// compat
+
+// PROTECTED INCLUSION ENDS HERE
+
+// #define TTYDEFCHARS to include an array of default control characters.
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/capi_darwin_amd64.go b/vendor/modernc.org/libc/time/capi_darwin_amd64.go
new file mode 100644
index 00000000..ef5b65c2
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo time/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 time/time_darwin_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/time/capi_darwin_arm64.go b/vendor/modernc.org/libc/time/capi_darwin_arm64.go
new file mode 100644
index 00000000..87addbca
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_darwin_arm64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_freebsd_386.go b/vendor/modernc.org/libc/time/capi_freebsd_386.go
new file mode 100644
index 00000000..a4f75e8f
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_freebsd_386.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_freebsd_amd64.go b/vendor/modernc.org/libc/time/capi_freebsd_amd64.go
new file mode 100644
index 00000000..f79c0726
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_freebsd_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_linux_386.go b/vendor/modernc.org/libc/time/capi_linux_386.go
new file mode 100644
index 00000000..a008e686
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_linux_386.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_linux_amd64.go b/vendor/modernc.org/libc/time/capi_linux_amd64.go
new file mode 100644
index 00000000..8ce1aea1
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_linux_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_linux_arm.go b/vendor/modernc.org/libc/time/capi_linux_arm.go
new file mode 100644
index 00000000..fcdd39cd
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_linux_arm.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_linux_arm64.go b/vendor/modernc.org/libc/time/capi_linux_arm64.go
new file mode 100644
index 00000000..200888b0
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_linux_arm64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_linux_s390x.go b/vendor/modernc.org/libc/time/capi_linux_s390x.go
new file mode 100644
index 00000000..4dfacc56
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_linux_s390x.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_netbsd_amd64.go b/vendor/modernc.org/libc/time/capi_netbsd_amd64.go
new file mode 100644
index 00000000..077bfef9
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_netbsd_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_openbsd_amd64.go b/vendor/modernc.org/libc/time/capi_openbsd_amd64.go
new file mode 100644
index 00000000..8b6f8157
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo time/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 time/time_openbsd_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/time/capi_windows_386.go b/vendor/modernc.org/libc/time/capi_windows_386.go
new file mode 100644
index 00000000..e46d8d23
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_windows_386.go
@@ -0,0 +1,9 @@
+// Code generated by 'ccgo time/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 time/time_windows_386.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{
+ "daylight": {},
+ "timezone": {},
+ "tzname": {},
+}
diff --git a/vendor/modernc.org/libc/time/capi_windows_amd64.go b/vendor/modernc.org/libc/time/capi_windows_amd64.go
new file mode 100644
index 00000000..0a330e10
--- /dev/null
+++ b/vendor/modernc.org/libc/time/capi_windows_amd64.go
@@ -0,0 +1,9 @@
+// Code generated by 'ccgo time\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 time\time_windows_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+var CAPI = map[string]struct{}{
+ "daylight": {},
+ "timezone": {},
+ "tzname": {},
+}
diff --git a/vendor/modernc.org/libc/time/time_darwin_amd64.go b/vendor/modernc.org/libc/time/time_darwin_amd64.go
new file mode 100644
index 00000000..24a6b034
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_darwin_amd64.go
@@ -0,0 +1,1771 @@
+// Code generated by 'ccgo time/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 time/time_darwin_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCKS_PER_SEC = 1000000
+ TIME_UTC = 1
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+const ( /* time.h:153:1: */
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+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 */
+
+type Clockid_t = uint32 /* time.h:172:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_darwin_arm64.go b/vendor/modernc.org/libc/time/time_darwin_arm64.go
new file mode 100644
index 00000000..31886c4c
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_darwin_arm64.go
@@ -0,0 +1,1768 @@
+// Code generated by 'ccgo time/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 time/time_darwin_arm64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCKS_PER_SEC = 1000000
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ TIME_UTC = 1
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CLOCK_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+)
+
+const ( /* time.h:153:1: */
+ X_CLOCK_REALTIME = 0
+ X_CLOCK_MONOTONIC = 6
+ X_CLOCK_MONOTONIC_RAW = 4
+ X_CLOCK_MONOTONIC_RAW_APPROX = 5
+ X_CLOCK_UPTIME_RAW = 8
+ X_CLOCK_UPTIME_RAW_APPROX = 9
+ X_CLOCK_PROCESS_CPUTIME_ID = 12
+ X_CLOCK_THREAD_CPUTIME_ID = 16
+)
+
+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 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// These macros are for use in OS header files. They enable function prototypes
+// and Objective-C methods to be tagged with the OS version in which they
+// were first available; and, if applicable, the OS version in which they
+// became deprecated.
+//
+// The desktop Mac OS X and iOS each have different version numbers.
+// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+// and iOS version numbers. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+// means the function/method was first available on Mac OS X 10.2 on the desktop
+// and first available in iOS 2.0 on the iPhone.
+//
+// If a function is available on one platform, but not the other a _NA (not
+// applicable) parameter is used. For instance:
+// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+// means that the function/method was first available on Mac OS X 10.3, and it
+// currently not implemented on the iPhone.
+//
+// At some point, a function/method may be deprecated. That means Apple
+// recommends applications stop using the function, either because there is a
+// better replacement or the functionality is being phased out. Deprecated
+// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+// macro which specifies the OS version where the function became available
+// as well as the OS version in which it became deprecated. For instance:
+// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+// means that the function/method was introduced in Mac OS X 10.0, then
+// became deprecated beginning in Mac OS X 10.5. On iOS the function
+// has never been available.
+//
+// For these macros to function properly, a program must specify the OS version range
+// it is targeting. The min OS version is specified as an option to the compiler:
+// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+// when building for the iPhone. The upper bound for the OS version is rarely needed,
+// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.
+//
+// Examples:
+//
+// A function available in Mac OS X 10.5 and later, but not on the phone:
+//
+// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+//
+//
+// An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+//
+// @interface MyClass : NSObject
+// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+// @end
+//
+//
+// An enum available on the phone, but not available on Mac OS X:
+//
+// #if __IPHONE_OS_VERSION_MIN_REQUIRED
+// enum { myEnum = 1 };
+// #endif
+// Note: this works when targeting the Mac OS X platform because
+// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero.
+//
+//
+// An enum with values added in different iPhoneOS versions:
+//
+// enum {
+// myX = 1, // Usable on iPhoneOS 2.1 and later
+// myY = 2, // Usable on iPhoneOS 3.0 and later
+// myZ = 3, // Usable on iPhoneOS 3.0 and later
+// ...
+// Note: you do not want to use #if with enumeration values
+// when a client needs to see all values at compile time
+// and use runtime logic to only use the viable values.
+//
+//
+// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+// source base that can be compiled to target a range of OS versions. It is best
+// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+// That is because you might get compiled on an old OS that does not define a later
+// OS version macro, and in the C preprocessor undefined values evaluate to zero
+// in expresssions, which could cause the #if expression to evaluate in an unexpected
+// way.
+//
+// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+// // code only compiled when targeting Mac OS X and not iPhone
+// // note use of 1050 instead of __MAC_10_5
+// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// // code in here might run on pre-Leopard OS
+// #else
+// // code here can assume Leopard or later
+// #endif
+// #endif
+//
+//
+
+// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated
+// in an upcoming release. This soft deprecation is an intermediate step before formal
+// deprecation to notify developers about the API before compiler warnings are generated.
+// You can find all places in your code that use soft deprecated API by redefining the
+// value of this macro to your current minimum deployment target, for example:
+// (macOS)
+// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>
+// (iOS)
+// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>
+
+// Copyright (c) 2019 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable
+
+// Set up standard Mac OS X versions
+
+// DO NOT EDIT THIS FILE.
+//
+// It has been auto-edited by fixincludes from:
+//
+// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h"
+//
+// This had to be done to correct non-standard usages in the
+// original, manufacturer supplied header file.
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+//
+// File: AvailabilityInternal.h
+//
+// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
+//
+
+// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+
+// make sure a default max version is set
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+
+// 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
+// Example:
+//
+// #if __swift_compiler_version_at_least(800, 2, 20)
+// - (nonnull NSString *)description;
+// #else
+// - (NSString *)description;
+// #endif
+
+// If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+
+// for use to document app extension usage
+
+// for use marking APIs available info for Mac OSX
+
+// for use marking APIs available info for iOS
+
+// for use marking APIs available info for tvOS
+
+// for use marking APIs available info for Watch OS
+
+// for use marking APIs unavailable for swift
+
+//
+// Macros for defining which versions/platform a given symbol can be used.
+//
+// @see http://clang.llvm.org/docs/AttributeReference.html#availability
+//
+// * Note that these macros are only compatible with clang compilers that
+// * support the following target selection options:
+// *
+// * -mmacosx-version-min
+// * -miphoneos-version-min
+// * -mwatchos-version-min
+// * -mtvos-version-min
+//
+
+// Evaluate to nothing for compilers that don't support availability.
+
+// If SPI decorations have not been defined elsewhere, disable them.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Clock_t = X__darwin_clock_t /* _clock_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+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 */
+
+type Clockid_t = uint32 /* time.h:172:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_freebsd_386.go b/vendor/modernc.org/libc/time/time_freebsd_386.go
new file mode 100644
index 00000000..45053064
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_freebsd_386.go
@@ -0,0 +1,927 @@
+// Code generated by 'ccgo time/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 time/time_freebsd_386.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_BOOTTIME = 5
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_COARSE = 12
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_COARSE = 10
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_LOCALE_T_DEFINED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SYS__CLOCK_ID_H = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// These macros are shared between time.h and sys/time.h.
+
+// Note: The values shown below as a comment for the __POSIX_VISIBLE values are
+// the ones FreeBSD traditionally used based on our reading of the POSIX
+// standards. However, glibc uses 199309 for all of them, even those many were
+// not defined there. To remain bug compatible with glibc means more software
+// that relied on the glibc behavior will compile easily on FreeBSD.
+//
+// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl
+// port until it can be updated properly. It incorrectly assumes that this was a
+// standard value. It will be moved back to the __BSD_VISIBLE section once the
+// issue is corrected.
+
+// FreeBSD-specific clocks.
+
+// Linux compatible names.
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+type Clock_t = X__clock_t /* time.h:63:19 */
+
+type Time_t = X__time_t /* time.h:68:18 */
+
+// New in POSIX 1003.1b-1993.
+type Clockid_t = X__clockid_t /* time.h:82:21 */
+
+type Timer_t = X__timer_t /* time.h:87:19 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46: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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type Pid_t = X__pid_t /* time.h:96:18 */
+
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* time.h:101:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_freebsd_amd64.go b/vendor/modernc.org/libc/time/time_freebsd_amd64.go
new file mode 100644
index 00000000..de56597b
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_freebsd_amd64.go
@@ -0,0 +1,877 @@
+// Code generated by 'ccgo time/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 time/time_freebsd_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 128
+ CLOCKS_PER_SEC = 128
+ CLOCK_MONOTONIC = 4
+ CLOCK_MONOTONIC_FAST = 12
+ CLOCK_MONOTONIC_PRECISE = 11
+ CLOCK_PROCESS_CPUTIME_ID = 15
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_FAST = 10
+ CLOCK_REALTIME_PRECISE = 9
+ CLOCK_SECOND = 13
+ CLOCK_THREAD_CPUTIME_ID = 14
+ CLOCK_UPTIME = 5
+ CLOCK_UPTIME_FAST = 8
+ CLOCK_UPTIME_PRECISE = 7
+ CLOCK_VIRTUAL = 1
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LOCALE_T_DEFINED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_PID_T_DECLARED = 0
+ X_SIZE_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_XLOCALE_LOCALE1_H = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2003 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+// Frequency of the clock ticks reported by clock().
+
+type Clock_t = X__clock_t /* time.h:62:19 */
+
+type Time_t = X__time_t /* time.h:67:18 */
+
+// New in POSIX 1003.1b-1993.
+type Clockid_t = X__clockid_t /* time.h:81:21 */
+
+type Timer_t = X__timer_t /* time.h:86:19 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46: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
+ }
+} /* timespec.h:60:1 */
+
+type Pid_t = X__pid_t /* time.h:95:18 */
+
+// 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
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:129:1 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011, 2012 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _time.h:36:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_linux_386.go b/vendor/modernc.org/libc/time/time_linux_386.go
new file mode 100644
index 00000000..ed3dcf30
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_linux_386.go
@@ -0,0 +1,658 @@
+// Code generated by 'ccgo time/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 time/time_linux_386.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ 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_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+type Pid_t = X__pid_t /* time.h:54:17 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_linux_amd64.go b/vendor/modernc.org/libc/time/time_linux_amd64.go
new file mode 100644
index 00000000..4a21d8d1
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_linux_amd64.go
@@ -0,0 +1,676 @@
+// Code generated by 'ccgo time/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 time/time_linux_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+type Pid_t = X__pid_t /* time.h:54:17 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_linux_arm.go b/vendor/modernc.org/libc/time/time_linux_arm.go
new file mode 100644
index 00000000..053d7ac7
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_linux_arm.go
@@ -0,0 +1,686 @@
+// Code generated by 'ccgo time/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 time/time_linux_arm.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+type Pid_t = X__pid_t /* time.h:54:17 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_linux_arm64.go b/vendor/modernc.org/libc/time/time_linux_arm64.go
new file mode 100644
index 00000000..2ec360d6
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_linux_arm64.go
@@ -0,0 +1,709 @@
+// Code generated by 'ccgo time/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 time/time_linux_arm64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+type Pid_t = X__pid_t /* time.h:54:17 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_linux_s390x.go b/vendor/modernc.org/libc/time/time_linux_s390x.go
new file mode 100644
index 00000000..d8093d38
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_linux_s390x.go
@@ -0,0 +1,677 @@
+// Code generated by 'ccgo time/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 time/time_linux_s390x.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ Linux = 1
+ Unix = 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+type Pid_t = X__pid_t /* time.h:54:17 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_netbsd_amd64.go b/vendor/modernc.org/libc/time/time_netbsd_amd64.go
new file mode 100644
index 00000000..9d5c549b
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_netbsd_amd64.go
@@ -0,0 +1,2340 @@
+// Code generated by 'ccgo time/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 time/time_netbsd_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+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
+ 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
+ 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
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ 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_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_STDINT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ 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: 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
+
+// $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
+
+// $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 Clock_t = uint32 /* time.h:49:23 */
+
+type Time_t = X__int64_t /* time.h:54:22 */
+
+type Clockid_t = int32 /* time.h:64:25 */
+
+type Timer_t = int32 /* time.h:69:23 */
+
+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 */
+
+// ISO/IEC 9899:201x 7.27.1/3 Components of time
+// $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.
+
+// $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 Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* timespec.h:47:1 */
+
+// $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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+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: 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.
+
+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 Ssize_t = int64 /* types.h:284: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 */
+
+// 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
+
+// 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: 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 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_openbsd_amd64.go b/vendor/modernc.org/libc/time/time_openbsd_amd64.go
new file mode 100644
index 00000000..702e02b4
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_openbsd_amd64.go
@@ -0,0 +1,527 @@
+// Code generated by 'ccgo time/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 time/time_openbsd_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 100
+ CLOCKS_PER_SEC = 100
+ CLOCK_BOOTTIME = 6
+ CLOCK_MONOTONIC = 3
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 4
+ CLOCK_UPTIME = 5
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_PID_T_DEFINED_ = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TIME_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIMESPEC_DECLARED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $
+// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $
+
+// Copyright (c) 1989 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 5.12 (Berkeley) 3/9/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+type Clock_t = X__clock_t /* time.h:50:19 */
+
+type Time_t = X__time_t /* time.h:55:18 */
+
+// Frequency of the clock ticks reported by times(). Deprecated - use
+// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.)
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* time.h:76:1 */
+
+// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha 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.
+
+// Per-process and per-thread clocks encode the PID or TID into the
+// high bits, with the type in the bottom bits
+
+// Structure defined by POSIX 1003.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:56:1 */
+
+type Clockid_t = X__clockid_t /* time.h:88:21 */
+
+type Timer_t = X__timer_t /* time.h:93:19 */
+
+type Pid_t = X__pid_t /* time.h:100:18 */
+
+type Locale_t = uintptr /* time.h:107:14 */
+
+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:111:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_windows_386.go b/vendor/modernc.org/libc/time/time_windows_386.go
new file mode 100644
index 00000000..8fa115a5
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_windows_386.go
@@ -0,0 +1,419 @@
+// Code generated by 'ccgo time/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 time/time_windows_386.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 1000
+ CLOCKS_PER_SEC = 1000
+ CLOCK_MONOTONIC = 1
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 3
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ TIMER_ABSTIME = 1
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ WINPTHREAD_API = 0
+ WIN_PTHREADS_TIME_H = 0
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CLOCK_T_DEFINED = 0
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC_WTIME_INL = 0
+ X_INC_WTIME_S_INL = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_PGLOBAL = 0
+ X_POSIX_CPUTIME = 200809
+ X_POSIX_MONOTONIC_CLOCK = 200809
+ X_POSIX_THREAD_CPUTIME = 200809
+ X_POSIX_TIMERS = 200809
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMEB_DEFINED = 0
+ X_TIMEB_H_ = 0
+ X_TIMEB_H_S = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIMEVAL_DEFINED = 0
+ X_TIMEZONE_DEFINED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED = 0
+ X_TM_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WTIME_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+type Clock_t = int32 /* time.h:60:16 */
+
+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
+} /* time.h:97:3 */
+
+var Xdaylight int32 /* time.h:256:22: */
+var Xtimezone int32 /* time.h:257:23: */
+var Xtzname [2]uintptr /* time.h:258:23: */
+
+// *
+// 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.
+
+type Timeval = struct {
+ Ftv_sec int32
+ Ftv_usec int32
+} /* _timeval.h:10:1 */
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:266:1 */
+
+// Adding timespec definition.
+// *
+// 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 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.
+
+type X__timeb32 = struct {
+ Ftime X__time32_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:53:3 */
+
+type Timeb = struct {
+ Ftime Time_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:61:3 */
+
+type X__timeb64 = struct {
+ Ftime X__time64_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:69:3 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* timeb.h:91:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timeb.h:96:1 */
+
+// POSIX 2008 says clock_gettime and timespec are defined in time.h header,
+// but other systems - like Linux, Solaris, etc - tend to declare such
+// recent extensions only if the following guards are met.
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// *
+// 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.
+
+// Posix timers are supported
+
+// Monotonic clocks are available.
+
+// CPU-time clocks are available.
+
+// Clock support in threads are available.
+
+type Clockid_t = int32 /* pthread_time.h:49:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/time/time_windows_amd64.go b/vendor/modernc.org/libc/time/time_windows_amd64.go
new file mode 100644
index 00000000..33f225d7
--- /dev/null
+++ b/vendor/modernc.org/libc/time/time_windows_amd64.go
@@ -0,0 +1,422 @@
+// Code generated by 'ccgo time\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 time\time_windows_amd64.go -pkgname time', DO NOT EDIT.
+
+package time
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ CLK_TCK = 1000
+ CLOCKS_PER_SEC = 1000
+ CLOCK_MONOTONIC = 1
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 3
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ 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
+ TIMER_ABSTIME = 1
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ WINPTHREAD_API = 0
+ WIN_PTHREADS_TIME_H = 0
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CLOCK_T_DEFINED = 0
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC_WTIME_INL = 0
+ X_INC_WTIME_S_INL = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_PGLOBAL = 0
+ X_POSIX_CPUTIME = 200809
+ X_POSIX_MONOTONIC_CLOCK = 200809
+ X_POSIX_THREAD_CPUTIME = 200809
+ X_POSIX_TIMERS = 200809
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_REENTRANT = 1
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMEB_DEFINED = 0
+ X_TIMEB_H_ = 0
+ X_TIMEB_H_S = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIMEVAL_DEFINED = 0
+ X_TIMEZONE_DEFINED = 0
+ X_TIME_H_ = 0
+ X_TIME_T_DEFINED = 0
+ X_TM_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WTIME_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+type Clock_t = int32 /* time.h:60:16 */
+
+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
+} /* time.h:97:3 */
+
+var Xdaylight int32 /* time.h:278:22: */
+
+var Xtimezone int32 /* time.h:281:23: */
+var Xtzname [2]uintptr /* time.h:282:23: */
+
+// *
+// 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.
+
+type Timeval = struct {
+ Ftv_sec int32
+ Ftv_usec int32
+} /* _timeval.h:10:1 */
+
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:290:1 */
+
+// Adding timespec definition.
+// *
+// 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 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.
+
+type X__timeb32 = struct {
+ Ftime X__time32_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:53:3 */
+
+type Timeb = struct {
+ Ftime Time_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:61:3 */
+
+type X__timeb64 = struct {
+ Ftime X__time64_t
+ Fmillitm uint16
+ Ftimezone int16
+ Fdstflag int16
+ F__ccgo_pad1 [2]byte
+} /* timeb.h:69:3 */
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+} /* timeb.h:90:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+ }
+} /* timeb.h:95:1 */
+
+// POSIX 2008 says clock_gettime and timespec are defined in time.h header,
+// but other systems - like Linux, Solaris, etc - tend to declare such
+// recent extensions only if the following guards are met.
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// *
+// 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.
+
+// Posix timers are supported
+
+// Monotonic clocks are available.
+
+// CPU-time clocks are available.
+
+// Clock support in threads are available.
+
+type Clockid_t = int32 /* pthread_time.h:49:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go b/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go
new file mode 100644
index 00000000..b4528b0c
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_darwin_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go b/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go
new file mode 100644
index 00000000..ec0a268a
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_darwin_arm64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_freebsd_386.go b/vendor/modernc.org/libc/unistd/capi_freebsd_386.go
new file mode 100644
index 00000000..1202b7aa
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_freebsd_386.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_freebsd_amd64.go b/vendor/modernc.org/libc/unistd/capi_freebsd_amd64.go
new file mode 100644
index 00000000..3b07321b
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_freebsd_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_linux_386.go b/vendor/modernc.org/libc/unistd/capi_linux_386.go
new file mode 100644
index 00000000..22a388b0
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_386.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_linux_amd64.go b/vendor/modernc.org/libc/unistd/capi_linux_amd64.go
new file mode 100644
index 00000000..aaf139a9
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_linux_arm.go b/vendor/modernc.org/libc/unistd/capi_linux_arm.go
new file mode 100644
index 00000000..fd575bdb
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_arm.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_linux_arm64.go b/vendor/modernc.org/libc/unistd/capi_linux_arm64.go
new file mode 100644
index 00000000..5476869a
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_arm64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_linux_s390x.go b/vendor/modernc.org/libc/unistd/capi_linux_s390x.go
new file mode 100644
index 00000000..fdb35cd6
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_s390x.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_netbsd_amd64.go b/vendor/modernc.org/libc/unistd/capi_netbsd_amd64.go
new file mode 100644
index 00000000..783a630b
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_netbsd_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go b/vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go
new file mode 100644
index 00000000..06c819b4
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_openbsd_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_windows_386.go b/vendor/modernc.org/libc/unistd/capi_windows_386.go
new file mode 100644
index 00000000..51753d90
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_windows_386.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/capi_windows_amd64.go b/vendor/modernc.org/libc/unistd/capi_windows_amd64.go
new file mode 100644
index 00000000..b73bb4df
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo unistd\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 unistd\unistd_windows_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go b/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go
new file mode 100644
index 00000000..fde58a0d
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go
@@ -0,0 +1,3467 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_darwin_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSX_MAX_DESCRIPTORS = 100
+ ACCESSX_MAX_TABLESIZE = 16384
+ FD_SETSIZE = 1024
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_DATA = 4
+ SEEK_END = 2
+ SEEK_HOLE = 3
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ SYNC_VOLUME_FULLSYNC = 0x01
+ SYNC_VOLUME_WAIT = 0x02
+ W_OK = 2
+ X_OK = 1
+ X_ACCESS_EXTENDED_MASK = 4193792
+ X_APPEND_OK = 8192
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CHOWN_OK = 2097152
+ X_CS_DARWIN_USER_CACHE_DIR = 65538
+ X_CS_DARWIN_USER_DIR = 65536
+ X_CS_DARWIN_USER_TEMP_DIR = 65537
+ X_CS_PATH = 1
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 20
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 21
+ X_CS_XBS5_ILP32_OFF32_LIBS = 22
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 23
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 24
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 25
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 26
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 27
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 28
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 29
+ X_CS_XBS5_LP64_OFF64_LIBS = 30
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 31
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 32
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 33
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 34
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 35
+ X_CTERMID_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DELETE_OK = 4096
+ X_DEV_T = 0
+ X_EXECUTE_OK = 2048
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GID_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_PC_2_SYMLINKS = 15
+ X_PC_ALLOC_SIZE_MIN = 16
+ X_PC_ASYNC_IO = 17
+ X_PC_AUTH_OPAQUE_NP = 14
+ X_PC_CASE_PRESERVING = 12
+ X_PC_CASE_SENSITIVE = 11
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_EXTENDED_SECURITY_NP = 13
+ X_PC_FILESIZEBITS = 18
+ X_PC_LINK_MAX = 1
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_MIN_HOLE_SIZE = 27
+ X_PC_NAME_CHARS_MAX = 10
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_PRIO_IO = 19
+ X_PC_REC_INCR_XFER_SIZE = 20
+ X_PC_REC_MAX_XFER_SIZE = 21
+ X_PC_REC_MIN_XFER_SIZE = 22
+ X_PC_REC_XFER_ALIGN = 23
+ X_PC_SYMLINK_MAX = 24
+ X_PC_SYNC_IO = 25
+ X_PC_VDISABLE = 9
+ X_PC_XATTR_SIZE_BITS = 26
+ X_PID_T = 0
+ X_POSIX2_CHAR_TERM = 200112
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_C_DEV = 200112
+ X_POSIX2_FORT_DEV = -1
+ X_POSIX2_FORT_RUN = 200112
+ X_POSIX2_LOCALEDEF = 200112
+ X_POSIX2_PBS = -1
+ X_POSIX2_PBS_ACCOUNTING = -1
+ X_POSIX2_PBS_CHECKPOINT = -1
+ X_POSIX2_PBS_LOCATE = -1
+ X_POSIX2_PBS_MESSAGE = -1
+ X_POSIX2_PBS_TRACK = -1
+ X_POSIX2_SW_DEV = 200112
+ X_POSIX2_UPE = 200112
+ X_POSIX2_VERSION = 200112
+ X_POSIX_ADVISORY_INFO = -1
+ X_POSIX_ASYNCHRONOUS_IO = -1
+ X_POSIX_BARRIERS = -1
+ X_POSIX_CHOWN_RESTRICTED = 200112
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = -1
+ X_POSIX_FSYNC = 200112
+ X_POSIX_IPV6 = 200112
+ X_POSIX_JOB_CONTROL = 200112
+ X_POSIX_MAPPED_FILES = 200112
+ X_POSIX_MEMLOCK = -1
+ X_POSIX_MEMLOCK_RANGE = -1
+ X_POSIX_MEMORY_PROTECTION = 200112
+ X_POSIX_MESSAGE_PASSING = -1
+ X_POSIX_MONOTONIC_CLOCK = -1
+ X_POSIX_NO_TRUNC = 200112
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = -1
+ X_POSIX_RAW_SOCKETS = -1
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REALTIME_SIGNALS = -1
+ X_POSIX_REGEXP = 200112
+ X_POSIX_SAVED_IDS = 200112
+ X_POSIX_SEMAPHORES = -1
+ X_POSIX_SHARED_MEMORY_OBJECTS = -1
+ X_POSIX_SHELL = 200112
+ X_POSIX_SPAWN = -1
+ X_POSIX_SPIN_LOCKS = -1
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = -1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = -1
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = -1
+ X_POSIX_THREAD_PRIO_INHERIT = -1
+ X_POSIX_THREAD_PRIO_PROTECT = -1
+ X_POSIX_THREAD_PROCESS_SHARED = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = -1
+ X_POSIX_TIMERS = -1
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = -1
+ X_POSIX_V6_ILP32_OFFBIG = -1
+ X_POSIX_V6_LP64_OFF64 = 1
+ X_POSIX_V6_LPBIG_OFFBIG = 1
+ X_POSIX_V7_ILP32_OFF32 = -1
+ X_POSIX_V7_ILP32_OFFBIG = -1
+ X_POSIX_V7_LP64_OFF64 = 1
+ X_POSIX_V7_LPBIG_OFFBIG = 1
+ X_POSIX_VERSION = 200112
+ X_RATTR_OK = 32768
+ X_READ_OK = 512
+ X_REXT_OK = 131072
+ X_RMFILE_OK = 16384
+ X_RPERM_OK = 524288
+ X_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 59
+ X_SC_2_PBS_ACCOUNTING = 60
+ X_SC_2_PBS_CHECKPOINT = 61
+ X_SC_2_PBS_LOCATE = 62
+ X_SC_2_PBS_MESSAGE = 63
+ X_SC_2_PBS_TRACK = 64
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_ADVISORY_INFO = 65
+ X_SC_AIO_LISTIO_MAX = 42
+ X_SC_AIO_MAX = 43
+ X_SC_AIO_PRIO_DELTA_MAX = 44
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 28
+ X_SC_ATEXIT_MAX = 107
+ X_SC_BARRIERS = 66
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 3
+ X_SC_CLOCK_SELECTION = 67
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUTIME = 68
+ X_SC_DELAYTIMER_MAX = 45
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FILE_LOCKING = 69
+ X_SC_FSYNC = 38
+ X_SC_GETGR_R_SIZE_MAX = 70
+ X_SC_GETPW_R_SIZE_MAX = 71
+ X_SC_HOST_NAME_MAX = 72
+ X_SC_IOV_MAX = 56
+ X_SC_IPV6 = 118
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 73
+ X_SC_MAPPED_FILES = 47
+ X_SC_MEMLOCK = 30
+ X_SC_MEMLOCK_RANGE = 31
+ X_SC_MEMORY_PROTECTION = 32
+ X_SC_MESSAGE_PASSING = 33
+ X_SC_MONOTONIC_CLOCK = 74
+ X_SC_MQ_OPEN_MAX = 46
+ X_SC_MQ_PRIO_MAX = 75
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 57
+ X_SC_NPROCESSORS_ONLN = 58
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 29
+ X_SC_PAGE_SIZE = 29
+ X_SC_PASS_MAX = 131
+ X_SC_PHYS_PAGES = 200
+ X_SC_PRIORITIZED_IO = 34
+ X_SC_PRIORITY_SCHEDULING = 35
+ X_SC_RAW_SOCKETS = 119
+ X_SC_READER_WRITER_LOCKS = 76
+ X_SC_REALTIME_SIGNALS = 36
+ X_SC_REGEXP = 77
+ X_SC_RE_DUP_MAX = 16
+ X_SC_RTSIG_MAX = 48
+ X_SC_SAVED_IDS = 7
+ X_SC_SEMAPHORES = 37
+ X_SC_SEM_NSEMS_MAX = 49
+ X_SC_SEM_VALUE_MAX = 50
+ X_SC_SHARED_MEMORY_OBJECTS = 39
+ X_SC_SHELL = 78
+ X_SC_SIGQUEUE_MAX = 51
+ X_SC_SPAWN = 79
+ X_SC_SPIN_LOCKS = 80
+ X_SC_SPORADIC_SERVER = 81
+ X_SC_SS_REPL_MAX = 126
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 120
+ X_SC_SYNCHRONIZED_IO = 40
+ X_SC_THREADS = 96
+ X_SC_THREAD_ATTR_STACKADDR = 82
+ X_SC_THREAD_ATTR_STACKSIZE = 83
+ X_SC_THREAD_CPUTIME = 84
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85
+ X_SC_THREAD_KEYS_MAX = 86
+ X_SC_THREAD_PRIORITY_SCHEDULING = 89
+ X_SC_THREAD_PRIO_INHERIT = 87
+ X_SC_THREAD_PRIO_PROTECT = 88
+ X_SC_THREAD_PROCESS_SHARED = 90
+ X_SC_THREAD_SAFE_FUNCTIONS = 91
+ X_SC_THREAD_SPORADIC_SERVER = 92
+ X_SC_THREAD_STACK_MIN = 93
+ X_SC_THREAD_THREADS_MAX = 94
+ X_SC_TIMEOUTS = 95
+ X_SC_TIMERS = 41
+ X_SC_TIMER_MAX = 52
+ X_SC_TRACE = 97
+ X_SC_TRACE_EVENT_FILTER = 98
+ X_SC_TRACE_EVENT_NAME_MAX = 127
+ X_SC_TRACE_INHERIT = 99
+ X_SC_TRACE_LOG = 100
+ X_SC_TRACE_NAME_MAX = 128
+ X_SC_TRACE_SYS_MAX = 129
+ X_SC_TRACE_USER_EVENT_MAX = 130
+ X_SC_TTY_NAME_MAX = 101
+ X_SC_TYPED_MEMORY_OBJECTS = 102
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 103
+ X_SC_V6_ILP32_OFFBIG = 104
+ X_SC_V6_LP64_OFF64 = 105
+ X_SC_V6_LPBIG_OFFBIG = 106
+ X_SC_VERSION = 8
+ X_SC_XBS5_ILP32_OFF32 = 122
+ X_SC_XBS5_ILP32_OFFBIG = 123
+ X_SC_XBS5_LP64_OFF64 = 124
+ X_SC_XBS5_LPBIG_OFFBIG = 125
+ X_SC_XOPEN_CRYPT = 108
+ X_SC_XOPEN_ENH_I18N = 109
+ X_SC_XOPEN_LEGACY = 110
+ X_SC_XOPEN_REALTIME = 111
+ X_SC_XOPEN_REALTIME_THREADS = 112
+ X_SC_XOPEN_SHM = 113
+ X_SC_XOPEN_STREAMS = 114
+ X_SC_XOPEN_UNIX = 115
+ X_SC_XOPEN_VERSION = 116
+ X_SC_XOPEN_XCU_VERSION = 121
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__SELECT_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINTPTR_T = 0
+ X_UNISTD_H_ = 0
+ X_USECONDS_T = 0
+ X_UUID_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_V6_ILP32_OFF32 = -1
+ X_V6_ILP32_OFFBIG = -1
+ X_V6_LP64_OFF64 = 1
+ X_V6_LPBIG_OFFBIG = 1
+ X_WATTR_OK = 65536
+ X_WEXT_OK = 262144
+ X_WPERM_OK = 1048576
+ X_WRITE_OK = 1024
+ X_XBS5_ILP32_OFF32 = -1
+ X_XBS5_ILP32_OFFBIG = -1
+ X_XBS5_LP64_OFF64 = 1
+ X_XBS5_LPBIG_OFFBIG = 1
+ X_XOPEN_CRYPT = 1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = -1
+ X_XOPEN_REALTIME = -1
+ X_XOPEN_REALTIME_THREADS = -1
+ X_XOPEN_SHM = 1
+ X_XOPEN_STREAMS = -1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 600
+ X_XOPEN_XCU_VERSION = 4
+)
+
+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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1991, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)unistd.h 8.12 (Berkeley) 4/27/95
+//
+// Copyright (c) 1998 Apple Compter, Inc.
+// All Rights Reserved
+
+// History:
+// 7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr
+// 3/26/98 CHW at Apple added real interface to searchfs call
+// 3/5/98 CHW at Apple added hfs semantic system calls headers
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)unistd.h 8.2 (Berkeley) 1/7/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Although we have saved user/group IDs, we do not use them in setuid
+// as described in POSIX 1003.1, because the feature does not work for
+// root. We use the saved IDs in seteuid/setegid, which are not currently
+// part of the POSIX 1003.1 specification.
+
+// execution-time symbolic constants
+// may disable terminal special characters
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// access function
+
+// Extended access functions.
+// Note that we depend on these matching the definitions in sys/kauth.h,
+// but with the bits shifted left by 8.
+
+// whence values for lseek(2)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// whence values for lseek(2)
+
+// whence values for lseek(2); renamed by POSIX 1003.1
+
+type Accessx_descriptor = struct {
+ Fad_name_offset uint32
+ Fad_flags int32
+ Fad_pad [2]int32
+} /* unistd.h:132:1 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// _GCC_SIZE_T
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+
+// Darwin extensions
+
+// Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+// The timespec structure shall be defined as described in <time.h>
+// The <sys/select.h> header shall define the timeval structure.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// Darwin extensions
+
+// Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+// The timespec structure shall be defined as described in <time.h>
+// The <sys/select.h> header shall define the timeval structure.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* _timeval.h:34:1 */
+
+// The time_t and suseconds_t types shall be defined as described in
+// <sys/types.h>
+// The sigset_t type shall be defined as described in <signal.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go b/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go
new file mode 100644
index 00000000..8c8a1fe1
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go
@@ -0,0 +1,3441 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_darwin_arm64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSX_MAX_DESCRIPTORS = 100
+ ACCESSX_MAX_TABLESIZE = 16384
+ FD_SETSIZE = 1024
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ MAC_OS_VERSION_11_0 = 110000
+ MAC_OS_VERSION_12_0 = 120000
+ MAC_OS_X_VERSION_10_0 = 1000
+ MAC_OS_X_VERSION_10_1 = 1010
+ MAC_OS_X_VERSION_10_10 = 101000
+ MAC_OS_X_VERSION_10_10_2 = 101002
+ MAC_OS_X_VERSION_10_10_3 = 101003
+ MAC_OS_X_VERSION_10_11 = 101100
+ MAC_OS_X_VERSION_10_11_2 = 101102
+ MAC_OS_X_VERSION_10_11_3 = 101103
+ MAC_OS_X_VERSION_10_11_4 = 101104
+ MAC_OS_X_VERSION_10_12 = 101200
+ MAC_OS_X_VERSION_10_12_1 = 101201
+ MAC_OS_X_VERSION_10_12_2 = 101202
+ MAC_OS_X_VERSION_10_12_4 = 101204
+ MAC_OS_X_VERSION_10_13 = 101300
+ MAC_OS_X_VERSION_10_13_1 = 101301
+ MAC_OS_X_VERSION_10_13_2 = 101302
+ MAC_OS_X_VERSION_10_13_4 = 101304
+ MAC_OS_X_VERSION_10_14 = 101400
+ MAC_OS_X_VERSION_10_14_1 = 101401
+ MAC_OS_X_VERSION_10_14_4 = 101404
+ MAC_OS_X_VERSION_10_14_6 = 101406
+ MAC_OS_X_VERSION_10_15 = 101500
+ MAC_OS_X_VERSION_10_15_1 = 101501
+ MAC_OS_X_VERSION_10_16 = 101600
+ MAC_OS_X_VERSION_10_2 = 1020
+ MAC_OS_X_VERSION_10_3 = 1030
+ MAC_OS_X_VERSION_10_4 = 1040
+ MAC_OS_X_VERSION_10_5 = 1050
+ MAC_OS_X_VERSION_10_6 = 1060
+ MAC_OS_X_VERSION_10_7 = 1070
+ MAC_OS_X_VERSION_10_8 = 1080
+ MAC_OS_X_VERSION_10_9 = 1090
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_DATA = 4
+ SEEK_END = 2
+ SEEK_HOLE = 3
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ SYNC_VOLUME_FULLSYNC = 0x01
+ SYNC_VOLUME_WAIT = 0x02
+ W_OK = 2
+ X_OK = 1
+ X_ACCESS_EXTENDED_MASK = 4193792
+ X_APPEND_OK = 8192
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_CHOWN_OK = 2097152
+ X_CS_DARWIN_USER_CACHE_DIR = 65538
+ X_CS_DARWIN_USER_DIR = 65536
+ X_CS_DARWIN_USER_TEMP_DIR = 65537
+ X_CS_PATH = 1
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 20
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 21
+ X_CS_XBS5_ILP32_OFF32_LIBS = 22
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 23
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 24
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 25
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 26
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 27
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 28
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 29
+ X_CS_XBS5_LP64_OFF64_LIBS = 30
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 31
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 32
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 33
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 34
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 35
+ X_CTERMID_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_DELETE_OK = 4096
+ X_DEV_T = 0
+ X_EXECUTE_OK = 2048
+ X_FD_SET = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_GID_T = 0
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_MODE_T = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF_T = 0
+ X_PC_2_SYMLINKS = 15
+ X_PC_ALLOC_SIZE_MIN = 16
+ X_PC_ASYNC_IO = 17
+ X_PC_AUTH_OPAQUE_NP = 14
+ X_PC_CASE_PRESERVING = 12
+ X_PC_CASE_SENSITIVE = 11
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_EXTENDED_SECURITY_NP = 13
+ X_PC_FILESIZEBITS = 18
+ X_PC_LINK_MAX = 1
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_MIN_HOLE_SIZE = 27
+ X_PC_NAME_CHARS_MAX = 10
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_PRIO_IO = 19
+ X_PC_REC_INCR_XFER_SIZE = 20
+ X_PC_REC_MAX_XFER_SIZE = 21
+ X_PC_REC_MIN_XFER_SIZE = 22
+ X_PC_REC_XFER_ALIGN = 23
+ X_PC_SYMLINK_MAX = 24
+ X_PC_SYNC_IO = 25
+ X_PC_VDISABLE = 9
+ X_PC_XATTR_SIZE_BITS = 26
+ X_PID_T = 0
+ X_POSIX2_CHAR_TERM = 200112
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_C_DEV = 200112
+ X_POSIX2_FORT_DEV = -1
+ X_POSIX2_FORT_RUN = 200112
+ X_POSIX2_LOCALEDEF = 200112
+ X_POSIX2_PBS = -1
+ X_POSIX2_PBS_ACCOUNTING = -1
+ X_POSIX2_PBS_CHECKPOINT = -1
+ X_POSIX2_PBS_LOCATE = -1
+ X_POSIX2_PBS_MESSAGE = -1
+ X_POSIX2_PBS_TRACK = -1
+ X_POSIX2_SW_DEV = 200112
+ X_POSIX2_UPE = 200112
+ X_POSIX2_VERSION = 200112
+ X_POSIX_ADVISORY_INFO = -1
+ X_POSIX_ASYNCHRONOUS_IO = -1
+ X_POSIX_BARRIERS = -1
+ X_POSIX_CHOWN_RESTRICTED = 200112
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = -1
+ X_POSIX_FSYNC = 200112
+ X_POSIX_IPV6 = 200112
+ X_POSIX_JOB_CONTROL = 200112
+ X_POSIX_MAPPED_FILES = 200112
+ X_POSIX_MEMLOCK = -1
+ X_POSIX_MEMLOCK_RANGE = -1
+ X_POSIX_MEMORY_PROTECTION = 200112
+ X_POSIX_MESSAGE_PASSING = -1
+ X_POSIX_MONOTONIC_CLOCK = -1
+ X_POSIX_NO_TRUNC = 200112
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = -1
+ X_POSIX_RAW_SOCKETS = -1
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REALTIME_SIGNALS = -1
+ X_POSIX_REGEXP = 200112
+ X_POSIX_SAVED_IDS = 200112
+ X_POSIX_SEMAPHORES = -1
+ X_POSIX_SHARED_MEMORY_OBJECTS = -1
+ X_POSIX_SHELL = 200112
+ X_POSIX_SPAWN = -1
+ X_POSIX_SPIN_LOCKS = -1
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = -1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = -1
+ X_POSIX_THREAD_KEYS_MAX = 128
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = -1
+ X_POSIX_THREAD_PRIO_INHERIT = -1
+ X_POSIX_THREAD_PRIO_PROTECT = -1
+ X_POSIX_THREAD_PROCESS_SHARED = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = -1
+ X_POSIX_TIMERS = -1
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = -1
+ X_POSIX_V6_ILP32_OFFBIG = -1
+ X_POSIX_V6_LP64_OFF64 = 1
+ X_POSIX_V6_LPBIG_OFFBIG = 1
+ X_POSIX_V7_ILP32_OFF32 = -1
+ X_POSIX_V7_ILP32_OFFBIG = -1
+ X_POSIX_V7_LP64_OFF64 = 1
+ X_POSIX_V7_LPBIG_OFFBIG = 1
+ X_POSIX_VERSION = 200112
+ X_RATTR_OK = 32768
+ X_READ_OK = 512
+ X_REXT_OK = 131072
+ X_RMFILE_OK = 16384
+ X_RPERM_OK = 524288
+ X_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 59
+ X_SC_2_PBS_ACCOUNTING = 60
+ X_SC_2_PBS_CHECKPOINT = 61
+ X_SC_2_PBS_LOCATE = 62
+ X_SC_2_PBS_MESSAGE = 63
+ X_SC_2_PBS_TRACK = 64
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_ADVISORY_INFO = 65
+ X_SC_AIO_LISTIO_MAX = 42
+ X_SC_AIO_MAX = 43
+ X_SC_AIO_PRIO_DELTA_MAX = 44
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 28
+ X_SC_ATEXIT_MAX = 107
+ X_SC_BARRIERS = 66
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 3
+ X_SC_CLOCK_SELECTION = 67
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUTIME = 68
+ X_SC_DELAYTIMER_MAX = 45
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FILE_LOCKING = 69
+ X_SC_FSYNC = 38
+ X_SC_GETGR_R_SIZE_MAX = 70
+ X_SC_GETPW_R_SIZE_MAX = 71
+ X_SC_HOST_NAME_MAX = 72
+ X_SC_IOV_MAX = 56
+ X_SC_IPV6 = 118
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 73
+ X_SC_MAPPED_FILES = 47
+ X_SC_MEMLOCK = 30
+ X_SC_MEMLOCK_RANGE = 31
+ X_SC_MEMORY_PROTECTION = 32
+ X_SC_MESSAGE_PASSING = 33
+ X_SC_MONOTONIC_CLOCK = 74
+ X_SC_MQ_OPEN_MAX = 46
+ X_SC_MQ_PRIO_MAX = 75
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 57
+ X_SC_NPROCESSORS_ONLN = 58
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 29
+ X_SC_PAGE_SIZE = 29
+ X_SC_PASS_MAX = 131
+ X_SC_PHYS_PAGES = 200
+ X_SC_PRIORITIZED_IO = 34
+ X_SC_PRIORITY_SCHEDULING = 35
+ X_SC_RAW_SOCKETS = 119
+ X_SC_READER_WRITER_LOCKS = 76
+ X_SC_REALTIME_SIGNALS = 36
+ X_SC_REGEXP = 77
+ X_SC_RE_DUP_MAX = 16
+ X_SC_RTSIG_MAX = 48
+ X_SC_SAVED_IDS = 7
+ X_SC_SEMAPHORES = 37
+ X_SC_SEM_NSEMS_MAX = 49
+ X_SC_SEM_VALUE_MAX = 50
+ X_SC_SHARED_MEMORY_OBJECTS = 39
+ X_SC_SHELL = 78
+ X_SC_SIGQUEUE_MAX = 51
+ X_SC_SPAWN = 79
+ X_SC_SPIN_LOCKS = 80
+ X_SC_SPORADIC_SERVER = 81
+ X_SC_SS_REPL_MAX = 126
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 120
+ X_SC_SYNCHRONIZED_IO = 40
+ X_SC_THREADS = 96
+ X_SC_THREAD_ATTR_STACKADDR = 82
+ X_SC_THREAD_ATTR_STACKSIZE = 83
+ X_SC_THREAD_CPUTIME = 84
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85
+ X_SC_THREAD_KEYS_MAX = 86
+ X_SC_THREAD_PRIORITY_SCHEDULING = 89
+ X_SC_THREAD_PRIO_INHERIT = 87
+ X_SC_THREAD_PRIO_PROTECT = 88
+ X_SC_THREAD_PROCESS_SHARED = 90
+ X_SC_THREAD_SAFE_FUNCTIONS = 91
+ X_SC_THREAD_SPORADIC_SERVER = 92
+ X_SC_THREAD_STACK_MIN = 93
+ X_SC_THREAD_THREADS_MAX = 94
+ X_SC_TIMEOUTS = 95
+ X_SC_TIMERS = 41
+ X_SC_TIMER_MAX = 52
+ X_SC_TRACE = 97
+ X_SC_TRACE_EVENT_FILTER = 98
+ X_SC_TRACE_EVENT_NAME_MAX = 127
+ X_SC_TRACE_INHERIT = 99
+ X_SC_TRACE_LOG = 100
+ X_SC_TRACE_NAME_MAX = 128
+ X_SC_TRACE_SYS_MAX = 129
+ X_SC_TRACE_USER_EVENT_MAX = 130
+ X_SC_TTY_NAME_MAX = 101
+ X_SC_TYPED_MEMORY_OBJECTS = 102
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 103
+ X_SC_V6_ILP32_OFFBIG = 104
+ X_SC_V6_LP64_OFF64 = 105
+ X_SC_V6_LPBIG_OFFBIG = 106
+ X_SC_VERSION = 8
+ X_SC_XBS5_ILP32_OFF32 = 122
+ X_SC_XBS5_ILP32_OFFBIG = 123
+ X_SC_XBS5_LP64_OFF64 = 124
+ X_SC_XBS5_LPBIG_OFFBIG = 125
+ X_SC_XOPEN_CRYPT = 108
+ X_SC_XOPEN_ENH_I18N = 109
+ X_SC_XOPEN_LEGACY = 110
+ X_SC_XOPEN_REALTIME = 111
+ X_SC_XOPEN_REALTIME_THREADS = 112
+ X_SC_XOPEN_SHM = 113
+ X_SC_XOPEN_STREAMS = 114
+ X_SC_XOPEN_UNIX = 115
+ X_SC_XOPEN_VERSION = 116
+ X_SC_XOPEN_XCU_VERSION = 121
+ X_SIGSET_T = 0
+ X_SIZE_T = 0
+ X_SSIZE_T = 0
+ X_SUSECONDS_T = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__SELECT_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UID_T = 0
+ X_UINT32_T = 0
+ X_UINT64_T = 0
+ X_UINTPTR_T = 0
+ X_UNISTD_H_ = 0
+ X_USECONDS_T = 0
+ X_UUID_T = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 0
+ X_V6_ILP32_OFF32 = -1
+ X_V6_ILP32_OFFBIG = -1
+ X_V6_LP64_OFF64 = 1
+ X_V6_LPBIG_OFFBIG = 1
+ X_WATTR_OK = 65536
+ X_WEXT_OK = 262144
+ X_WPERM_OK = 1048576
+ X_WRITE_OK = 1024
+ X_XBS5_ILP32_OFF32 = -1
+ X_XBS5_ILP32_OFFBIG = -1
+ X_XBS5_LP64_OFF64 = 1
+ X_XBS5_LPBIG_OFFBIG = 1
+ X_XOPEN_CRYPT = 1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = -1
+ X_XOPEN_REALTIME = -1
+ X_XOPEN_REALTIME_THREADS = -1
+ X_XOPEN_SHM = 1
+ X_XOPEN_STREAMS = -1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 600
+ X_XOPEN_XCU_VERSION = 4
+)
+
+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 */
+
+// Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved
+// Copyright (c) 1991, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)unistd.h 8.12 (Berkeley) 4/27/95
+//
+// Copyright (c) 1998 Apple Compter, Inc.
+// All Rights Reserved
+
+// History:
+// 7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr
+// 3/26/98 CHW at Apple added real interface to searchfs call
+// 3/5/98 CHW at Apple added hfs semantic system calls headers
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2000-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
+// Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)unistd.h 8.2 (Berkeley) 1/7/94
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Although we have saved user/group IDs, we do not use them in setuid
+// as described in POSIX 1003.1, because the feature does not work for
+// root. We use the saved IDs in seteuid/setegid, which are not currently
+// part of the POSIX 1003.1 specification.
+
+// execution-time symbolic constants
+// may disable terminal special characters
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// access function
+
+// Extended access functions.
+// Note that we depend on these matching the definitions in sys/kauth.h,
+// but with the bits shifted left by 8.
+
+// whence values for lseek(2)
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// whence values for lseek(2)
+
+// whence values for lseek(2); renamed by POSIX 1003.1
+
+type Accessx_descriptor = struct {
+ Fad_name_offset uint32
+ Fad_flags int32
+ Fad_pad [2]int32
+} /* unistd.h:132:1 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint64_t = uint64 /* _uint64_t.h:31:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uint32_t = uint32 /* _uint32_t.h:31:22 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uid_t = X__darwin_uid_t /* _uid_t.h:31:31 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Gid_t = X__darwin_gid_t /* _gid_t.h:31:25 */
+
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Off_t = X__darwin_off_t /* _off_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Pid_t = X__darwin_pid_t /* _pid_t.h:31:31 */
+// DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+// _GCC_SIZE_T
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Useconds_t = X__darwin_useconds_t /* _useconds_t.h:31:33 */
+
+// Darwin extensions
+
+// Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+// The timespec structure shall be defined as described in <time.h>
+// The <sys/select.h> header shall define the timeval structure.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
+
+// Darwin extensions
+
+// Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
+// The timespec structure shall be defined as described in <time.h>
+// The <sys/select.h> header shall define the timeval structure.
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars). The
+// extra protection here is to permit application redefinition above
+// the default size.
+
+type Fd_set = Fd_set1 /* _fd_def.h:52:3 */
+
+// Use the built-in bzero function instead of the library version so that
+// we do not pollute the namespace or introduce prototype warnings.
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Timespec = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_nsec int64
+} /* _timespec.h:33:1 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Timeval = struct {
+ Ftv_sec X__darwin_time_t
+ Ftv_usec X__darwin_suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* _timeval.h:34:1 */
+
+// The time_t and suseconds_t types shall be defined as described in
+// <sys/types.h>
+// The sigset_t type shall be defined as described in <signal.h>
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Suseconds_t = X__darwin_suseconds_t /* _suseconds_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Sigset_t = X__darwin_sigset_t /* _sigset_t.h:31:41 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Dev_t = X__darwin_dev_t /* _dev_t.h:31:31 */ // device number
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Mode_t = X__darwin_mode_t /* _mode_t.h:31:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_freebsd_386.go b/vendor/modernc.org/libc/unistd/unistd_freebsd_386.go
new file mode 100644
index 00000000..685c7f63
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_freebsd_386.go
@@ -0,0 +1,1770 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_freebsd_386.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+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 = 1024
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ LITTLE_ENDIAN = 1234
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ PDP_ENDIAN = 3412
+ RFCENVG = 2048
+ RFCFDG = 4096
+ RFCNAMEG = 1024
+ RFENVG = 2
+ RFFDG = 4
+ RFFLAGS = 2416930932
+ RFHIGHPID = 262144
+ RFKERNELONLY = 268828672
+ RFLINUXTHPN = 65536
+ RFMEM = 32
+ RFNAMEG = 1
+ RFNOTEG = 8
+ RFNOWAIT = 64
+ RFPPWAIT = 2147483648
+ RFPROC = 16
+ RFPROCDESC = 268435456
+ RFSIGSHARE = 16384
+ RFSPAWN = 2147483648
+ RFSTOPPED = 131072
+ RFTHREAD = 8192
+ RFTSIGMASK = 0xFF
+ RFTSIGSHIFT = 20
+ RFTSIGZMB = 524288
+ R_OK = 0x04
+ SEEK_CUR = 1
+ SEEK_DATA = 3
+ SEEK_END = 2
+ SEEK_HOLE = 4
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ SWAPOFF_FORCE = 0x00000001
+ W_OK = 0x02
+ X_OK = 0x01
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_CS_PATH = 1
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GETOPT_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKDTEMP_DECLARED = 0
+ X_MKNOD_DECLARED = 0
+ X_MKSTEMP_DECLARED = 0
+ X_MKTEMP_DECLARED = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_OPTRESET_DECLARED = 0
+ X_PC_ACL_EXTENDED = 59
+ X_PC_ACL_NFS4 = 64
+ X_PC_ACL_PATH_MAX = 60
+ X_PC_ALLOC_SIZE_MIN = 10
+ X_PC_ASYNC_IO = 53
+ X_PC_CAP_PRESENT = 61
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_FILESIZEBITS = 12
+ X_PC_INF_PRESENT = 62
+ X_PC_LINK_MAX = 1
+ X_PC_MAC_PRESENT = 63
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_MIN_HOLE_SIZE = 21
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_PRIO_IO = 54
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_SYMLINK_MAX = 18
+ X_PC_SYNC_IO = 55
+ X_PC_VDISABLE = 9
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_POSIX2_CHAR_TERM = 1
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_C_DEV = -1
+ X_POSIX2_FORT_DEV = -1
+ X_POSIX2_FORT_RUN = 200112
+ X_POSIX2_LOCALEDEF = -1
+ X_POSIX2_PBS = -1
+ X_POSIX2_PBS_ACCOUNTING = -1
+ X_POSIX2_PBS_CHECKPOINT = -1
+ X_POSIX2_PBS_LOCATE = -1
+ X_POSIX2_PBS_MESSAGE = -1
+ X_POSIX2_PBS_TRACK = -1
+ X_POSIX2_SW_DEV = -1
+ X_POSIX2_UPE = 200112
+ X_POSIX2_VERSION = 199212
+ X_POSIX_ADVISORY_INFO = 200112
+ X_POSIX_ASYNCHRONOUS_IO = 200112
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CHOWN_RESTRICTED = 1
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = 200112
+ X_POSIX_FSYNC = 200112
+ X_POSIX_IPV6 = 0
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200112
+ X_POSIX_MEMLOCK = -1
+ X_POSIX_MEMLOCK_RANGE = 200112
+ X_POSIX_MEMORY_PROTECTION = 200112
+ X_POSIX_MESSAGE_PASSING = 200112
+ X_POSIX_MONOTONIC_CLOCK = 200112
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = 0
+ X_POSIX_RAW_SOCKETS = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REALTIME_SIGNALS = 200112
+ X_POSIX_REGEXP = 1
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200112
+ X_POSIX_SHELL = 1
+ X_POSIX_SPAWN = 200112
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = -1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = 200112
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200112
+ X_POSIX_THREAD_PRIO_INHERIT = 200112
+ X_POSIX_THREAD_PRIO_PROTECT = 200112
+ X_POSIX_THREAD_PROCESS_SHARED = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = -1
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200112
+ X_POSIX_TIMERS = 200112
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_VDISABLE = 0xff
+ X_POSIX_VERSION = 200112
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 59
+ X_SC_2_PBS_ACCOUNTING = 60
+ X_SC_2_PBS_CHECKPOINT = 61
+ X_SC_2_PBS_LOCATE = 62
+ X_SC_2_PBS_MESSAGE = 63
+ X_SC_2_PBS_TRACK = 64
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_ADVISORY_INFO = 65
+ X_SC_AIO_LISTIO_MAX = 42
+ X_SC_AIO_MAX = 43
+ X_SC_AIO_PRIO_DELTA_MAX = 44
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 28
+ X_SC_ATEXIT_MAX = 107
+ X_SC_BARRIERS = 66
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 3
+ X_SC_CLOCK_SELECTION = 67
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUSET_SIZE = 122
+ X_SC_CPUTIME = 68
+ X_SC_DELAYTIMER_MAX = 45
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FILE_LOCKING = 69
+ X_SC_FSYNC = 38
+ X_SC_GETGR_R_SIZE_MAX = 70
+ X_SC_GETPW_R_SIZE_MAX = 71
+ X_SC_HOST_NAME_MAX = 72
+ X_SC_IOV_MAX = 56
+ X_SC_IPV6 = 118
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 73
+ X_SC_MAPPED_FILES = 29
+ X_SC_MEMLOCK = 30
+ X_SC_MEMLOCK_RANGE = 31
+ X_SC_MEMORY_PROTECTION = 32
+ X_SC_MESSAGE_PASSING = 33
+ X_SC_MONOTONIC_CLOCK = 74
+ X_SC_MQ_OPEN_MAX = 46
+ X_SC_MQ_PRIO_MAX = 75
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 57
+ X_SC_NPROCESSORS_ONLN = 58
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 47
+ X_SC_PAGE_SIZE = 47
+ X_SC_PHYS_PAGES = 121
+ X_SC_PRIORITIZED_IO = 34
+ X_SC_PRIORITY_SCHEDULING = 35
+ X_SC_RAW_SOCKETS = 119
+ X_SC_READER_WRITER_LOCKS = 76
+ X_SC_REALTIME_SIGNALS = 36
+ X_SC_REGEXP = 77
+ X_SC_RE_DUP_MAX = 16
+ X_SC_RTSIG_MAX = 48
+ X_SC_SAVED_IDS = 7
+ X_SC_SEMAPHORES = 37
+ X_SC_SEM_NSEMS_MAX = 49
+ X_SC_SEM_VALUE_MAX = 50
+ X_SC_SHARED_MEMORY_OBJECTS = 39
+ X_SC_SHELL = 78
+ X_SC_SIGQUEUE_MAX = 51
+ X_SC_SPAWN = 79
+ X_SC_SPIN_LOCKS = 80
+ X_SC_SPORADIC_SERVER = 81
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 120
+ X_SC_SYNCHRONIZED_IO = 40
+ X_SC_THREADS = 96
+ X_SC_THREAD_ATTR_STACKADDR = 82
+ X_SC_THREAD_ATTR_STACKSIZE = 83
+ X_SC_THREAD_CPUTIME = 84
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85
+ X_SC_THREAD_KEYS_MAX = 86
+ X_SC_THREAD_PRIORITY_SCHEDULING = 89
+ X_SC_THREAD_PRIO_INHERIT = 87
+ X_SC_THREAD_PRIO_PROTECT = 88
+ X_SC_THREAD_PROCESS_SHARED = 90
+ X_SC_THREAD_SAFE_FUNCTIONS = 91
+ X_SC_THREAD_SPORADIC_SERVER = 92
+ X_SC_THREAD_STACK_MIN = 93
+ X_SC_THREAD_THREADS_MAX = 94
+ X_SC_TIMEOUTS = 95
+ X_SC_TIMERS = 41
+ X_SC_TIMER_MAX = 52
+ X_SC_TRACE = 97
+ X_SC_TRACE_EVENT_FILTER = 98
+ X_SC_TRACE_INHERIT = 99
+ X_SC_TRACE_LOG = 100
+ X_SC_TTY_NAME_MAX = 101
+ X_SC_TYPED_MEMORY_OBJECTS = 102
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 103
+ X_SC_V6_ILP32_OFFBIG = 104
+ X_SC_V6_LP64_OFF64 = 105
+ X_SC_V6_LPBIG_OFFBIG = 106
+ X_SC_VERSION = 8
+ X_SC_XOPEN_CRYPT = 108
+ X_SC_XOPEN_ENH_I18N = 109
+ X_SC_XOPEN_LEGACY = 110
+ X_SC_XOPEN_REALTIME = 111
+ X_SC_XOPEN_REALTIME_THREADS = 112
+ X_SC_XOPEN_SHM = 113
+ X_SC_XOPEN_STREAMS = 114
+ X_SC_XOPEN_UNIX = 115
+ X_SC_XOPEN_VERSION = 116
+ X_SC_XOPEN_XCU_VERSION = 117
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SWAB_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_UNISTD_H_ = 0
+ X_USECONDS_T_DECLARED = 0
+ X_V6_ILP32_OFF32 = -1
+ X_V6_ILP32_OFFBIG = 0
+ X_V6_LP64_OFF64 = 0
+ X_V6_LPBIG_OFFBIG = -1
+ X_XOPEN_CRYPT = -1
+ X_XOPEN_ENH_I18N = -1
+ X_XOPEN_LEGACY = -1
+ X_XOPEN_REALTIME = -1
+ X_XOPEN_REALTIME_THREADS = -1
+ X_XOPEN_SHM = 1
+ X_XOPEN_STREAMS = -1
+ X_XOPEN_UNIX = -1
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1991, 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.
+//
+// @(#)unistd.h 8.12 (Berkeley) 4/27/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint32 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint32 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46: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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint32 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */ // select(2)
+
+type Crypt_data = struct {
+ Finitialized int32
+ F__buf [256]int8
+} /* unistd.h:489:1 */
+
+// getopt(3) external variable
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_freebsd_amd64.go b/vendor/modernc.org/libc/unistd/unistd_freebsd_amd64.go
new file mode 100644
index 00000000..475937c3
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_freebsd_amd64.go
@@ -0,0 +1,1810 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_freebsd_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+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 = 1024
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ LITTLE_ENDIAN = 1234
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ PDP_ENDIAN = 3412
+ RFCENVG = 2048
+ RFCFDG = 4096
+ RFCNAMEG = 1024
+ RFENVG = 2
+ RFFDG = 4
+ RFFLAGS = 2416930932
+ RFHIGHPID = 262144
+ RFKERNELONLY = 268828672
+ RFLINUXTHPN = 65536
+ RFMEM = 32
+ RFNAMEG = 1
+ RFNOTEG = 8
+ RFNOWAIT = 64
+ RFPPWAIT = 2147483648
+ RFPROC = 16
+ RFPROCDESC = 268435456
+ RFSIGSHARE = 16384
+ RFSPAWN = 2147483648
+ RFSTOPPED = 131072
+ RFTHREAD = 8192
+ RFTSIGMASK = 0xFF
+ RFTSIGSHIFT = 20
+ RFTSIGZMB = 524288
+ R_OK = 0x04
+ SEEK_CUR = 1
+ SEEK_DATA = 3
+ SEEK_END = 2
+ SEEK_HOLE = 4
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 0x02
+ X_OK = 0x01
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_CS_PATH = 1
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GETOPT_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MKDTEMP_DECLARED = 0
+ X_MKNOD_DECLARED = 0
+ X_MKSTEMP_DECLARED = 0
+ X_MKTEMP_DECLARED = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_OPTRESET_DECLARED = 0
+ X_PC_ACL_EXTENDED = 59
+ X_PC_ACL_NFS4 = 64
+ X_PC_ACL_PATH_MAX = 60
+ X_PC_ALLOC_SIZE_MIN = 10
+ X_PC_ASYNC_IO = 53
+ X_PC_CAP_PRESENT = 61
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_FILESIZEBITS = 12
+ X_PC_INF_PRESENT = 62
+ X_PC_LINK_MAX = 1
+ X_PC_MAC_PRESENT = 63
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_MIN_HOLE_SIZE = 21
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_PRIO_IO = 54
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_SYMLINK_MAX = 18
+ X_PC_SYNC_IO = 55
+ X_PC_VDISABLE = 9
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_POSIX2_CHAR_TERM = 1
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_C_DEV = -1
+ X_POSIX2_FORT_DEV = -1
+ X_POSIX2_FORT_RUN = 200112
+ X_POSIX2_LOCALEDEF = -1
+ X_POSIX2_PBS = -1
+ X_POSIX2_PBS_ACCOUNTING = -1
+ X_POSIX2_PBS_CHECKPOINT = -1
+ X_POSIX2_PBS_LOCATE = -1
+ X_POSIX2_PBS_MESSAGE = -1
+ X_POSIX2_PBS_TRACK = -1
+ X_POSIX2_SW_DEV = -1
+ X_POSIX2_UPE = 200112
+ X_POSIX2_VERSION = 199212
+ X_POSIX_ADVISORY_INFO = 200112
+ X_POSIX_ASYNCHRONOUS_IO = 200112
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CHOWN_RESTRICTED = 1
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = 200112
+ X_POSIX_FSYNC = 200112
+ X_POSIX_IPV6 = 0
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200112
+ X_POSIX_MEMLOCK = -1
+ X_POSIX_MEMLOCK_RANGE = 200112
+ X_POSIX_MEMORY_PROTECTION = 200112
+ X_POSIX_MESSAGE_PASSING = 200112
+ X_POSIX_MONOTONIC_CLOCK = 200112
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = 0
+ X_POSIX_RAW_SOCKETS = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REALTIME_SIGNALS = 200112
+ X_POSIX_REGEXP = 1
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200112
+ X_POSIX_SHELL = 1
+ X_POSIX_SPAWN = 200112
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = -1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = 200112
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200112
+ X_POSIX_THREAD_PRIO_INHERIT = 200112
+ X_POSIX_THREAD_PRIO_PROTECT = 200112
+ X_POSIX_THREAD_PROCESS_SHARED = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = -1
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200112
+ X_POSIX_TIMERS = 200112
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_VDISABLE = 0xff
+ X_POSIX_VERSION = 200112
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 59
+ X_SC_2_PBS_ACCOUNTING = 60
+ X_SC_2_PBS_CHECKPOINT = 61
+ X_SC_2_PBS_LOCATE = 62
+ X_SC_2_PBS_MESSAGE = 63
+ X_SC_2_PBS_TRACK = 64
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_ADVISORY_INFO = 65
+ X_SC_AIO_LISTIO_MAX = 42
+ X_SC_AIO_MAX = 43
+ X_SC_AIO_PRIO_DELTA_MAX = 44
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 28
+ X_SC_ATEXIT_MAX = 107
+ X_SC_BARRIERS = 66
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 3
+ X_SC_CLOCK_SELECTION = 67
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUSET_SIZE = 122
+ X_SC_CPUTIME = 68
+ X_SC_DELAYTIMER_MAX = 45
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FILE_LOCKING = 69
+ X_SC_FSYNC = 38
+ X_SC_GETGR_R_SIZE_MAX = 70
+ X_SC_GETPW_R_SIZE_MAX = 71
+ X_SC_HOST_NAME_MAX = 72
+ X_SC_IOV_MAX = 56
+ X_SC_IPV6 = 118
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 73
+ X_SC_MAPPED_FILES = 29
+ X_SC_MEMLOCK = 30
+ X_SC_MEMLOCK_RANGE = 31
+ X_SC_MEMORY_PROTECTION = 32
+ X_SC_MESSAGE_PASSING = 33
+ X_SC_MONOTONIC_CLOCK = 74
+ X_SC_MQ_OPEN_MAX = 46
+ X_SC_MQ_PRIO_MAX = 75
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 57
+ X_SC_NPROCESSORS_ONLN = 58
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 47
+ X_SC_PAGE_SIZE = 47
+ X_SC_PHYS_PAGES = 121
+ X_SC_PRIORITIZED_IO = 34
+ X_SC_PRIORITY_SCHEDULING = 35
+ X_SC_RAW_SOCKETS = 119
+ X_SC_READER_WRITER_LOCKS = 76
+ X_SC_REALTIME_SIGNALS = 36
+ X_SC_REGEXP = 77
+ X_SC_RE_DUP_MAX = 16
+ X_SC_RTSIG_MAX = 48
+ X_SC_SAVED_IDS = 7
+ X_SC_SEMAPHORES = 37
+ X_SC_SEM_NSEMS_MAX = 49
+ X_SC_SEM_VALUE_MAX = 50
+ X_SC_SHARED_MEMORY_OBJECTS = 39
+ X_SC_SHELL = 78
+ X_SC_SIGQUEUE_MAX = 51
+ X_SC_SPAWN = 79
+ X_SC_SPIN_LOCKS = 80
+ X_SC_SPORADIC_SERVER = 81
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 120
+ X_SC_SYNCHRONIZED_IO = 40
+ X_SC_THREADS = 96
+ X_SC_THREAD_ATTR_STACKADDR = 82
+ X_SC_THREAD_ATTR_STACKSIZE = 83
+ X_SC_THREAD_CPUTIME = 84
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85
+ X_SC_THREAD_KEYS_MAX = 86
+ X_SC_THREAD_PRIORITY_SCHEDULING = 89
+ X_SC_THREAD_PRIO_INHERIT = 87
+ X_SC_THREAD_PRIO_PROTECT = 88
+ X_SC_THREAD_PROCESS_SHARED = 90
+ X_SC_THREAD_SAFE_FUNCTIONS = 91
+ X_SC_THREAD_SPORADIC_SERVER = 92
+ X_SC_THREAD_STACK_MIN = 93
+ X_SC_THREAD_THREADS_MAX = 94
+ X_SC_TIMEOUTS = 95
+ X_SC_TIMERS = 41
+ X_SC_TIMER_MAX = 52
+ X_SC_TRACE = 97
+ X_SC_TRACE_EVENT_FILTER = 98
+ X_SC_TRACE_INHERIT = 99
+ X_SC_TRACE_LOG = 100
+ X_SC_TTY_NAME_MAX = 101
+ X_SC_TYPED_MEMORY_OBJECTS = 102
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 103
+ X_SC_V6_ILP32_OFFBIG = 104
+ X_SC_V6_LP64_OFF64 = 105
+ X_SC_V6_LPBIG_OFFBIG = 106
+ X_SC_VERSION = 8
+ X_SC_XOPEN_CRYPT = 108
+ X_SC_XOPEN_ENH_I18N = 109
+ X_SC_XOPEN_LEGACY = 110
+ X_SC_XOPEN_REALTIME = 111
+ X_SC_XOPEN_REALTIME_THREADS = 112
+ X_SC_XOPEN_SHM = 113
+ X_SC_XOPEN_STREAMS = 114
+ X_SC_XOPEN_UNIX = 115
+ X_SC_XOPEN_VERSION = 116
+ X_SC_XOPEN_XCU_VERSION = 117
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SWAB_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_UNISTD_H_ = 0
+ X_USECONDS_T_DECLARED = 0
+ X_V6_ILP32_OFF32 = -1
+ X_V6_ILP32_OFFBIG = 0
+ X_V6_LP64_OFF64 = 0
+ X_V6_LPBIG_OFFBIG = -1
+ X_XOPEN_CRYPT = -1
+ X_XOPEN_ENH_I18N = -1
+ X_XOPEN_LEGACY = -1
+ X_XOPEN_REALTIME = -1
+ X_XOPEN_REALTIME_THREADS = -1
+ X_XOPEN_SHM = 1
+ X_XOPEN_STREAMS = -1
+ X_XOPEN_UNIX = -1
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1991, 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.
+//
+// @(#)unistd.h 8.12 (Berkeley) 4/27/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint64 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint64 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46: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
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint64 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [16]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */ // select(2)
+
+type Crypt_data = struct {
+ Finitialized int32
+ F__buf [256]int8
+} /* unistd.h:489:1 */
+
+// getopt(3) external variable
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_linux_386.go b/vendor/modernc.org/libc/unistd/unistd_linux_386.go
new file mode 100644
index 00000000..ffc5faca
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_linux_386.go
@@ -0,0 +1,1572 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_386.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 2
+ X_OK = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX_OPT_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GETOPT_CORE_H = 1
+ X_GETOPT_POSIX_H = 1
+ X_ILP32 = 1
+ X_LFS64_ASYNCHRONOUS_IO = 1
+ X_LFS64_LARGEFILE = 1
+ X_LFS64_STDIO = 1
+ X_LFS_ASYNCHRONOUS_IO = 1
+ X_LFS_LARGEFILE = 1
+ X_POSIX2_CHAR_TERM = 200809
+ X_POSIX2_C_BIND = 200809
+ X_POSIX2_C_DEV = 200809
+ X_POSIX2_C_VERSION = 200809
+ X_POSIX2_LOCALEDEF = 200809
+ X_POSIX2_SW_DEV = 200809
+ X_POSIX2_VERSION = 200809
+ X_POSIX_ADVISORY_INFO = 200809
+ X_POSIX_ASYNCHRONOUS_IO = 200809
+ X_POSIX_ASYNC_IO = 1
+ X_POSIX_BARRIERS = 200809
+ X_POSIX_CHOWN_RESTRICTED = 0
+ X_POSIX_CLOCK_SELECTION = 200809
+ X_POSIX_CPUTIME = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_FSYNC = 200809
+ X_POSIX_IPV6 = 200809
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200809
+ X_POSIX_MEMLOCK = 200809
+ X_POSIX_MEMLOCK_RANGE = 200809
+ X_POSIX_MEMORY_PROTECTION = 200809
+ X_POSIX_MESSAGE_PASSING = 200809
+ X_POSIX_MONOTONIC_CLOCK = 0
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = 200809
+ X_POSIX_PRIORITY_SCHEDULING = 200809
+ X_POSIX_RAW_SOCKETS = 200809
+ X_POSIX_READER_WRITER_LOCKS = 200809
+ X_POSIX_REALTIME_SIGNALS = 200809
+ X_POSIX_REENTRANT_FUNCTIONS = 1
+ X_POSIX_REGEXP = 1
+ X_POSIX_SAVED_IDS = 1
+ X_POSIX_SEMAPHORES = 200809
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200809
+ X_POSIX_SHELL = 1
+ X_POSIX_SOURCE = 1
+ X_POSIX_SPAWN = 200809
+ X_POSIX_SPIN_LOCKS = 200809
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = 200809
+ X_POSIX_THREADS = 200809
+ X_POSIX_THREAD_ATTR_STACKADDR = 200809
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200809
+ X_POSIX_THREAD_CPUTIME = 0
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200809
+ X_POSIX_THREAD_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_PRIO_PROTECT = 200809
+ X_POSIX_THREAD_PROCESS_SHARED = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200809
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200809
+ X_POSIX_TIMERS = 200809
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = 1
+ X_POSIX_V6_ILP32_OFFBIG = 1
+ X_POSIX_V7_ILP32_OFF32 = 1
+ X_POSIX_V7_ILP32_OFFBIG = 1
+ X_POSIX_VDISABLE = 0
+ X_POSIX_VERSION = 200809
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UNISTD_H = 1
+ X_XBS5_ILP32_OFF32 = 1
+ X_XBS5_ILP32_OFFBIG = 1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = 1
+ X_XOPEN_REALTIME = 1
+ X_XOPEN_REALTIME_THREADS = 1
+ X_XOPEN_SHM = 1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 700
+ X_XOPEN_XCU_VERSION = 4
+ X_XOPEN_XPG2 = 1
+ X_XOPEN_XPG3 = 1
+ X_XOPEN_XPG4 = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf';
+// the `_SC_*' symbols for the NAME argument to `sysconf';
+// and the `_CS_*' symbols for the NAME argument to `confstr'.
+// `sysconf', `pathconf', and `confstr' NAME values. Generic version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Values for the NAME argument to `pathconf' and `fpathconf'.
+const ( /* confname.h:24:1: */
+ X_PC_LINK_MAX = 0
+ X_PC_MAX_CANON = 1
+ X_PC_MAX_INPUT = 2
+ X_PC_NAME_MAX = 3
+ X_PC_PATH_MAX = 4
+ X_PC_PIPE_BUF = 5
+ X_PC_CHOWN_RESTRICTED = 6
+ X_PC_NO_TRUNC = 7
+ X_PC_VDISABLE = 8
+ X_PC_SYNC_IO = 9
+ X_PC_ASYNC_IO = 10
+ X_PC_PRIO_IO = 11
+ X_PC_SOCK_MAXBUF = 12
+ X_PC_FILESIZEBITS = 13
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_ALLOC_SIZE_MIN = 18
+ X_PC_SYMLINK_MAX = 19
+ X_PC_2_SYMLINKS = 20
+)
+
+// Values for the NAME argument to `confstr'.
+const ( /* confname.h:533:1: */
+ X_CS_PATH = 0 // The default search path.
+
+ X_CS_V6_WIDTH_RESTRICTED_ENVS = 1
+
+ X_CS_GNU_LIBC_VERSION = 2
+ X_CS_GNU_LIBPTHREAD_VERSION = 3
+
+ X_CS_V5_WIDTH_RESTRICTED_ENVS = 4
+
+ X_CS_V7_WIDTH_RESTRICTED_ENVS = 5
+
+ X_CS_LFS_CFLAGS = 1000
+ X_CS_LFS_LDFLAGS = 1001
+ X_CS_LFS_LIBS = 1002
+ X_CS_LFS_LINTFLAGS = 1003
+ X_CS_LFS64_CFLAGS = 1004
+ X_CS_LFS64_LDFLAGS = 1005
+ X_CS_LFS64_LIBS = 1006
+ X_CS_LFS64_LINTFLAGS = 1007
+
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 1100
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 1101
+ X_CS_XBS5_ILP32_OFF32_LIBS = 1102
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 1106
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 1108
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 1109
+ X_CS_XBS5_LP64_OFF64_LIBS = 1110
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 1111
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 1114
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115
+
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
+ X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
+ X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 1126
+ X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
+
+ X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
+ X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
+ X_CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
+ X_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
+ X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
+ X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
+ X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
+ X_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
+ X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
+ X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
+ X_CS_POSIX_V7_LP64_OFF64_LIBS = 1142
+ X_CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
+ X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
+
+ X_CS_V6_ENV = 1148
+ X_CS_V7_ENV = 1149
+)
+
+// Values for the argument to `sysconf'.
+const ( /* confname.h:71:1: */
+ X_SC_ARG_MAX = 0
+ X_SC_CHILD_MAX = 1
+ X_SC_CLK_TCK = 2
+ X_SC_NGROUPS_MAX = 3
+ X_SC_OPEN_MAX = 4
+ X_SC_STREAM_MAX = 5
+ X_SC_TZNAME_MAX = 6
+ X_SC_JOB_CONTROL = 7
+ X_SC_SAVED_IDS = 8
+ X_SC_REALTIME_SIGNALS = 9
+ X_SC_PRIORITY_SCHEDULING = 10
+ X_SC_TIMERS = 11
+ X_SC_ASYNCHRONOUS_IO = 12
+ X_SC_PRIORITIZED_IO = 13
+ X_SC_SYNCHRONIZED_IO = 14
+ X_SC_FSYNC = 15
+ X_SC_MAPPED_FILES = 16
+ X_SC_MEMLOCK = 17
+ X_SC_MEMLOCK_RANGE = 18
+ X_SC_MEMORY_PROTECTION = 19
+ X_SC_MESSAGE_PASSING = 20
+ X_SC_SEMAPHORES = 21
+ X_SC_SHARED_MEMORY_OBJECTS = 22
+ X_SC_AIO_LISTIO_MAX = 23
+ X_SC_AIO_MAX = 24
+ X_SC_AIO_PRIO_DELTA_MAX = 25
+ X_SC_DELAYTIMER_MAX = 26
+ X_SC_MQ_OPEN_MAX = 27
+ X_SC_MQ_PRIO_MAX = 28
+ X_SC_VERSION = 29
+ X_SC_PAGESIZE = 30
+ X_SC_RTSIG_MAX = 31
+ X_SC_SEM_NSEMS_MAX = 32
+ X_SC_SEM_VALUE_MAX = 33
+ X_SC_SIGQUEUE_MAX = 34
+ X_SC_TIMER_MAX = 35
+
+ // Values for the argument to `sysconf'
+ // corresponding to _POSIX2_* symbols.
+ X_SC_BC_BASE_MAX = 36
+ X_SC_BC_DIM_MAX = 37
+ X_SC_BC_SCALE_MAX = 38
+ X_SC_BC_STRING_MAX = 39
+ X_SC_COLL_WEIGHTS_MAX = 40
+ X_SC_EQUIV_CLASS_MAX = 41
+ X_SC_EXPR_NEST_MAX = 42
+ X_SC_LINE_MAX = 43
+ X_SC_RE_DUP_MAX = 44
+ X_SC_CHARCLASS_NAME_MAX = 45
+
+ X_SC_2_VERSION = 46
+ X_SC_2_C_BIND = 47
+ X_SC_2_C_DEV = 48
+ X_SC_2_FORT_DEV = 49
+ X_SC_2_FORT_RUN = 50
+ X_SC_2_SW_DEV = 51
+ X_SC_2_LOCALEDEF = 52
+
+ X_SC_PII = 53
+ X_SC_PII_XTI = 54
+ X_SC_PII_SOCKET = 55
+ X_SC_PII_INTERNET = 56
+ X_SC_PII_OSI = 57
+ X_SC_POLL = 58
+ X_SC_SELECT = 59
+ X_SC_UIO_MAXIOV = 60
+ X_SC_IOV_MAX = 60
+ X_SC_PII_INTERNET_STREAM = 61
+ X_SC_PII_INTERNET_DGRAM = 62
+ X_SC_PII_OSI_COTS = 63
+ X_SC_PII_OSI_CLTS = 64
+ X_SC_PII_OSI_M = 65
+ X_SC_T_IOV_MAX = 66
+
+ // Values according to POSIX 1003.1c (POSIX threads).
+ X_SC_THREADS = 67
+ X_SC_THREAD_SAFE_FUNCTIONS = 68
+ X_SC_GETGR_R_SIZE_MAX = 69
+ X_SC_GETPW_R_SIZE_MAX = 70
+ X_SC_LOGIN_NAME_MAX = 71
+ X_SC_TTY_NAME_MAX = 72
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 73
+ X_SC_THREAD_KEYS_MAX = 74
+ X_SC_THREAD_STACK_MIN = 75
+ X_SC_THREAD_THREADS_MAX = 76
+ X_SC_THREAD_ATTR_STACKADDR = 77
+ X_SC_THREAD_ATTR_STACKSIZE = 78
+ X_SC_THREAD_PRIORITY_SCHEDULING = 79
+ X_SC_THREAD_PRIO_INHERIT = 80
+ X_SC_THREAD_PRIO_PROTECT = 81
+ X_SC_THREAD_PROCESS_SHARED = 82
+
+ X_SC_NPROCESSORS_CONF = 83
+ X_SC_NPROCESSORS_ONLN = 84
+ X_SC_PHYS_PAGES = 85
+ X_SC_AVPHYS_PAGES = 86
+ X_SC_ATEXIT_MAX = 87
+ X_SC_PASS_MAX = 88
+
+ X_SC_XOPEN_VERSION = 89
+ X_SC_XOPEN_XCU_VERSION = 90
+ X_SC_XOPEN_UNIX = 91
+ X_SC_XOPEN_CRYPT = 92
+ X_SC_XOPEN_ENH_I18N = 93
+ X_SC_XOPEN_SHM = 94
+
+ X_SC_2_CHAR_TERM = 95
+ X_SC_2_C_VERSION = 96
+ X_SC_2_UPE = 97
+
+ X_SC_XOPEN_XPG2 = 98
+ X_SC_XOPEN_XPG3 = 99
+ X_SC_XOPEN_XPG4 = 100
+
+ X_SC_CHAR_BIT = 101
+ X_SC_CHAR_MAX = 102
+ X_SC_CHAR_MIN = 103
+ X_SC_INT_MAX = 104
+ X_SC_INT_MIN = 105
+ X_SC_LONG_BIT = 106
+ X_SC_WORD_BIT = 107
+ X_SC_MB_LEN_MAX = 108
+ X_SC_NZERO = 109
+ X_SC_SSIZE_MAX = 110
+ X_SC_SCHAR_MAX = 111
+ X_SC_SCHAR_MIN = 112
+ X_SC_SHRT_MAX = 113
+ X_SC_SHRT_MIN = 114
+ X_SC_UCHAR_MAX = 115
+ X_SC_UINT_MAX = 116
+ X_SC_ULONG_MAX = 117
+ X_SC_USHRT_MAX = 118
+
+ X_SC_NL_ARGMAX = 119
+ X_SC_NL_LANGMAX = 120
+ X_SC_NL_MSGMAX = 121
+ X_SC_NL_NMAX = 122
+ X_SC_NL_SETMAX = 123
+ X_SC_NL_TEXTMAX = 124
+
+ X_SC_XBS5_ILP32_OFF32 = 125
+ X_SC_XBS5_ILP32_OFFBIG = 126
+ X_SC_XBS5_LP64_OFF64 = 127
+ X_SC_XBS5_LPBIG_OFFBIG = 128
+
+ X_SC_XOPEN_LEGACY = 129
+ X_SC_XOPEN_REALTIME = 130
+ X_SC_XOPEN_REALTIME_THREADS = 131
+
+ X_SC_ADVISORY_INFO = 132
+ X_SC_BARRIERS = 133
+ X_SC_BASE = 134
+ X_SC_C_LANG_SUPPORT = 135
+ X_SC_C_LANG_SUPPORT_R = 136
+ X_SC_CLOCK_SELECTION = 137
+ X_SC_CPUTIME = 138
+ X_SC_THREAD_CPUTIME = 139
+ X_SC_DEVICE_IO = 140
+ X_SC_DEVICE_SPECIFIC = 141
+ X_SC_DEVICE_SPECIFIC_R = 142
+ X_SC_FD_MGMT = 143
+ X_SC_FIFO = 144
+ X_SC_PIPE = 145
+ X_SC_FILE_ATTRIBUTES = 146
+ X_SC_FILE_LOCKING = 147
+ X_SC_FILE_SYSTEM = 148
+ X_SC_MONOTONIC_CLOCK = 149
+ X_SC_MULTI_PROCESS = 150
+ X_SC_SINGLE_PROCESS = 151
+ X_SC_NETWORKING = 152
+ X_SC_READER_WRITER_LOCKS = 153
+ X_SC_SPIN_LOCKS = 154
+ X_SC_REGEXP = 155
+ X_SC_REGEX_VERSION = 156
+ X_SC_SHELL = 157
+ X_SC_SIGNALS = 158
+ X_SC_SPAWN = 159
+ X_SC_SPORADIC_SERVER = 160
+ X_SC_THREAD_SPORADIC_SERVER = 161
+ X_SC_SYSTEM_DATABASE = 162
+ X_SC_SYSTEM_DATABASE_R = 163
+ X_SC_TIMEOUTS = 164
+ X_SC_TYPED_MEMORY_OBJECTS = 165
+ X_SC_USER_GROUPS = 166
+ X_SC_USER_GROUPS_R = 167
+ X_SC_2_PBS = 168
+ X_SC_2_PBS_ACCOUNTING = 169
+ X_SC_2_PBS_LOCATE = 170
+ X_SC_2_PBS_MESSAGE = 171
+ X_SC_2_PBS_TRACK = 172
+ X_SC_SYMLOOP_MAX = 173
+ X_SC_STREAMS = 174
+ X_SC_2_PBS_CHECKPOINT = 175
+
+ X_SC_V6_ILP32_OFF32 = 176
+ X_SC_V6_ILP32_OFFBIG = 177
+ X_SC_V6_LP64_OFF64 = 178
+ X_SC_V6_LPBIG_OFFBIG = 179
+
+ X_SC_HOST_NAME_MAX = 180
+ X_SC_TRACE = 181
+ X_SC_TRACE_EVENT_FILTER = 182
+ X_SC_TRACE_INHERIT = 183
+ X_SC_TRACE_LOG = 184
+
+ X_SC_LEVEL1_ICACHE_SIZE = 185
+ X_SC_LEVEL1_ICACHE_ASSOC = 186
+ X_SC_LEVEL1_ICACHE_LINESIZE = 187
+ X_SC_LEVEL1_DCACHE_SIZE = 188
+ X_SC_LEVEL1_DCACHE_ASSOC = 189
+ X_SC_LEVEL1_DCACHE_LINESIZE = 190
+ X_SC_LEVEL2_CACHE_SIZE = 191
+ X_SC_LEVEL2_CACHE_ASSOC = 192
+ X_SC_LEVEL2_CACHE_LINESIZE = 193
+ X_SC_LEVEL3_CACHE_SIZE = 194
+ X_SC_LEVEL3_CACHE_ASSOC = 195
+ X_SC_LEVEL3_CACHE_LINESIZE = 196
+ X_SC_LEVEL4_CACHE_SIZE = 197
+ X_SC_LEVEL4_CACHE_ASSOC = 198
+ X_SC_LEVEL4_CACHE_LINESIZE = 199
+ // Leave room here, maybe we need a few more cache levels some day.
+
+ X_SC_IPV6 = 235
+ X_SC_RAW_SOCKETS = 236
+
+ X_SC_V7_ILP32_OFF32 = 237
+ X_SC_V7_ILP32_OFFBIG = 238
+ X_SC_V7_LP64_OFF64 = 239
+ X_SC_V7_LPBIG_OFFBIG = 240
+
+ X_SC_SS_REPL_MAX = 241
+
+ X_SC_TRACE_EVENT_NAME_MAX = 242
+ X_SC_TRACE_NAME_MAX = 243
+ X_SC_TRACE_SYS_MAX = 244
+ X_SC_TRACE_USER_EVENT_MAX = 245
+
+ X_SC_XOPEN_STREAMS = 246
+
+ X_SC_THREAD_ROBUST_PRIO_INHERIT = 247
+ X_SC_THREAD_ROBUST_PRIO_PROTECT = 248
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 2.10 Symbolic Constants <unistd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// These may be used to determine what facilities are present at compile time.
+// Their values can be obtained at run time from `sysconf'.
+
+// POSIX Standard approved as ISO/IEC 9945-1 as of September 2008.
+
+// These are not #ifdef __USE_POSIX2 because they are
+// in the theoretically application-owned namespace.
+
+// The utilities on GNU systems also correspond to this version.
+
+// The utilities on GNU systems also correspond to this version.
+
+// This symbol was required until the 2001 edition of POSIX.
+
+// If defined, the implementation supports the
+// C Language Bindings Option.
+
+// If defined, the implementation supports the
+// C Language Development Utilities Option.
+
+// If defined, the implementation supports the
+// Software Development Utilities Option.
+
+// If defined, the implementation supports the
+// creation of locales with the localedef utility.
+
+// X/Open version number to which the library conforms. It is selectable.
+
+// Commands and utilities from XPG4 are available.
+
+// We are compatible with the old published standards as well.
+
+// The X/Open Unix extensions are available.
+
+// The enhanced internationalization capabilities according to XPG4.2
+// are present.
+
+// The legacy interfaces are also available.
+
+// Get values of POSIX options:
+//
+// If these symbols are defined, the corresponding features are
+// always available. If not, they may be available sometimes.
+// The current values can be obtained with `sysconf'.
+//
+// _POSIX_JOB_CONTROL Job control is supported.
+// _POSIX_SAVED_IDS Processes have a saved set-user-ID
+// and a saved set-group-ID.
+// _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported.
+// _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported.
+// _POSIX_TIMERS POSIX.4 clocks and timers are supported.
+// _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported.
+// _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported.
+// _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported.
+// _POSIX_FSYNC The fsync function is present.
+// _POSIX_MAPPED_FILES Mapping of files to memory is supported.
+// _POSIX_MEMLOCK Locking of all memory is supported.
+// _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported.
+// _POSIX_MEMORY_PROTECTION Setting of memory protections is supported.
+// _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported.
+// _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported.
+// _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported.
+// _POSIX_THREADS POSIX.1c pthreads are supported.
+// _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported.
+// _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported.
+// _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported.
+// _POSIX_THREAD_PRIORITY_SCHEDULING
+// POSIX.1c thread execution scheduling supported.
+// _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported.
+// _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported.
+// _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported.
+// _POSIX_PII Protocol-independent interfaces are supported.
+// _POSIX_PII_XTI XTI protocol-indep. interfaces are supported.
+// _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported.
+// _POSIX_PII_INTERNET Internet family of protocols supported.
+// _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported.
+// _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported.
+// _POSIX_PII_OSI ISO/OSI family of protocols supported.
+// _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported.
+// _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported.
+// _POSIX_POLL Implementation supports `poll' function.
+// _POSIX_SELECT Implementation supports `select' and `pselect'.
+//
+// _XOPEN_REALTIME X/Open realtime support is available.
+// _XOPEN_REALTIME_THREADS X/Open realtime thread support is available.
+// _XOPEN_SHM Shared memory interface according to XPG4.2.
+//
+// _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit
+// int, long, pointer, and off_t types.
+// _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit
+// int, long, and pointer and off_t with at least
+// 64 bits.
+// _XBS5_LP64_OFF64 Implementation provides environment with 32-bit
+// int, and 64-bit long, pointer, and off_t types.
+// _XBS5_LPBIG_OFFBIG Implementation provides environment with at
+// least 32 bits int and long, pointer, and off_t
+// with at least 64 bits.
+//
+// If any of these symbols is defined as -1, the corresponding option is not
+// true for any file. If any is defined as other than -1, the corresponding
+// option is true for all files. If a symbol is not defined at all, the value
+// for a specific file can be obtained from `pathconf' and `fpathconf'.
+//
+// _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change
+// the owner of a file. `chown' can only be used
+// to change the group ID of a file to a group of
+// which the calling process is a member.
+// _POSIX_NO_TRUNC Pathname components longer than
+// NAME_MAX generate an error.
+// _POSIX_VDISABLE If defined, if the value of an element of the
+// `c_cc' member of `struct termios' is
+// _POSIX_VDISABLE, no character will have the
+// effect associated with that element.
+// _POSIX_SYNC_IO Synchronous I/O may be performed.
+// _POSIX_ASYNC_IO Asynchronous I/O may be performed.
+// _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed.
+//
+// Support for the Large File Support interface is not generally available.
+// If it is available the following constants are defined to one.
+// _LFS64_LARGEFILE Low-level I/O supports large files.
+// _LFS64_STDIO Standard I/O supports large files.
+//
+
+// Define POSIX options for Linux.
+// 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
+// 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// Job control is supported.
+
+// Processes have a saved set-user-ID and a saved set-group-ID.
+
+// Priority scheduling is not supported with the correct semantics,
+// but GNU/Linux applications expect that the corresponding interfaces
+// are available, even though the semantics do not meet the POSIX
+// requirements. See glibc bug 14829.
+
+// Synchronizing file data is supported.
+
+// The fsync function is present.
+
+// Mapping of files to memory is supported.
+
+// Locking of all memory is supported.
+
+// Locking of ranges of memory is supported.
+
+// Setting of memory protections is supported.
+
+// Some filesystems allow all users to change file ownership.
+
+// `c_cc' member of 'struct termios' structure can be disabled by
+// using the value _POSIX_VDISABLE.
+
+// Filenames are not silently truncated.
+
+// X/Open realtime support is available.
+
+// X/Open thread realtime support is available.
+
+// XPG4.2 shared memory is supported.
+
+// Tell we have POSIX threads.
+
+// We have the reentrant functions described in POSIX.
+
+// We provide priority scheduling for threads.
+
+// We support user-defined stack sizes.
+
+// We support user-defined stacks.
+
+// We support priority inheritence.
+
+// We support priority protection, though only for non-robust
+// mutexes.
+
+// We support priority inheritence for robust mutexes.
+
+// We do not support priority protection for robust mutexes.
+
+// We support POSIX.1b semaphores.
+
+// Real-time signals are supported.
+
+// We support asynchronous I/O.
+// Alternative name for Unix98.
+// Support for prioritization is also available.
+
+// The LFS support in asynchronous I/O is also available.
+
+// The rest of the LFS is also available.
+
+// POSIX shared memory objects are implemented.
+
+// CPU-time clocks support needs to be checked at runtime.
+
+// Clock support in threads must be also checked at runtime.
+
+// GNU libc provides regular expression handling.
+
+// Reader/Writer locks are available.
+
+// We have a POSIX shell.
+
+// We support the Timeouts option.
+
+// We support spinlocks.
+
+// The `spawn' function family is supported.
+
+// We have POSIX timers.
+
+// The barrier functions are available.
+
+// POSIX message queues are available.
+
+// Thread process-shared synchronization is supported.
+
+// The monotonic clock might be available.
+
+// The clock selection interfaces are available.
+
+// Advisory information interfaces are available.
+
+// IPv6 support is available.
+
+// Raw socket support is available.
+
+// We have at least one terminal.
+
+// Neither process nor thread sporadic server interfaces is available.
+
+// trace.h is not available.
+
+// Typed memory objects are not available.
+
+// Get the environment definitions from Unix98.
+// 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/>.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This header should define the following symbols under the described
+// situations. A value `1' means that the model is always supported,
+// `-1' means it is never supported. Undefined means it cannot be
+// statically decided.
+//
+// _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+// _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+//
+// _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+// _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+//
+// The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+// _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+// _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+// used in previous versions of the Unix standard and are available
+// only for compatibility.
+
+// We have 32-bit wide `int', `long int' and pointers and all platforms
+// support LFS. -mx32 has 64-bit wide `off_t'.
+
+// -m32 has 32-bit wide `off_t'.
+
+// We optionally provide an environment with the above size but an 64-bit
+// side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG.
+
+// Environments with 64-bit wide pointers can be provided,
+// so these macros aren't defined:
+// # undef _POSIX_V7_LP64_OFF64
+// # undef _POSIX_V7_LPBIG_OFFBIG
+// # undef _POSIX_V6_LP64_OFF64
+// # undef _POSIX_V6_LPBIG_OFFBIG
+// # undef _XBS5_LP64_OFF64
+// # undef _XBS5_LPBIG_OFFBIG
+// and sysconf tests for it at runtime.
+
+// Standard file descriptors.
+
+// All functions that are not declared anywhere else.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Ssize_t = X__ssize_t /* unistd.h:220:19 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* unistd.h:232:17 */
+
+type Uid_t = X__uid_t /* unistd.h:237:17 */
+
+type Off_t = X__off64_t /* unistd.h:245:19 */
+
+type Useconds_t = X__useconds_t /* unistd.h:255:22 */
+
+type Pid_t = X__pid_t /* unistd.h:260:17 */
+
+type Intptr_t = X__intptr_t /* unistd.h:267:20 */
+
+type Socklen_t = X__socklen_t /* unistd.h:274:21 */
+
+// Define some macros helping to catch buffer overflows.
+
+// System-specific extensions.
+// System-specific extensions of <unistd.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_linux_amd64.go b/vendor/modernc.org/libc/unistd/unistd_linux_amd64.go
new file mode 100644
index 00000000..b302d192
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_linux_amd64.go
@@ -0,0 +1,1589 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 2
+ X_OK = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX_OPT_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GETOPT_CORE_H = 1
+ X_GETOPT_POSIX_H = 1
+ X_LFS64_ASYNCHRONOUS_IO = 1
+ X_LFS64_LARGEFILE = 1
+ X_LFS64_STDIO = 1
+ X_LFS_ASYNCHRONOUS_IO = 1
+ X_LFS_LARGEFILE = 1
+ X_LP64 = 1
+ X_POSIX2_CHAR_TERM = 200809
+ X_POSIX2_C_BIND = 200809
+ X_POSIX2_C_DEV = 200809
+ X_POSIX2_C_VERSION = 200809
+ X_POSIX2_LOCALEDEF = 200809
+ X_POSIX2_SW_DEV = 200809
+ X_POSIX2_VERSION = 200809
+ X_POSIX_ADVISORY_INFO = 200809
+ X_POSIX_ASYNCHRONOUS_IO = 200809
+ X_POSIX_ASYNC_IO = 1
+ X_POSIX_BARRIERS = 200809
+ X_POSIX_CHOWN_RESTRICTED = 0
+ X_POSIX_CLOCK_SELECTION = 200809
+ X_POSIX_CPUTIME = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_FSYNC = 200809
+ X_POSIX_IPV6 = 200809
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200809
+ X_POSIX_MEMLOCK = 200809
+ X_POSIX_MEMLOCK_RANGE = 200809
+ X_POSIX_MEMORY_PROTECTION = 200809
+ X_POSIX_MESSAGE_PASSING = 200809
+ X_POSIX_MONOTONIC_CLOCK = 0
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = 200809
+ X_POSIX_PRIORITY_SCHEDULING = 200809
+ X_POSIX_RAW_SOCKETS = 200809
+ X_POSIX_READER_WRITER_LOCKS = 200809
+ X_POSIX_REALTIME_SIGNALS = 200809
+ X_POSIX_REENTRANT_FUNCTIONS = 1
+ X_POSIX_REGEXP = 1
+ X_POSIX_SAVED_IDS = 1
+ X_POSIX_SEMAPHORES = 200809
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200809
+ X_POSIX_SHELL = 1
+ X_POSIX_SOURCE = 1
+ X_POSIX_SPAWN = 200809
+ X_POSIX_SPIN_LOCKS = 200809
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = 200809
+ X_POSIX_THREADS = 200809
+ X_POSIX_THREAD_ATTR_STACKADDR = 200809
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200809
+ X_POSIX_THREAD_CPUTIME = 0
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200809
+ X_POSIX_THREAD_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_PRIO_PROTECT = 200809
+ X_POSIX_THREAD_PROCESS_SHARED = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200809
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200809
+ X_POSIX_TIMERS = 200809
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_LP64_OFF64 = 1
+ X_POSIX_V6_LPBIG_OFFBIG = -1
+ X_POSIX_V7_LP64_OFF64 = 1
+ X_POSIX_V7_LPBIG_OFFBIG = -1
+ X_POSIX_VDISABLE = 0
+ X_POSIX_VERSION = 200809
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UNISTD_H = 1
+ X_XBS5_LP64_OFF64 = 1
+ X_XBS5_LPBIG_OFFBIG = -1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = 1
+ X_XOPEN_REALTIME = 1
+ X_XOPEN_REALTIME_THREADS = 1
+ X_XOPEN_SHM = 1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 700
+ X_XOPEN_XCU_VERSION = 4
+ X_XOPEN_XPG2 = 1
+ X_XOPEN_XPG3 = 1
+ X_XOPEN_XPG4 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf';
+// the `_SC_*' symbols for the NAME argument to `sysconf';
+// and the `_CS_*' symbols for the NAME argument to `confstr'.
+// `sysconf', `pathconf', and `confstr' NAME values. Generic version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Values for the NAME argument to `pathconf' and `fpathconf'.
+const ( /* confname.h:24:1: */
+ X_PC_LINK_MAX = 0
+ X_PC_MAX_CANON = 1
+ X_PC_MAX_INPUT = 2
+ X_PC_NAME_MAX = 3
+ X_PC_PATH_MAX = 4
+ X_PC_PIPE_BUF = 5
+ X_PC_CHOWN_RESTRICTED = 6
+ X_PC_NO_TRUNC = 7
+ X_PC_VDISABLE = 8
+ X_PC_SYNC_IO = 9
+ X_PC_ASYNC_IO = 10
+ X_PC_PRIO_IO = 11
+ X_PC_SOCK_MAXBUF = 12
+ X_PC_FILESIZEBITS = 13
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_ALLOC_SIZE_MIN = 18
+ X_PC_SYMLINK_MAX = 19
+ X_PC_2_SYMLINKS = 20
+)
+
+// Values for the NAME argument to `confstr'.
+const ( /* confname.h:533:1: */
+ X_CS_PATH = 0 // The default search path.
+
+ X_CS_V6_WIDTH_RESTRICTED_ENVS = 1
+
+ X_CS_GNU_LIBC_VERSION = 2
+ X_CS_GNU_LIBPTHREAD_VERSION = 3
+
+ X_CS_V5_WIDTH_RESTRICTED_ENVS = 4
+
+ X_CS_V7_WIDTH_RESTRICTED_ENVS = 5
+
+ X_CS_LFS_CFLAGS = 1000
+ X_CS_LFS_LDFLAGS = 1001
+ X_CS_LFS_LIBS = 1002
+ X_CS_LFS_LINTFLAGS = 1003
+ X_CS_LFS64_CFLAGS = 1004
+ X_CS_LFS64_LDFLAGS = 1005
+ X_CS_LFS64_LIBS = 1006
+ X_CS_LFS64_LINTFLAGS = 1007
+
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 1100
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 1101
+ X_CS_XBS5_ILP32_OFF32_LIBS = 1102
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 1106
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 1108
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 1109
+ X_CS_XBS5_LP64_OFF64_LIBS = 1110
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 1111
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 1114
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115
+
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
+ X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
+ X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 1126
+ X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
+
+ X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
+ X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
+ X_CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
+ X_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
+ X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
+ X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
+ X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
+ X_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
+ X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
+ X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
+ X_CS_POSIX_V7_LP64_OFF64_LIBS = 1142
+ X_CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
+ X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
+
+ X_CS_V6_ENV = 1148
+ X_CS_V7_ENV = 1149
+)
+
+// Values for the argument to `sysconf'.
+const ( /* confname.h:71:1: */
+ X_SC_ARG_MAX = 0
+ X_SC_CHILD_MAX = 1
+ X_SC_CLK_TCK = 2
+ X_SC_NGROUPS_MAX = 3
+ X_SC_OPEN_MAX = 4
+ X_SC_STREAM_MAX = 5
+ X_SC_TZNAME_MAX = 6
+ X_SC_JOB_CONTROL = 7
+ X_SC_SAVED_IDS = 8
+ X_SC_REALTIME_SIGNALS = 9
+ X_SC_PRIORITY_SCHEDULING = 10
+ X_SC_TIMERS = 11
+ X_SC_ASYNCHRONOUS_IO = 12
+ X_SC_PRIORITIZED_IO = 13
+ X_SC_SYNCHRONIZED_IO = 14
+ X_SC_FSYNC = 15
+ X_SC_MAPPED_FILES = 16
+ X_SC_MEMLOCK = 17
+ X_SC_MEMLOCK_RANGE = 18
+ X_SC_MEMORY_PROTECTION = 19
+ X_SC_MESSAGE_PASSING = 20
+ X_SC_SEMAPHORES = 21
+ X_SC_SHARED_MEMORY_OBJECTS = 22
+ X_SC_AIO_LISTIO_MAX = 23
+ X_SC_AIO_MAX = 24
+ X_SC_AIO_PRIO_DELTA_MAX = 25
+ X_SC_DELAYTIMER_MAX = 26
+ X_SC_MQ_OPEN_MAX = 27
+ X_SC_MQ_PRIO_MAX = 28
+ X_SC_VERSION = 29
+ X_SC_PAGESIZE = 30
+ X_SC_RTSIG_MAX = 31
+ X_SC_SEM_NSEMS_MAX = 32
+ X_SC_SEM_VALUE_MAX = 33
+ X_SC_SIGQUEUE_MAX = 34
+ X_SC_TIMER_MAX = 35
+
+ // Values for the argument to `sysconf'
+ // corresponding to _POSIX2_* symbols.
+ X_SC_BC_BASE_MAX = 36
+ X_SC_BC_DIM_MAX = 37
+ X_SC_BC_SCALE_MAX = 38
+ X_SC_BC_STRING_MAX = 39
+ X_SC_COLL_WEIGHTS_MAX = 40
+ X_SC_EQUIV_CLASS_MAX = 41
+ X_SC_EXPR_NEST_MAX = 42
+ X_SC_LINE_MAX = 43
+ X_SC_RE_DUP_MAX = 44
+ X_SC_CHARCLASS_NAME_MAX = 45
+
+ X_SC_2_VERSION = 46
+ X_SC_2_C_BIND = 47
+ X_SC_2_C_DEV = 48
+ X_SC_2_FORT_DEV = 49
+ X_SC_2_FORT_RUN = 50
+ X_SC_2_SW_DEV = 51
+ X_SC_2_LOCALEDEF = 52
+
+ X_SC_PII = 53
+ X_SC_PII_XTI = 54
+ X_SC_PII_SOCKET = 55
+ X_SC_PII_INTERNET = 56
+ X_SC_PII_OSI = 57
+ X_SC_POLL = 58
+ X_SC_SELECT = 59
+ X_SC_UIO_MAXIOV = 60
+ X_SC_IOV_MAX = 60
+ X_SC_PII_INTERNET_STREAM = 61
+ X_SC_PII_INTERNET_DGRAM = 62
+ X_SC_PII_OSI_COTS = 63
+ X_SC_PII_OSI_CLTS = 64
+ X_SC_PII_OSI_M = 65
+ X_SC_T_IOV_MAX = 66
+
+ // Values according to POSIX 1003.1c (POSIX threads).
+ X_SC_THREADS = 67
+ X_SC_THREAD_SAFE_FUNCTIONS = 68
+ X_SC_GETGR_R_SIZE_MAX = 69
+ X_SC_GETPW_R_SIZE_MAX = 70
+ X_SC_LOGIN_NAME_MAX = 71
+ X_SC_TTY_NAME_MAX = 72
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 73
+ X_SC_THREAD_KEYS_MAX = 74
+ X_SC_THREAD_STACK_MIN = 75
+ X_SC_THREAD_THREADS_MAX = 76
+ X_SC_THREAD_ATTR_STACKADDR = 77
+ X_SC_THREAD_ATTR_STACKSIZE = 78
+ X_SC_THREAD_PRIORITY_SCHEDULING = 79
+ X_SC_THREAD_PRIO_INHERIT = 80
+ X_SC_THREAD_PRIO_PROTECT = 81
+ X_SC_THREAD_PROCESS_SHARED = 82
+
+ X_SC_NPROCESSORS_CONF = 83
+ X_SC_NPROCESSORS_ONLN = 84
+ X_SC_PHYS_PAGES = 85
+ X_SC_AVPHYS_PAGES = 86
+ X_SC_ATEXIT_MAX = 87
+ X_SC_PASS_MAX = 88
+
+ X_SC_XOPEN_VERSION = 89
+ X_SC_XOPEN_XCU_VERSION = 90
+ X_SC_XOPEN_UNIX = 91
+ X_SC_XOPEN_CRYPT = 92
+ X_SC_XOPEN_ENH_I18N = 93
+ X_SC_XOPEN_SHM = 94
+
+ X_SC_2_CHAR_TERM = 95
+ X_SC_2_C_VERSION = 96
+ X_SC_2_UPE = 97
+
+ X_SC_XOPEN_XPG2 = 98
+ X_SC_XOPEN_XPG3 = 99
+ X_SC_XOPEN_XPG4 = 100
+
+ X_SC_CHAR_BIT = 101
+ X_SC_CHAR_MAX = 102
+ X_SC_CHAR_MIN = 103
+ X_SC_INT_MAX = 104
+ X_SC_INT_MIN = 105
+ X_SC_LONG_BIT = 106
+ X_SC_WORD_BIT = 107
+ X_SC_MB_LEN_MAX = 108
+ X_SC_NZERO = 109
+ X_SC_SSIZE_MAX = 110
+ X_SC_SCHAR_MAX = 111
+ X_SC_SCHAR_MIN = 112
+ X_SC_SHRT_MAX = 113
+ X_SC_SHRT_MIN = 114
+ X_SC_UCHAR_MAX = 115
+ X_SC_UINT_MAX = 116
+ X_SC_ULONG_MAX = 117
+ X_SC_USHRT_MAX = 118
+
+ X_SC_NL_ARGMAX = 119
+ X_SC_NL_LANGMAX = 120
+ X_SC_NL_MSGMAX = 121
+ X_SC_NL_NMAX = 122
+ X_SC_NL_SETMAX = 123
+ X_SC_NL_TEXTMAX = 124
+
+ X_SC_XBS5_ILP32_OFF32 = 125
+ X_SC_XBS5_ILP32_OFFBIG = 126
+ X_SC_XBS5_LP64_OFF64 = 127
+ X_SC_XBS5_LPBIG_OFFBIG = 128
+
+ X_SC_XOPEN_LEGACY = 129
+ X_SC_XOPEN_REALTIME = 130
+ X_SC_XOPEN_REALTIME_THREADS = 131
+
+ X_SC_ADVISORY_INFO = 132
+ X_SC_BARRIERS = 133
+ X_SC_BASE = 134
+ X_SC_C_LANG_SUPPORT = 135
+ X_SC_C_LANG_SUPPORT_R = 136
+ X_SC_CLOCK_SELECTION = 137
+ X_SC_CPUTIME = 138
+ X_SC_THREAD_CPUTIME = 139
+ X_SC_DEVICE_IO = 140
+ X_SC_DEVICE_SPECIFIC = 141
+ X_SC_DEVICE_SPECIFIC_R = 142
+ X_SC_FD_MGMT = 143
+ X_SC_FIFO = 144
+ X_SC_PIPE = 145
+ X_SC_FILE_ATTRIBUTES = 146
+ X_SC_FILE_LOCKING = 147
+ X_SC_FILE_SYSTEM = 148
+ X_SC_MONOTONIC_CLOCK = 149
+ X_SC_MULTI_PROCESS = 150
+ X_SC_SINGLE_PROCESS = 151
+ X_SC_NETWORKING = 152
+ X_SC_READER_WRITER_LOCKS = 153
+ X_SC_SPIN_LOCKS = 154
+ X_SC_REGEXP = 155
+ X_SC_REGEX_VERSION = 156
+ X_SC_SHELL = 157
+ X_SC_SIGNALS = 158
+ X_SC_SPAWN = 159
+ X_SC_SPORADIC_SERVER = 160
+ X_SC_THREAD_SPORADIC_SERVER = 161
+ X_SC_SYSTEM_DATABASE = 162
+ X_SC_SYSTEM_DATABASE_R = 163
+ X_SC_TIMEOUTS = 164
+ X_SC_TYPED_MEMORY_OBJECTS = 165
+ X_SC_USER_GROUPS = 166
+ X_SC_USER_GROUPS_R = 167
+ X_SC_2_PBS = 168
+ X_SC_2_PBS_ACCOUNTING = 169
+ X_SC_2_PBS_LOCATE = 170
+ X_SC_2_PBS_MESSAGE = 171
+ X_SC_2_PBS_TRACK = 172
+ X_SC_SYMLOOP_MAX = 173
+ X_SC_STREAMS = 174
+ X_SC_2_PBS_CHECKPOINT = 175
+
+ X_SC_V6_ILP32_OFF32 = 176
+ X_SC_V6_ILP32_OFFBIG = 177
+ X_SC_V6_LP64_OFF64 = 178
+ X_SC_V6_LPBIG_OFFBIG = 179
+
+ X_SC_HOST_NAME_MAX = 180
+ X_SC_TRACE = 181
+ X_SC_TRACE_EVENT_FILTER = 182
+ X_SC_TRACE_INHERIT = 183
+ X_SC_TRACE_LOG = 184
+
+ X_SC_LEVEL1_ICACHE_SIZE = 185
+ X_SC_LEVEL1_ICACHE_ASSOC = 186
+ X_SC_LEVEL1_ICACHE_LINESIZE = 187
+ X_SC_LEVEL1_DCACHE_SIZE = 188
+ X_SC_LEVEL1_DCACHE_ASSOC = 189
+ X_SC_LEVEL1_DCACHE_LINESIZE = 190
+ X_SC_LEVEL2_CACHE_SIZE = 191
+ X_SC_LEVEL2_CACHE_ASSOC = 192
+ X_SC_LEVEL2_CACHE_LINESIZE = 193
+ X_SC_LEVEL3_CACHE_SIZE = 194
+ X_SC_LEVEL3_CACHE_ASSOC = 195
+ X_SC_LEVEL3_CACHE_LINESIZE = 196
+ X_SC_LEVEL4_CACHE_SIZE = 197
+ X_SC_LEVEL4_CACHE_ASSOC = 198
+ X_SC_LEVEL4_CACHE_LINESIZE = 199
+ // Leave room here, maybe we need a few more cache levels some day.
+
+ X_SC_IPV6 = 235
+ X_SC_RAW_SOCKETS = 236
+
+ X_SC_V7_ILP32_OFF32 = 237
+ X_SC_V7_ILP32_OFFBIG = 238
+ X_SC_V7_LP64_OFF64 = 239
+ X_SC_V7_LPBIG_OFFBIG = 240
+
+ X_SC_SS_REPL_MAX = 241
+
+ X_SC_TRACE_EVENT_NAME_MAX = 242
+ X_SC_TRACE_NAME_MAX = 243
+ X_SC_TRACE_SYS_MAX = 244
+ X_SC_TRACE_USER_EVENT_MAX = 245
+
+ X_SC_XOPEN_STREAMS = 246
+
+ X_SC_THREAD_ROBUST_PRIO_INHERIT = 247
+ X_SC_THREAD_ROBUST_PRIO_PROTECT = 248
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.10 Symbolic Constants <unistd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// These may be used to determine what facilities are present at compile time.
+// Their values can be obtained at run time from `sysconf'.
+
+// POSIX Standard approved as ISO/IEC 9945-1 as of September 2008.
+
+// These are not #ifdef __USE_POSIX2 because they are
+// in the theoretically application-owned namespace.
+
+// The utilities on GNU systems also correspond to this version.
+
+// The utilities on GNU systems also correspond to this version.
+
+// This symbol was required until the 2001 edition of POSIX.
+
+// If defined, the implementation supports the
+// C Language Bindings Option.
+
+// If defined, the implementation supports the
+// C Language Development Utilities Option.
+
+// If defined, the implementation supports the
+// Software Development Utilities Option.
+
+// If defined, the implementation supports the
+// creation of locales with the localedef utility.
+
+// X/Open version number to which the library conforms. It is selectable.
+
+// Commands and utilities from XPG4 are available.
+
+// We are compatible with the old published standards as well.
+
+// The X/Open Unix extensions are available.
+
+// The enhanced internationalization capabilities according to XPG4.2
+// are present.
+
+// The legacy interfaces are also available.
+
+// Get values of POSIX options:
+//
+// If these symbols are defined, the corresponding features are
+// always available. If not, they may be available sometimes.
+// The current values can be obtained with `sysconf'.
+//
+// _POSIX_JOB_CONTROL Job control is supported.
+// _POSIX_SAVED_IDS Processes have a saved set-user-ID
+// and a saved set-group-ID.
+// _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported.
+// _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported.
+// _POSIX_TIMERS POSIX.4 clocks and timers are supported.
+// _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported.
+// _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported.
+// _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported.
+// _POSIX_FSYNC The fsync function is present.
+// _POSIX_MAPPED_FILES Mapping of files to memory is supported.
+// _POSIX_MEMLOCK Locking of all memory is supported.
+// _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported.
+// _POSIX_MEMORY_PROTECTION Setting of memory protections is supported.
+// _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported.
+// _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported.
+// _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported.
+// _POSIX_THREADS POSIX.1c pthreads are supported.
+// _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported.
+// _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported.
+// _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported.
+// _POSIX_THREAD_PRIORITY_SCHEDULING
+// POSIX.1c thread execution scheduling supported.
+// _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported.
+// _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported.
+// _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported.
+// _POSIX_PII Protocol-independent interfaces are supported.
+// _POSIX_PII_XTI XTI protocol-indep. interfaces are supported.
+// _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported.
+// _POSIX_PII_INTERNET Internet family of protocols supported.
+// _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported.
+// _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported.
+// _POSIX_PII_OSI ISO/OSI family of protocols supported.
+// _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported.
+// _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported.
+// _POSIX_POLL Implementation supports `poll' function.
+// _POSIX_SELECT Implementation supports `select' and `pselect'.
+//
+// _XOPEN_REALTIME X/Open realtime support is available.
+// _XOPEN_REALTIME_THREADS X/Open realtime thread support is available.
+// _XOPEN_SHM Shared memory interface according to XPG4.2.
+//
+// _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit
+// int, long, pointer, and off_t types.
+// _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit
+// int, long, and pointer and off_t with at least
+// 64 bits.
+// _XBS5_LP64_OFF64 Implementation provides environment with 32-bit
+// int, and 64-bit long, pointer, and off_t types.
+// _XBS5_LPBIG_OFFBIG Implementation provides environment with at
+// least 32 bits int and long, pointer, and off_t
+// with at least 64 bits.
+//
+// If any of these symbols is defined as -1, the corresponding option is not
+// true for any file. If any is defined as other than -1, the corresponding
+// option is true for all files. If a symbol is not defined at all, the value
+// for a specific file can be obtained from `pathconf' and `fpathconf'.
+//
+// _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change
+// the owner of a file. `chown' can only be used
+// to change the group ID of a file to a group of
+// which the calling process is a member.
+// _POSIX_NO_TRUNC Pathname components longer than
+// NAME_MAX generate an error.
+// _POSIX_VDISABLE If defined, if the value of an element of the
+// `c_cc' member of `struct termios' is
+// _POSIX_VDISABLE, no character will have the
+// effect associated with that element.
+// _POSIX_SYNC_IO Synchronous I/O may be performed.
+// _POSIX_ASYNC_IO Asynchronous I/O may be performed.
+// _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed.
+//
+// Support for the Large File Support interface is not generally available.
+// If it is available the following constants are defined to one.
+// _LFS64_LARGEFILE Low-level I/O supports large files.
+// _LFS64_STDIO Standard I/O supports large files.
+//
+
+// Define POSIX options for Linux.
+// 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
+// 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// Job control is supported.
+
+// Processes have a saved set-user-ID and a saved set-group-ID.
+
+// Priority scheduling is not supported with the correct semantics,
+// but GNU/Linux applications expect that the corresponding interfaces
+// are available, even though the semantics do not meet the POSIX
+// requirements. See glibc bug 14829.
+
+// Synchronizing file data is supported.
+
+// The fsync function is present.
+
+// Mapping of files to memory is supported.
+
+// Locking of all memory is supported.
+
+// Locking of ranges of memory is supported.
+
+// Setting of memory protections is supported.
+
+// Some filesystems allow all users to change file ownership.
+
+// `c_cc' member of 'struct termios' structure can be disabled by
+// using the value _POSIX_VDISABLE.
+
+// Filenames are not silently truncated.
+
+// X/Open realtime support is available.
+
+// X/Open thread realtime support is available.
+
+// XPG4.2 shared memory is supported.
+
+// Tell we have POSIX threads.
+
+// We have the reentrant functions described in POSIX.
+
+// We provide priority scheduling for threads.
+
+// We support user-defined stack sizes.
+
+// We support user-defined stacks.
+
+// We support priority inheritence.
+
+// We support priority protection, though only for non-robust
+// mutexes.
+
+// We support priority inheritence for robust mutexes.
+
+// We do not support priority protection for robust mutexes.
+
+// We support POSIX.1b semaphores.
+
+// Real-time signals are supported.
+
+// We support asynchronous I/O.
+// Alternative name for Unix98.
+// Support for prioritization is also available.
+
+// The LFS support in asynchronous I/O is also available.
+
+// The rest of the LFS is also available.
+
+// POSIX shared memory objects are implemented.
+
+// CPU-time clocks support needs to be checked at runtime.
+
+// Clock support in threads must be also checked at runtime.
+
+// GNU libc provides regular expression handling.
+
+// Reader/Writer locks are available.
+
+// We have a POSIX shell.
+
+// We support the Timeouts option.
+
+// We support spinlocks.
+
+// The `spawn' function family is supported.
+
+// We have POSIX timers.
+
+// The barrier functions are available.
+
+// POSIX message queues are available.
+
+// Thread process-shared synchronization is supported.
+
+// The monotonic clock might be available.
+
+// The clock selection interfaces are available.
+
+// Advisory information interfaces are available.
+
+// IPv6 support is available.
+
+// Raw socket support is available.
+
+// We have at least one terminal.
+
+// Neither process nor thread sporadic server interfaces is available.
+
+// trace.h is not available.
+
+// Typed memory objects are not available.
+
+// Get the environment definitions from Unix98.
+// 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/>.
+
+// Determine the wordsize from the preprocessor defines.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
+
+// This header should define the following symbols under the described
+// situations. A value `1' means that the model is always supported,
+// `-1' means it is never supported. Undefined means it cannot be
+// statically decided.
+//
+// _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+// _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+//
+// _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+// _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+//
+// The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+// _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+// _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+// used in previous versions of the Unix standard and are available
+// only for compatibility.
+
+// Environments with 32-bit wide pointers are optionally provided.
+// Therefore following macros aren't defined:
+// # undef _POSIX_V7_ILP32_OFF32
+// # undef _POSIX_V7_ILP32_OFFBIG
+// # undef _POSIX_V6_ILP32_OFF32
+// # undef _POSIX_V6_ILP32_OFFBIG
+// # undef _XBS5_ILP32_OFF32
+// # undef _XBS5_ILP32_OFFBIG
+// and users need to check at runtime.
+
+// We also have no use (for now) for an environment with bigger pointers
+// and offsets.
+
+// By default we have 64-bit wide `long int', pointers and `off_t'.
+
+// Standard file descriptors.
+
+// All functions that are not declared anywhere else.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Ssize_t = X__ssize_t /* unistd.h:220:19 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* unistd.h:232:17 */
+
+type Uid_t = X__uid_t /* unistd.h:237:17 */
+
+type Off_t = X__off64_t /* unistd.h:245:19 */
+
+type Useconds_t = X__useconds_t /* unistd.h:255:22 */
+
+type Pid_t = X__pid_t /* unistd.h:260:17 */
+
+type Intptr_t = X__intptr_t /* unistd.h:267:20 */
+
+type Socklen_t = X__socklen_t /* unistd.h:274:21 */
+
+// Define some macros helping to catch buffer overflows.
+
+// System-specific extensions.
+// System-specific extensions of <unistd.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_linux_arm.go b/vendor/modernc.org/libc/unistd/unistd_linux_arm.go
new file mode 100644
index 00000000..c9ad971b
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_linux_arm.go
@@ -0,0 +1,1644 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_arm.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 2
+ X_OK = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX_OPT_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GETOPT_CORE_H = 1
+ X_GETOPT_POSIX_H = 1
+ X_LFS64_ASYNCHRONOUS_IO = 1
+ X_LFS64_LARGEFILE = 1
+ X_LFS64_STDIO = 1
+ X_LFS_ASYNCHRONOUS_IO = 1
+ X_LFS_LARGEFILE = 1
+ X_POSIX2_CHAR_TERM = 200809
+ X_POSIX2_C_BIND = 200809
+ X_POSIX2_C_DEV = 200809
+ X_POSIX2_C_VERSION = 200809
+ X_POSIX2_LOCALEDEF = 200809
+ X_POSIX2_SW_DEV = 200809
+ X_POSIX2_VERSION = 200809
+ X_POSIX_ADVISORY_INFO = 200809
+ X_POSIX_ASYNCHRONOUS_IO = 200809
+ X_POSIX_ASYNC_IO = 1
+ X_POSIX_BARRIERS = 200809
+ X_POSIX_CHOWN_RESTRICTED = 0
+ X_POSIX_CLOCK_SELECTION = 200809
+ X_POSIX_CPUTIME = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_FSYNC = 200809
+ X_POSIX_IPV6 = 200809
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200809
+ X_POSIX_MEMLOCK = 200809
+ X_POSIX_MEMLOCK_RANGE = 200809
+ X_POSIX_MEMORY_PROTECTION = 200809
+ X_POSIX_MESSAGE_PASSING = 200809
+ X_POSIX_MONOTONIC_CLOCK = 0
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = 200809
+ X_POSIX_PRIORITY_SCHEDULING = 200809
+ X_POSIX_RAW_SOCKETS = 200809
+ X_POSIX_READER_WRITER_LOCKS = 200809
+ X_POSIX_REALTIME_SIGNALS = 200809
+ X_POSIX_REENTRANT_FUNCTIONS = 1
+ X_POSIX_REGEXP = 1
+ X_POSIX_SAVED_IDS = 1
+ X_POSIX_SEMAPHORES = 200809
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200809
+ X_POSIX_SHELL = 1
+ X_POSIX_SOURCE = 1
+ X_POSIX_SPAWN = 200809
+ X_POSIX_SPIN_LOCKS = 200809
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = 200809
+ X_POSIX_THREADS = 200809
+ X_POSIX_THREAD_ATTR_STACKADDR = 200809
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200809
+ X_POSIX_THREAD_CPUTIME = 0
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200809
+ X_POSIX_THREAD_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_PRIO_PROTECT = 200809
+ X_POSIX_THREAD_PROCESS_SHARED = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200809
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200809
+ X_POSIX_TIMERS = 200809
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = 1
+ X_POSIX_V6_ILP32_OFFBIG = 1
+ X_POSIX_V6_LP64_OFF64 = -1
+ X_POSIX_V6_LPBIG_OFFBIG = -1
+ X_POSIX_V7_ILP32_OFF32 = 1
+ X_POSIX_V7_ILP32_OFFBIG = 1
+ X_POSIX_V7_LP64_OFF64 = -1
+ X_POSIX_V7_LPBIG_OFFBIG = -1
+ X_POSIX_VDISABLE = 0
+ X_POSIX_VERSION = 200809
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UNISTD_H = 1
+ X_XBS5_ILP32_OFF32 = 1
+ X_XBS5_ILP32_OFFBIG = 1
+ X_XBS5_LP64_OFF64 = -1
+ X_XBS5_LPBIG_OFFBIG = -1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = 1
+ X_XOPEN_REALTIME = 1
+ X_XOPEN_REALTIME_THREADS = 1
+ X_XOPEN_SHM = 1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 700
+ X_XOPEN_XCU_VERSION = 4
+ X_XOPEN_XPG2 = 1
+ X_XOPEN_XPG3 = 1
+ X_XOPEN_XPG4 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf';
+// the `_SC_*' symbols for the NAME argument to `sysconf';
+// and the `_CS_*' symbols for the NAME argument to `confstr'.
+// `sysconf', `pathconf', and `confstr' NAME values. Generic version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Values for the NAME argument to `pathconf' and `fpathconf'.
+const ( /* confname.h:24:1: */
+ X_PC_LINK_MAX = 0
+ X_PC_MAX_CANON = 1
+ X_PC_MAX_INPUT = 2
+ X_PC_NAME_MAX = 3
+ X_PC_PATH_MAX = 4
+ X_PC_PIPE_BUF = 5
+ X_PC_CHOWN_RESTRICTED = 6
+ X_PC_NO_TRUNC = 7
+ X_PC_VDISABLE = 8
+ X_PC_SYNC_IO = 9
+ X_PC_ASYNC_IO = 10
+ X_PC_PRIO_IO = 11
+ X_PC_SOCK_MAXBUF = 12
+ X_PC_FILESIZEBITS = 13
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_ALLOC_SIZE_MIN = 18
+ X_PC_SYMLINK_MAX = 19
+ X_PC_2_SYMLINKS = 20
+)
+
+// Values for the NAME argument to `confstr'.
+const ( /* confname.h:533:1: */
+ X_CS_PATH = 0 // The default search path.
+
+ X_CS_V6_WIDTH_RESTRICTED_ENVS = 1
+
+ X_CS_GNU_LIBC_VERSION = 2
+ X_CS_GNU_LIBPTHREAD_VERSION = 3
+
+ X_CS_V5_WIDTH_RESTRICTED_ENVS = 4
+
+ X_CS_V7_WIDTH_RESTRICTED_ENVS = 5
+
+ X_CS_LFS_CFLAGS = 1000
+ X_CS_LFS_LDFLAGS = 1001
+ X_CS_LFS_LIBS = 1002
+ X_CS_LFS_LINTFLAGS = 1003
+ X_CS_LFS64_CFLAGS = 1004
+ X_CS_LFS64_LDFLAGS = 1005
+ X_CS_LFS64_LIBS = 1006
+ X_CS_LFS64_LINTFLAGS = 1007
+
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 1100
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 1101
+ X_CS_XBS5_ILP32_OFF32_LIBS = 1102
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 1106
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 1108
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 1109
+ X_CS_XBS5_LP64_OFF64_LIBS = 1110
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 1111
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 1114
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115
+
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
+ X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
+ X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 1126
+ X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
+
+ X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
+ X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
+ X_CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
+ X_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
+ X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
+ X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
+ X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
+ X_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
+ X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
+ X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
+ X_CS_POSIX_V7_LP64_OFF64_LIBS = 1142
+ X_CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
+ X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
+
+ X_CS_V6_ENV = 1148
+ X_CS_V7_ENV = 1149
+)
+
+// Values for the argument to `sysconf'.
+const ( /* confname.h:71:1: */
+ X_SC_ARG_MAX = 0
+ X_SC_CHILD_MAX = 1
+ X_SC_CLK_TCK = 2
+ X_SC_NGROUPS_MAX = 3
+ X_SC_OPEN_MAX = 4
+ X_SC_STREAM_MAX = 5
+ X_SC_TZNAME_MAX = 6
+ X_SC_JOB_CONTROL = 7
+ X_SC_SAVED_IDS = 8
+ X_SC_REALTIME_SIGNALS = 9
+ X_SC_PRIORITY_SCHEDULING = 10
+ X_SC_TIMERS = 11
+ X_SC_ASYNCHRONOUS_IO = 12
+ X_SC_PRIORITIZED_IO = 13
+ X_SC_SYNCHRONIZED_IO = 14
+ X_SC_FSYNC = 15
+ X_SC_MAPPED_FILES = 16
+ X_SC_MEMLOCK = 17
+ X_SC_MEMLOCK_RANGE = 18
+ X_SC_MEMORY_PROTECTION = 19
+ X_SC_MESSAGE_PASSING = 20
+ X_SC_SEMAPHORES = 21
+ X_SC_SHARED_MEMORY_OBJECTS = 22
+ X_SC_AIO_LISTIO_MAX = 23
+ X_SC_AIO_MAX = 24
+ X_SC_AIO_PRIO_DELTA_MAX = 25
+ X_SC_DELAYTIMER_MAX = 26
+ X_SC_MQ_OPEN_MAX = 27
+ X_SC_MQ_PRIO_MAX = 28
+ X_SC_VERSION = 29
+ X_SC_PAGESIZE = 30
+ X_SC_RTSIG_MAX = 31
+ X_SC_SEM_NSEMS_MAX = 32
+ X_SC_SEM_VALUE_MAX = 33
+ X_SC_SIGQUEUE_MAX = 34
+ X_SC_TIMER_MAX = 35
+
+ // Values for the argument to `sysconf'
+ // corresponding to _POSIX2_* symbols.
+ X_SC_BC_BASE_MAX = 36
+ X_SC_BC_DIM_MAX = 37
+ X_SC_BC_SCALE_MAX = 38
+ X_SC_BC_STRING_MAX = 39
+ X_SC_COLL_WEIGHTS_MAX = 40
+ X_SC_EQUIV_CLASS_MAX = 41
+ X_SC_EXPR_NEST_MAX = 42
+ X_SC_LINE_MAX = 43
+ X_SC_RE_DUP_MAX = 44
+ X_SC_CHARCLASS_NAME_MAX = 45
+
+ X_SC_2_VERSION = 46
+ X_SC_2_C_BIND = 47
+ X_SC_2_C_DEV = 48
+ X_SC_2_FORT_DEV = 49
+ X_SC_2_FORT_RUN = 50
+ X_SC_2_SW_DEV = 51
+ X_SC_2_LOCALEDEF = 52
+
+ X_SC_PII = 53
+ X_SC_PII_XTI = 54
+ X_SC_PII_SOCKET = 55
+ X_SC_PII_INTERNET = 56
+ X_SC_PII_OSI = 57
+ X_SC_POLL = 58
+ X_SC_SELECT = 59
+ X_SC_UIO_MAXIOV = 60
+ X_SC_IOV_MAX = 60
+ X_SC_PII_INTERNET_STREAM = 61
+ X_SC_PII_INTERNET_DGRAM = 62
+ X_SC_PII_OSI_COTS = 63
+ X_SC_PII_OSI_CLTS = 64
+ X_SC_PII_OSI_M = 65
+ X_SC_T_IOV_MAX = 66
+
+ // Values according to POSIX 1003.1c (POSIX threads).
+ X_SC_THREADS = 67
+ X_SC_THREAD_SAFE_FUNCTIONS = 68
+ X_SC_GETGR_R_SIZE_MAX = 69
+ X_SC_GETPW_R_SIZE_MAX = 70
+ X_SC_LOGIN_NAME_MAX = 71
+ X_SC_TTY_NAME_MAX = 72
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 73
+ X_SC_THREAD_KEYS_MAX = 74
+ X_SC_THREAD_STACK_MIN = 75
+ X_SC_THREAD_THREADS_MAX = 76
+ X_SC_THREAD_ATTR_STACKADDR = 77
+ X_SC_THREAD_ATTR_STACKSIZE = 78
+ X_SC_THREAD_PRIORITY_SCHEDULING = 79
+ X_SC_THREAD_PRIO_INHERIT = 80
+ X_SC_THREAD_PRIO_PROTECT = 81
+ X_SC_THREAD_PROCESS_SHARED = 82
+
+ X_SC_NPROCESSORS_CONF = 83
+ X_SC_NPROCESSORS_ONLN = 84
+ X_SC_PHYS_PAGES = 85
+ X_SC_AVPHYS_PAGES = 86
+ X_SC_ATEXIT_MAX = 87
+ X_SC_PASS_MAX = 88
+
+ X_SC_XOPEN_VERSION = 89
+ X_SC_XOPEN_XCU_VERSION = 90
+ X_SC_XOPEN_UNIX = 91
+ X_SC_XOPEN_CRYPT = 92
+ X_SC_XOPEN_ENH_I18N = 93
+ X_SC_XOPEN_SHM = 94
+
+ X_SC_2_CHAR_TERM = 95
+ X_SC_2_C_VERSION = 96
+ X_SC_2_UPE = 97
+
+ X_SC_XOPEN_XPG2 = 98
+ X_SC_XOPEN_XPG3 = 99
+ X_SC_XOPEN_XPG4 = 100
+
+ X_SC_CHAR_BIT = 101
+ X_SC_CHAR_MAX = 102
+ X_SC_CHAR_MIN = 103
+ X_SC_INT_MAX = 104
+ X_SC_INT_MIN = 105
+ X_SC_LONG_BIT = 106
+ X_SC_WORD_BIT = 107
+ X_SC_MB_LEN_MAX = 108
+ X_SC_NZERO = 109
+ X_SC_SSIZE_MAX = 110
+ X_SC_SCHAR_MAX = 111
+ X_SC_SCHAR_MIN = 112
+ X_SC_SHRT_MAX = 113
+ X_SC_SHRT_MIN = 114
+ X_SC_UCHAR_MAX = 115
+ X_SC_UINT_MAX = 116
+ X_SC_ULONG_MAX = 117
+ X_SC_USHRT_MAX = 118
+
+ X_SC_NL_ARGMAX = 119
+ X_SC_NL_LANGMAX = 120
+ X_SC_NL_MSGMAX = 121
+ X_SC_NL_NMAX = 122
+ X_SC_NL_SETMAX = 123
+ X_SC_NL_TEXTMAX = 124
+
+ X_SC_XBS5_ILP32_OFF32 = 125
+ X_SC_XBS5_ILP32_OFFBIG = 126
+ X_SC_XBS5_LP64_OFF64 = 127
+ X_SC_XBS5_LPBIG_OFFBIG = 128
+
+ X_SC_XOPEN_LEGACY = 129
+ X_SC_XOPEN_REALTIME = 130
+ X_SC_XOPEN_REALTIME_THREADS = 131
+
+ X_SC_ADVISORY_INFO = 132
+ X_SC_BARRIERS = 133
+ X_SC_BASE = 134
+ X_SC_C_LANG_SUPPORT = 135
+ X_SC_C_LANG_SUPPORT_R = 136
+ X_SC_CLOCK_SELECTION = 137
+ X_SC_CPUTIME = 138
+ X_SC_THREAD_CPUTIME = 139
+ X_SC_DEVICE_IO = 140
+ X_SC_DEVICE_SPECIFIC = 141
+ X_SC_DEVICE_SPECIFIC_R = 142
+ X_SC_FD_MGMT = 143
+ X_SC_FIFO = 144
+ X_SC_PIPE = 145
+ X_SC_FILE_ATTRIBUTES = 146
+ X_SC_FILE_LOCKING = 147
+ X_SC_FILE_SYSTEM = 148
+ X_SC_MONOTONIC_CLOCK = 149
+ X_SC_MULTI_PROCESS = 150
+ X_SC_SINGLE_PROCESS = 151
+ X_SC_NETWORKING = 152
+ X_SC_READER_WRITER_LOCKS = 153
+ X_SC_SPIN_LOCKS = 154
+ X_SC_REGEXP = 155
+ X_SC_REGEX_VERSION = 156
+ X_SC_SHELL = 157
+ X_SC_SIGNALS = 158
+ X_SC_SPAWN = 159
+ X_SC_SPORADIC_SERVER = 160
+ X_SC_THREAD_SPORADIC_SERVER = 161
+ X_SC_SYSTEM_DATABASE = 162
+ X_SC_SYSTEM_DATABASE_R = 163
+ X_SC_TIMEOUTS = 164
+ X_SC_TYPED_MEMORY_OBJECTS = 165
+ X_SC_USER_GROUPS = 166
+ X_SC_USER_GROUPS_R = 167
+ X_SC_2_PBS = 168
+ X_SC_2_PBS_ACCOUNTING = 169
+ X_SC_2_PBS_LOCATE = 170
+ X_SC_2_PBS_MESSAGE = 171
+ X_SC_2_PBS_TRACK = 172
+ X_SC_SYMLOOP_MAX = 173
+ X_SC_STREAMS = 174
+ X_SC_2_PBS_CHECKPOINT = 175
+
+ X_SC_V6_ILP32_OFF32 = 176
+ X_SC_V6_ILP32_OFFBIG = 177
+ X_SC_V6_LP64_OFF64 = 178
+ X_SC_V6_LPBIG_OFFBIG = 179
+
+ X_SC_HOST_NAME_MAX = 180
+ X_SC_TRACE = 181
+ X_SC_TRACE_EVENT_FILTER = 182
+ X_SC_TRACE_INHERIT = 183
+ X_SC_TRACE_LOG = 184
+
+ X_SC_LEVEL1_ICACHE_SIZE = 185
+ X_SC_LEVEL1_ICACHE_ASSOC = 186
+ X_SC_LEVEL1_ICACHE_LINESIZE = 187
+ X_SC_LEVEL1_DCACHE_SIZE = 188
+ X_SC_LEVEL1_DCACHE_ASSOC = 189
+ X_SC_LEVEL1_DCACHE_LINESIZE = 190
+ X_SC_LEVEL2_CACHE_SIZE = 191
+ X_SC_LEVEL2_CACHE_ASSOC = 192
+ X_SC_LEVEL2_CACHE_LINESIZE = 193
+ X_SC_LEVEL3_CACHE_SIZE = 194
+ X_SC_LEVEL3_CACHE_ASSOC = 195
+ X_SC_LEVEL3_CACHE_LINESIZE = 196
+ X_SC_LEVEL4_CACHE_SIZE = 197
+ X_SC_LEVEL4_CACHE_ASSOC = 198
+ X_SC_LEVEL4_CACHE_LINESIZE = 199
+ // Leave room here, maybe we need a few more cache levels some day.
+
+ X_SC_IPV6 = 235
+ X_SC_RAW_SOCKETS = 236
+
+ X_SC_V7_ILP32_OFF32 = 237
+ X_SC_V7_ILP32_OFFBIG = 238
+ X_SC_V7_LP64_OFF64 = 239
+ X_SC_V7_LPBIG_OFFBIG = 240
+
+ X_SC_SS_REPL_MAX = 241
+
+ X_SC_TRACE_EVENT_NAME_MAX = 242
+ X_SC_TRACE_NAME_MAX = 243
+ X_SC_TRACE_SYS_MAX = 244
+ X_SC_TRACE_USER_EVENT_MAX = 245
+
+ X_SC_XOPEN_STREAMS = 246
+
+ X_SC_THREAD_ROBUST_PRIO_INHERIT = 247
+ X_SC_THREAD_ROBUST_PRIO_PROTECT = 248
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 2.10 Symbolic Constants <unistd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// These may be used to determine what facilities are present at compile time.
+// Their values can be obtained at run time from `sysconf'.
+
+// POSIX Standard approved as ISO/IEC 9945-1 as of September 2008.
+
+// These are not #ifdef __USE_POSIX2 because they are
+// in the theoretically application-owned namespace.
+
+// The utilities on GNU systems also correspond to this version.
+
+// The utilities on GNU systems also correspond to this version.
+
+// This symbol was required until the 2001 edition of POSIX.
+
+// If defined, the implementation supports the
+// C Language Bindings Option.
+
+// If defined, the implementation supports the
+// C Language Development Utilities Option.
+
+// If defined, the implementation supports the
+// Software Development Utilities Option.
+
+// If defined, the implementation supports the
+// creation of locales with the localedef utility.
+
+// X/Open version number to which the library conforms. It is selectable.
+
+// Commands and utilities from XPG4 are available.
+
+// We are compatible with the old published standards as well.
+
+// The X/Open Unix extensions are available.
+
+// The enhanced internationalization capabilities according to XPG4.2
+// are present.
+
+// The legacy interfaces are also available.
+
+// Get values of POSIX options:
+//
+// If these symbols are defined, the corresponding features are
+// always available. If not, they may be available sometimes.
+// The current values can be obtained with `sysconf'.
+//
+// _POSIX_JOB_CONTROL Job control is supported.
+// _POSIX_SAVED_IDS Processes have a saved set-user-ID
+// and a saved set-group-ID.
+// _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported.
+// _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported.
+// _POSIX_TIMERS POSIX.4 clocks and timers are supported.
+// _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported.
+// _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported.
+// _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported.
+// _POSIX_FSYNC The fsync function is present.
+// _POSIX_MAPPED_FILES Mapping of files to memory is supported.
+// _POSIX_MEMLOCK Locking of all memory is supported.
+// _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported.
+// _POSIX_MEMORY_PROTECTION Setting of memory protections is supported.
+// _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported.
+// _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported.
+// _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported.
+// _POSIX_THREADS POSIX.1c pthreads are supported.
+// _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported.
+// _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported.
+// _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported.
+// _POSIX_THREAD_PRIORITY_SCHEDULING
+// POSIX.1c thread execution scheduling supported.
+// _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported.
+// _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported.
+// _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported.
+// _POSIX_PII Protocol-independent interfaces are supported.
+// _POSIX_PII_XTI XTI protocol-indep. interfaces are supported.
+// _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported.
+// _POSIX_PII_INTERNET Internet family of protocols supported.
+// _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported.
+// _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported.
+// _POSIX_PII_OSI ISO/OSI family of protocols supported.
+// _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported.
+// _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported.
+// _POSIX_POLL Implementation supports `poll' function.
+// _POSIX_SELECT Implementation supports `select' and `pselect'.
+//
+// _XOPEN_REALTIME X/Open realtime support is available.
+// _XOPEN_REALTIME_THREADS X/Open realtime thread support is available.
+// _XOPEN_SHM Shared memory interface according to XPG4.2.
+//
+// _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit
+// int, long, pointer, and off_t types.
+// _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit
+// int, long, and pointer and off_t with at least
+// 64 bits.
+// _XBS5_LP64_OFF64 Implementation provides environment with 32-bit
+// int, and 64-bit long, pointer, and off_t types.
+// _XBS5_LPBIG_OFFBIG Implementation provides environment with at
+// least 32 bits int and long, pointer, and off_t
+// with at least 64 bits.
+//
+// If any of these symbols is defined as -1, the corresponding option is not
+// true for any file. If any is defined as other than -1, the corresponding
+// option is true for all files. If a symbol is not defined at all, the value
+// for a specific file can be obtained from `pathconf' and `fpathconf'.
+//
+// _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change
+// the owner of a file. `chown' can only be used
+// to change the group ID of a file to a group of
+// which the calling process is a member.
+// _POSIX_NO_TRUNC Pathname components longer than
+// NAME_MAX generate an error.
+// _POSIX_VDISABLE If defined, if the value of an element of the
+// `c_cc' member of `struct termios' is
+// _POSIX_VDISABLE, no character will have the
+// effect associated with that element.
+// _POSIX_SYNC_IO Synchronous I/O may be performed.
+// _POSIX_ASYNC_IO Asynchronous I/O may be performed.
+// _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed.
+//
+// Support for the Large File Support interface is not generally available.
+// If it is available the following constants are defined to one.
+// _LFS64_LARGEFILE Low-level I/O supports large files.
+// _LFS64_STDIO Standard I/O supports large files.
+//
+
+// Define POSIX options for Linux.
+// 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
+// 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// Job control is supported.
+
+// Processes have a saved set-user-ID and a saved set-group-ID.
+
+// Priority scheduling is not supported with the correct semantics,
+// but GNU/Linux applications expect that the corresponding interfaces
+// are available, even though the semantics do not meet the POSIX
+// requirements. See glibc bug 14829.
+
+// Synchronizing file data is supported.
+
+// The fsync function is present.
+
+// Mapping of files to memory is supported.
+
+// Locking of all memory is supported.
+
+// Locking of ranges of memory is supported.
+
+// Setting of memory protections is supported.
+
+// Some filesystems allow all users to change file ownership.
+
+// `c_cc' member of 'struct termios' structure can be disabled by
+// using the value _POSIX_VDISABLE.
+
+// Filenames are not silently truncated.
+
+// X/Open realtime support is available.
+
+// X/Open thread realtime support is available.
+
+// XPG4.2 shared memory is supported.
+
+// Tell we have POSIX threads.
+
+// We have the reentrant functions described in POSIX.
+
+// We provide priority scheduling for threads.
+
+// We support user-defined stack sizes.
+
+// We support user-defined stacks.
+
+// We support priority inheritence.
+
+// We support priority protection, though only for non-robust
+// mutexes.
+
+// We support priority inheritence for robust mutexes.
+
+// We do not support priority protection for robust mutexes.
+
+// We support POSIX.1b semaphores.
+
+// Real-time signals are supported.
+
+// We support asynchronous I/O.
+// Alternative name for Unix98.
+// Support for prioritization is also available.
+
+// The LFS support in asynchronous I/O is also available.
+
+// The rest of the LFS is also available.
+
+// POSIX shared memory objects are implemented.
+
+// CPU-time clocks support needs to be checked at runtime.
+
+// Clock support in threads must be also checked at runtime.
+
+// GNU libc provides regular expression handling.
+
+// Reader/Writer locks are available.
+
+// We have a POSIX shell.
+
+// We support the Timeouts option.
+
+// We support spinlocks.
+
+// The `spawn' function family is supported.
+
+// We have POSIX timers.
+
+// The barrier functions are available.
+
+// POSIX message queues are available.
+
+// Thread process-shared synchronization is supported.
+
+// The monotonic clock might be available.
+
+// The clock selection interfaces are available.
+
+// Advisory information interfaces are available.
+
+// IPv6 support is available.
+
+// Raw socket support is available.
+
+// We have at least one terminal.
+
+// Neither process nor thread sporadic server interfaces is available.
+
+// trace.h is not available.
+
+// Typed memory objects are not available.
+
+// Get the environment definitions from Unix98.
+// 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/>.
+
+// 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/>.
+
+// This header should define the following symbols under the described
+// situations. A value `1' means that the model is always supported,
+// `-1' means it is never supported. Undefined means it cannot be
+// statically decided.
+//
+// _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+// _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+//
+// _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+// _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+//
+// The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+// _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+// _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+// used in previous versions of the Unix standard and are available
+// only for compatibility.
+
+// By default we have 32-bit wide `int', `long int', pointers and `off_t'
+// and all platforms support LFS.
+
+// We optionally provide an environment with the above size but an 64-bit
+// side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG.
+
+// We can never provide environments with 64-bit wide pointers.
+
+// CFLAGS.
+
+// Standard file descriptors.
+
+// All functions that are not declared anywhere else.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Ssize_t = X__ssize_t /* unistd.h:220:19 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* unistd.h:232:17 */
+
+type Uid_t = X__uid_t /* unistd.h:237:17 */
+
+type Off_t = X__off64_t /* unistd.h:245:19 */
+
+type Useconds_t = X__useconds_t /* unistd.h:255:22 */
+
+type Pid_t = X__pid_t /* unistd.h:260:17 */
+
+type Intptr_t = X__intptr_t /* unistd.h:267:20 */
+
+type Socklen_t = X__socklen_t /* unistd.h:274:21 */
+
+// Define some macros helping to catch buffer overflows.
+
+// System-specific extensions.
+// System-specific extensions of <unistd.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_linux_arm64.go b/vendor/modernc.org/libc/unistd/unistd_linux_arm64.go
new file mode 100644
index 00000000..30e9e66b
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_linux_arm64.go
@@ -0,0 +1,1669 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_arm64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 2
+ X_OK = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX_OPT_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GETOPT_CORE_H = 1
+ X_GETOPT_POSIX_H = 1
+ X_LFS64_ASYNCHRONOUS_IO = 1
+ X_LFS64_LARGEFILE = 1
+ X_LFS64_STDIO = 1
+ X_LFS_ASYNCHRONOUS_IO = 1
+ X_LFS_LARGEFILE = 1
+ X_LP64 = 1
+ X_POSIX2_CHAR_TERM = 200809
+ X_POSIX2_C_BIND = 200809
+ X_POSIX2_C_DEV = 200809
+ X_POSIX2_C_VERSION = 200809
+ X_POSIX2_LOCALEDEF = 200809
+ X_POSIX2_SW_DEV = 200809
+ X_POSIX2_VERSION = 200809
+ X_POSIX_ADVISORY_INFO = 200809
+ X_POSIX_ASYNCHRONOUS_IO = 200809
+ X_POSIX_ASYNC_IO = 1
+ X_POSIX_BARRIERS = 200809
+ X_POSIX_CHOWN_RESTRICTED = 0
+ X_POSIX_CLOCK_SELECTION = 200809
+ X_POSIX_CPUTIME = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_FSYNC = 200809
+ X_POSIX_IPV6 = 200809
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200809
+ X_POSIX_MEMLOCK = 200809
+ X_POSIX_MEMLOCK_RANGE = 200809
+ X_POSIX_MEMORY_PROTECTION = 200809
+ X_POSIX_MESSAGE_PASSING = 200809
+ X_POSIX_MONOTONIC_CLOCK = 0
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = 200809
+ X_POSIX_PRIORITY_SCHEDULING = 200809
+ X_POSIX_RAW_SOCKETS = 200809
+ X_POSIX_READER_WRITER_LOCKS = 200809
+ X_POSIX_REALTIME_SIGNALS = 200809
+ X_POSIX_REENTRANT_FUNCTIONS = 1
+ X_POSIX_REGEXP = 1
+ X_POSIX_SAVED_IDS = 1
+ X_POSIX_SEMAPHORES = 200809
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200809
+ X_POSIX_SHELL = 1
+ X_POSIX_SOURCE = 1
+ X_POSIX_SPAWN = 200809
+ X_POSIX_SPIN_LOCKS = 200809
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = 200809
+ X_POSIX_THREADS = 200809
+ X_POSIX_THREAD_ATTR_STACKADDR = 200809
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200809
+ X_POSIX_THREAD_CPUTIME = 0
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200809
+ X_POSIX_THREAD_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_PRIO_PROTECT = 200809
+ X_POSIX_THREAD_PROCESS_SHARED = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200809
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200809
+ X_POSIX_TIMERS = 200809
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = -1
+ X_POSIX_V6_ILP32_OFFBIG = -1
+ X_POSIX_V6_LP64_OFF64 = 1
+ X_POSIX_V6_LPBIG_OFFBIG = -1
+ X_POSIX_V7_ILP32_OFF32 = -1
+ X_POSIX_V7_ILP32_OFFBIG = -1
+ X_POSIX_V7_LP64_OFF64 = 1
+ X_POSIX_V7_LPBIG_OFFBIG = -1
+ X_POSIX_VDISABLE = 0
+ X_POSIX_VERSION = 200809
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UNISTD_H = 1
+ X_XBS5_ILP32_OFF32 = -1
+ X_XBS5_ILP32_OFFBIG = -1
+ X_XBS5_LP64_OFF64 = 1
+ X_XBS5_LPBIG_OFFBIG = -1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = 1
+ X_XOPEN_REALTIME = 1
+ X_XOPEN_REALTIME_THREADS = 1
+ X_XOPEN_SHM = 1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 700
+ X_XOPEN_XCU_VERSION = 4
+ X_XOPEN_XPG2 = 1
+ X_XOPEN_XPG3 = 1
+ X_XOPEN_XPG4 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf';
+// the `_SC_*' symbols for the NAME argument to `sysconf';
+// and the `_CS_*' symbols for the NAME argument to `confstr'.
+// `sysconf', `pathconf', and `confstr' NAME values. Generic version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Values for the NAME argument to `pathconf' and `fpathconf'.
+const ( /* confname.h:24:1: */
+ X_PC_LINK_MAX = 0
+ X_PC_MAX_CANON = 1
+ X_PC_MAX_INPUT = 2
+ X_PC_NAME_MAX = 3
+ X_PC_PATH_MAX = 4
+ X_PC_PIPE_BUF = 5
+ X_PC_CHOWN_RESTRICTED = 6
+ X_PC_NO_TRUNC = 7
+ X_PC_VDISABLE = 8
+ X_PC_SYNC_IO = 9
+ X_PC_ASYNC_IO = 10
+ X_PC_PRIO_IO = 11
+ X_PC_SOCK_MAXBUF = 12
+ X_PC_FILESIZEBITS = 13
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_ALLOC_SIZE_MIN = 18
+ X_PC_SYMLINK_MAX = 19
+ X_PC_2_SYMLINKS = 20
+)
+
+// Values for the NAME argument to `confstr'.
+const ( /* confname.h:533:1: */
+ X_CS_PATH = 0 // The default search path.
+
+ X_CS_V6_WIDTH_RESTRICTED_ENVS = 1
+
+ X_CS_GNU_LIBC_VERSION = 2
+ X_CS_GNU_LIBPTHREAD_VERSION = 3
+
+ X_CS_V5_WIDTH_RESTRICTED_ENVS = 4
+
+ X_CS_V7_WIDTH_RESTRICTED_ENVS = 5
+
+ X_CS_LFS_CFLAGS = 1000
+ X_CS_LFS_LDFLAGS = 1001
+ X_CS_LFS_LIBS = 1002
+ X_CS_LFS_LINTFLAGS = 1003
+ X_CS_LFS64_CFLAGS = 1004
+ X_CS_LFS64_LDFLAGS = 1005
+ X_CS_LFS64_LIBS = 1006
+ X_CS_LFS64_LINTFLAGS = 1007
+
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 1100
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 1101
+ X_CS_XBS5_ILP32_OFF32_LIBS = 1102
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 1106
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 1108
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 1109
+ X_CS_XBS5_LP64_OFF64_LIBS = 1110
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 1111
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 1114
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115
+
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
+ X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
+ X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 1126
+ X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
+
+ X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
+ X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
+ X_CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
+ X_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
+ X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
+ X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
+ X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
+ X_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
+ X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
+ X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
+ X_CS_POSIX_V7_LP64_OFF64_LIBS = 1142
+ X_CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
+ X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
+
+ X_CS_V6_ENV = 1148
+ X_CS_V7_ENV = 1149
+)
+
+// Values for the argument to `sysconf'.
+const ( /* confname.h:71:1: */
+ X_SC_ARG_MAX = 0
+ X_SC_CHILD_MAX = 1
+ X_SC_CLK_TCK = 2
+ X_SC_NGROUPS_MAX = 3
+ X_SC_OPEN_MAX = 4
+ X_SC_STREAM_MAX = 5
+ X_SC_TZNAME_MAX = 6
+ X_SC_JOB_CONTROL = 7
+ X_SC_SAVED_IDS = 8
+ X_SC_REALTIME_SIGNALS = 9
+ X_SC_PRIORITY_SCHEDULING = 10
+ X_SC_TIMERS = 11
+ X_SC_ASYNCHRONOUS_IO = 12
+ X_SC_PRIORITIZED_IO = 13
+ X_SC_SYNCHRONIZED_IO = 14
+ X_SC_FSYNC = 15
+ X_SC_MAPPED_FILES = 16
+ X_SC_MEMLOCK = 17
+ X_SC_MEMLOCK_RANGE = 18
+ X_SC_MEMORY_PROTECTION = 19
+ X_SC_MESSAGE_PASSING = 20
+ X_SC_SEMAPHORES = 21
+ X_SC_SHARED_MEMORY_OBJECTS = 22
+ X_SC_AIO_LISTIO_MAX = 23
+ X_SC_AIO_MAX = 24
+ X_SC_AIO_PRIO_DELTA_MAX = 25
+ X_SC_DELAYTIMER_MAX = 26
+ X_SC_MQ_OPEN_MAX = 27
+ X_SC_MQ_PRIO_MAX = 28
+ X_SC_VERSION = 29
+ X_SC_PAGESIZE = 30
+ X_SC_RTSIG_MAX = 31
+ X_SC_SEM_NSEMS_MAX = 32
+ X_SC_SEM_VALUE_MAX = 33
+ X_SC_SIGQUEUE_MAX = 34
+ X_SC_TIMER_MAX = 35
+
+ // Values for the argument to `sysconf'
+ // corresponding to _POSIX2_* symbols.
+ X_SC_BC_BASE_MAX = 36
+ X_SC_BC_DIM_MAX = 37
+ X_SC_BC_SCALE_MAX = 38
+ X_SC_BC_STRING_MAX = 39
+ X_SC_COLL_WEIGHTS_MAX = 40
+ X_SC_EQUIV_CLASS_MAX = 41
+ X_SC_EXPR_NEST_MAX = 42
+ X_SC_LINE_MAX = 43
+ X_SC_RE_DUP_MAX = 44
+ X_SC_CHARCLASS_NAME_MAX = 45
+
+ X_SC_2_VERSION = 46
+ X_SC_2_C_BIND = 47
+ X_SC_2_C_DEV = 48
+ X_SC_2_FORT_DEV = 49
+ X_SC_2_FORT_RUN = 50
+ X_SC_2_SW_DEV = 51
+ X_SC_2_LOCALEDEF = 52
+
+ X_SC_PII = 53
+ X_SC_PII_XTI = 54
+ X_SC_PII_SOCKET = 55
+ X_SC_PII_INTERNET = 56
+ X_SC_PII_OSI = 57
+ X_SC_POLL = 58
+ X_SC_SELECT = 59
+ X_SC_UIO_MAXIOV = 60
+ X_SC_IOV_MAX = 60
+ X_SC_PII_INTERNET_STREAM = 61
+ X_SC_PII_INTERNET_DGRAM = 62
+ X_SC_PII_OSI_COTS = 63
+ X_SC_PII_OSI_CLTS = 64
+ X_SC_PII_OSI_M = 65
+ X_SC_T_IOV_MAX = 66
+
+ // Values according to POSIX 1003.1c (POSIX threads).
+ X_SC_THREADS = 67
+ X_SC_THREAD_SAFE_FUNCTIONS = 68
+ X_SC_GETGR_R_SIZE_MAX = 69
+ X_SC_GETPW_R_SIZE_MAX = 70
+ X_SC_LOGIN_NAME_MAX = 71
+ X_SC_TTY_NAME_MAX = 72
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 73
+ X_SC_THREAD_KEYS_MAX = 74
+ X_SC_THREAD_STACK_MIN = 75
+ X_SC_THREAD_THREADS_MAX = 76
+ X_SC_THREAD_ATTR_STACKADDR = 77
+ X_SC_THREAD_ATTR_STACKSIZE = 78
+ X_SC_THREAD_PRIORITY_SCHEDULING = 79
+ X_SC_THREAD_PRIO_INHERIT = 80
+ X_SC_THREAD_PRIO_PROTECT = 81
+ X_SC_THREAD_PROCESS_SHARED = 82
+
+ X_SC_NPROCESSORS_CONF = 83
+ X_SC_NPROCESSORS_ONLN = 84
+ X_SC_PHYS_PAGES = 85
+ X_SC_AVPHYS_PAGES = 86
+ X_SC_ATEXIT_MAX = 87
+ X_SC_PASS_MAX = 88
+
+ X_SC_XOPEN_VERSION = 89
+ X_SC_XOPEN_XCU_VERSION = 90
+ X_SC_XOPEN_UNIX = 91
+ X_SC_XOPEN_CRYPT = 92
+ X_SC_XOPEN_ENH_I18N = 93
+ X_SC_XOPEN_SHM = 94
+
+ X_SC_2_CHAR_TERM = 95
+ X_SC_2_C_VERSION = 96
+ X_SC_2_UPE = 97
+
+ X_SC_XOPEN_XPG2 = 98
+ X_SC_XOPEN_XPG3 = 99
+ X_SC_XOPEN_XPG4 = 100
+
+ X_SC_CHAR_BIT = 101
+ X_SC_CHAR_MAX = 102
+ X_SC_CHAR_MIN = 103
+ X_SC_INT_MAX = 104
+ X_SC_INT_MIN = 105
+ X_SC_LONG_BIT = 106
+ X_SC_WORD_BIT = 107
+ X_SC_MB_LEN_MAX = 108
+ X_SC_NZERO = 109
+ X_SC_SSIZE_MAX = 110
+ X_SC_SCHAR_MAX = 111
+ X_SC_SCHAR_MIN = 112
+ X_SC_SHRT_MAX = 113
+ X_SC_SHRT_MIN = 114
+ X_SC_UCHAR_MAX = 115
+ X_SC_UINT_MAX = 116
+ X_SC_ULONG_MAX = 117
+ X_SC_USHRT_MAX = 118
+
+ X_SC_NL_ARGMAX = 119
+ X_SC_NL_LANGMAX = 120
+ X_SC_NL_MSGMAX = 121
+ X_SC_NL_NMAX = 122
+ X_SC_NL_SETMAX = 123
+ X_SC_NL_TEXTMAX = 124
+
+ X_SC_XBS5_ILP32_OFF32 = 125
+ X_SC_XBS5_ILP32_OFFBIG = 126
+ X_SC_XBS5_LP64_OFF64 = 127
+ X_SC_XBS5_LPBIG_OFFBIG = 128
+
+ X_SC_XOPEN_LEGACY = 129
+ X_SC_XOPEN_REALTIME = 130
+ X_SC_XOPEN_REALTIME_THREADS = 131
+
+ X_SC_ADVISORY_INFO = 132
+ X_SC_BARRIERS = 133
+ X_SC_BASE = 134
+ X_SC_C_LANG_SUPPORT = 135
+ X_SC_C_LANG_SUPPORT_R = 136
+ X_SC_CLOCK_SELECTION = 137
+ X_SC_CPUTIME = 138
+ X_SC_THREAD_CPUTIME = 139
+ X_SC_DEVICE_IO = 140
+ X_SC_DEVICE_SPECIFIC = 141
+ X_SC_DEVICE_SPECIFIC_R = 142
+ X_SC_FD_MGMT = 143
+ X_SC_FIFO = 144
+ X_SC_PIPE = 145
+ X_SC_FILE_ATTRIBUTES = 146
+ X_SC_FILE_LOCKING = 147
+ X_SC_FILE_SYSTEM = 148
+ X_SC_MONOTONIC_CLOCK = 149
+ X_SC_MULTI_PROCESS = 150
+ X_SC_SINGLE_PROCESS = 151
+ X_SC_NETWORKING = 152
+ X_SC_READER_WRITER_LOCKS = 153
+ X_SC_SPIN_LOCKS = 154
+ X_SC_REGEXP = 155
+ X_SC_REGEX_VERSION = 156
+ X_SC_SHELL = 157
+ X_SC_SIGNALS = 158
+ X_SC_SPAWN = 159
+ X_SC_SPORADIC_SERVER = 160
+ X_SC_THREAD_SPORADIC_SERVER = 161
+ X_SC_SYSTEM_DATABASE = 162
+ X_SC_SYSTEM_DATABASE_R = 163
+ X_SC_TIMEOUTS = 164
+ X_SC_TYPED_MEMORY_OBJECTS = 165
+ X_SC_USER_GROUPS = 166
+ X_SC_USER_GROUPS_R = 167
+ X_SC_2_PBS = 168
+ X_SC_2_PBS_ACCOUNTING = 169
+ X_SC_2_PBS_LOCATE = 170
+ X_SC_2_PBS_MESSAGE = 171
+ X_SC_2_PBS_TRACK = 172
+ X_SC_SYMLOOP_MAX = 173
+ X_SC_STREAMS = 174
+ X_SC_2_PBS_CHECKPOINT = 175
+
+ X_SC_V6_ILP32_OFF32 = 176
+ X_SC_V6_ILP32_OFFBIG = 177
+ X_SC_V6_LP64_OFF64 = 178
+ X_SC_V6_LPBIG_OFFBIG = 179
+
+ X_SC_HOST_NAME_MAX = 180
+ X_SC_TRACE = 181
+ X_SC_TRACE_EVENT_FILTER = 182
+ X_SC_TRACE_INHERIT = 183
+ X_SC_TRACE_LOG = 184
+
+ X_SC_LEVEL1_ICACHE_SIZE = 185
+ X_SC_LEVEL1_ICACHE_ASSOC = 186
+ X_SC_LEVEL1_ICACHE_LINESIZE = 187
+ X_SC_LEVEL1_DCACHE_SIZE = 188
+ X_SC_LEVEL1_DCACHE_ASSOC = 189
+ X_SC_LEVEL1_DCACHE_LINESIZE = 190
+ X_SC_LEVEL2_CACHE_SIZE = 191
+ X_SC_LEVEL2_CACHE_ASSOC = 192
+ X_SC_LEVEL2_CACHE_LINESIZE = 193
+ X_SC_LEVEL3_CACHE_SIZE = 194
+ X_SC_LEVEL3_CACHE_ASSOC = 195
+ X_SC_LEVEL3_CACHE_LINESIZE = 196
+ X_SC_LEVEL4_CACHE_SIZE = 197
+ X_SC_LEVEL4_CACHE_ASSOC = 198
+ X_SC_LEVEL4_CACHE_LINESIZE = 199
+ // Leave room here, maybe we need a few more cache levels some day.
+
+ X_SC_IPV6 = 235
+ X_SC_RAW_SOCKETS = 236
+
+ X_SC_V7_ILP32_OFF32 = 237
+ X_SC_V7_ILP32_OFFBIG = 238
+ X_SC_V7_LP64_OFF64 = 239
+ X_SC_V7_LPBIG_OFFBIG = 240
+
+ X_SC_SS_REPL_MAX = 241
+
+ X_SC_TRACE_EVENT_NAME_MAX = 242
+ X_SC_TRACE_NAME_MAX = 243
+ X_SC_TRACE_SYS_MAX = 244
+ X_SC_TRACE_USER_EVENT_MAX = 245
+
+ X_SC_XOPEN_STREAMS = 246
+
+ X_SC_THREAD_ROBUST_PRIO_INHERIT = 247
+ X_SC_THREAD_ROBUST_PRIO_PROTECT = 248
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.10 Symbolic Constants <unistd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// These may be used to determine what facilities are present at compile time.
+// Their values can be obtained at run time from `sysconf'.
+
+// POSIX Standard approved as ISO/IEC 9945-1 as of September 2008.
+
+// These are not #ifdef __USE_POSIX2 because they are
+// in the theoretically application-owned namespace.
+
+// The utilities on GNU systems also correspond to this version.
+
+// The utilities on GNU systems also correspond to this version.
+
+// This symbol was required until the 2001 edition of POSIX.
+
+// If defined, the implementation supports the
+// C Language Bindings Option.
+
+// If defined, the implementation supports the
+// C Language Development Utilities Option.
+
+// If defined, the implementation supports the
+// Software Development Utilities Option.
+
+// If defined, the implementation supports the
+// creation of locales with the localedef utility.
+
+// X/Open version number to which the library conforms. It is selectable.
+
+// Commands and utilities from XPG4 are available.
+
+// We are compatible with the old published standards as well.
+
+// The X/Open Unix extensions are available.
+
+// The enhanced internationalization capabilities according to XPG4.2
+// are present.
+
+// The legacy interfaces are also available.
+
+// Get values of POSIX options:
+//
+// If these symbols are defined, the corresponding features are
+// always available. If not, they may be available sometimes.
+// The current values can be obtained with `sysconf'.
+//
+// _POSIX_JOB_CONTROL Job control is supported.
+// _POSIX_SAVED_IDS Processes have a saved set-user-ID
+// and a saved set-group-ID.
+// _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported.
+// _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported.
+// _POSIX_TIMERS POSIX.4 clocks and timers are supported.
+// _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported.
+// _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported.
+// _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported.
+// _POSIX_FSYNC The fsync function is present.
+// _POSIX_MAPPED_FILES Mapping of files to memory is supported.
+// _POSIX_MEMLOCK Locking of all memory is supported.
+// _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported.
+// _POSIX_MEMORY_PROTECTION Setting of memory protections is supported.
+// _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported.
+// _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported.
+// _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported.
+// _POSIX_THREADS POSIX.1c pthreads are supported.
+// _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported.
+// _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported.
+// _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported.
+// _POSIX_THREAD_PRIORITY_SCHEDULING
+// POSIX.1c thread execution scheduling supported.
+// _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported.
+// _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported.
+// _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported.
+// _POSIX_PII Protocol-independent interfaces are supported.
+// _POSIX_PII_XTI XTI protocol-indep. interfaces are supported.
+// _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported.
+// _POSIX_PII_INTERNET Internet family of protocols supported.
+// _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported.
+// _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported.
+// _POSIX_PII_OSI ISO/OSI family of protocols supported.
+// _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported.
+// _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported.
+// _POSIX_POLL Implementation supports `poll' function.
+// _POSIX_SELECT Implementation supports `select' and `pselect'.
+//
+// _XOPEN_REALTIME X/Open realtime support is available.
+// _XOPEN_REALTIME_THREADS X/Open realtime thread support is available.
+// _XOPEN_SHM Shared memory interface according to XPG4.2.
+//
+// _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit
+// int, long, pointer, and off_t types.
+// _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit
+// int, long, and pointer and off_t with at least
+// 64 bits.
+// _XBS5_LP64_OFF64 Implementation provides environment with 32-bit
+// int, and 64-bit long, pointer, and off_t types.
+// _XBS5_LPBIG_OFFBIG Implementation provides environment with at
+// least 32 bits int and long, pointer, and off_t
+// with at least 64 bits.
+//
+// If any of these symbols is defined as -1, the corresponding option is not
+// true for any file. If any is defined as other than -1, the corresponding
+// option is true for all files. If a symbol is not defined at all, the value
+// for a specific file can be obtained from `pathconf' and `fpathconf'.
+//
+// _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change
+// the owner of a file. `chown' can only be used
+// to change the group ID of a file to a group of
+// which the calling process is a member.
+// _POSIX_NO_TRUNC Pathname components longer than
+// NAME_MAX generate an error.
+// _POSIX_VDISABLE If defined, if the value of an element of the
+// `c_cc' member of `struct termios' is
+// _POSIX_VDISABLE, no character will have the
+// effect associated with that element.
+// _POSIX_SYNC_IO Synchronous I/O may be performed.
+// _POSIX_ASYNC_IO Asynchronous I/O may be performed.
+// _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed.
+//
+// Support for the Large File Support interface is not generally available.
+// If it is available the following constants are defined to one.
+// _LFS64_LARGEFILE Low-level I/O supports large files.
+// _LFS64_STDIO Standard I/O supports large files.
+//
+
+// Define POSIX options for Linux.
+// 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
+// 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// Job control is supported.
+
+// Processes have a saved set-user-ID and a saved set-group-ID.
+
+// Priority scheduling is not supported with the correct semantics,
+// but GNU/Linux applications expect that the corresponding interfaces
+// are available, even though the semantics do not meet the POSIX
+// requirements. See glibc bug 14829.
+
+// Synchronizing file data is supported.
+
+// The fsync function is present.
+
+// Mapping of files to memory is supported.
+
+// Locking of all memory is supported.
+
+// Locking of ranges of memory is supported.
+
+// Setting of memory protections is supported.
+
+// Some filesystems allow all users to change file ownership.
+
+// `c_cc' member of 'struct termios' structure can be disabled by
+// using the value _POSIX_VDISABLE.
+
+// Filenames are not silently truncated.
+
+// X/Open realtime support is available.
+
+// X/Open thread realtime support is available.
+
+// XPG4.2 shared memory is supported.
+
+// Tell we have POSIX threads.
+
+// We have the reentrant functions described in POSIX.
+
+// We provide priority scheduling for threads.
+
+// We support user-defined stack sizes.
+
+// We support user-defined stacks.
+
+// We support priority inheritence.
+
+// We support priority protection, though only for non-robust
+// mutexes.
+
+// We support priority inheritence for robust mutexes.
+
+// We do not support priority protection for robust mutexes.
+
+// We support POSIX.1b semaphores.
+
+// Real-time signals are supported.
+
+// We support asynchronous I/O.
+// Alternative name for Unix98.
+// Support for prioritization is also available.
+
+// The LFS support in asynchronous I/O is also available.
+
+// The rest of the LFS is also available.
+
+// POSIX shared memory objects are implemented.
+
+// CPU-time clocks support needs to be checked at runtime.
+
+// Clock support in threads must be also checked at runtime.
+
+// GNU libc provides regular expression handling.
+
+// Reader/Writer locks are available.
+
+// We have a POSIX shell.
+
+// We support the Timeouts option.
+
+// We support spinlocks.
+
+// The `spawn' function family is supported.
+
+// We have POSIX timers.
+
+// The barrier functions are available.
+
+// POSIX message queues are available.
+
+// Thread process-shared synchronization is supported.
+
+// The monotonic clock might be available.
+
+// The clock selection interfaces are available.
+
+// Advisory information interfaces are available.
+
+// IPv6 support is available.
+
+// Raw socket support is available.
+
+// We have at least one terminal.
+
+// Neither process nor thread sporadic server interfaces is available.
+
+// trace.h is not available.
+
+// Typed memory objects are not available.
+
+// Get the environment definitions from Unix98.
+// 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/>.
+
+// 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/>.
+
+// This header should define the following symbols under the described
+// situations. A value `1' means that the model is always supported,
+// `-1' means it is never supported. Undefined means it cannot be
+// statically decided.
+//
+// _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+// _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+//
+// _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+// _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+//
+// The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+// _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+// _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+// used in previous versions of the Unix standard and are available
+// only for compatibility.
+
+// We can never provide environments with 32-bit wide pointers.
+// We also have no use (for now) for an environment with bigger pointers
+// and offsets.
+
+// By default we have 64-bit wide `long int', pointers and `off_t'.
+
+// Standard file descriptors.
+
+// All functions that are not declared anywhere else.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Ssize_t = X__ssize_t /* unistd.h:220:19 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* unistd.h:232:17 */
+
+type Uid_t = X__uid_t /* unistd.h:237:17 */
+
+type Off_t = X__off64_t /* unistd.h:245:19 */
+
+type Useconds_t = X__useconds_t /* unistd.h:255:22 */
+
+type Pid_t = X__pid_t /* unistd.h:260:17 */
+
+type Intptr_t = X__intptr_t /* unistd.h:267:20 */
+
+type Socklen_t = X__socklen_t /* unistd.h:274:21 */
+
+// Define some macros helping to catch buffer overflows.
+
+// System-specific extensions.
+// System-specific extensions of <unistd.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_linux_s390x.go b/vendor/modernc.org/libc/unistd/unistd_linux_s390x.go
new file mode 100644
index 00000000..b32fa9aa
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_linux_s390x.go
@@ -0,0 +1,1586 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_linux_s390x.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 2
+ X_OK = 1
+ X_ATFILE_SOURCE = 1
+ X_BITS_POSIX_OPT_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_GETOPT_CORE_H = 1
+ X_GETOPT_POSIX_H = 1
+ X_LFS64_ASYNCHRONOUS_IO = 1
+ X_LFS64_LARGEFILE = 1
+ X_LFS64_STDIO = 1
+ X_LFS_ASYNCHRONOUS_IO = 1
+ X_LFS_LARGEFILE = 1
+ X_LP64 = 1
+ X_POSIX2_CHAR_TERM = 200809
+ X_POSIX2_C_BIND = 200809
+ X_POSIX2_C_DEV = 200809
+ X_POSIX2_C_VERSION = 200809
+ X_POSIX2_LOCALEDEF = 200809
+ X_POSIX2_SW_DEV = 200809
+ X_POSIX2_VERSION = 200809
+ X_POSIX_ADVISORY_INFO = 200809
+ X_POSIX_ASYNCHRONOUS_IO = 200809
+ X_POSIX_ASYNC_IO = 1
+ X_POSIX_BARRIERS = 200809
+ X_POSIX_CHOWN_RESTRICTED = 0
+ X_POSIX_CLOCK_SELECTION = 200809
+ X_POSIX_CPUTIME = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_FSYNC = 200809
+ X_POSIX_IPV6 = 200809
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200809
+ X_POSIX_MEMLOCK = 200809
+ X_POSIX_MEMLOCK_RANGE = 200809
+ X_POSIX_MEMORY_PROTECTION = 200809
+ X_POSIX_MESSAGE_PASSING = 200809
+ X_POSIX_MONOTONIC_CLOCK = 0
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = 200809
+ X_POSIX_PRIORITY_SCHEDULING = 200809
+ X_POSIX_RAW_SOCKETS = 200809
+ X_POSIX_READER_WRITER_LOCKS = 200809
+ X_POSIX_REALTIME_SIGNALS = 200809
+ X_POSIX_REENTRANT_FUNCTIONS = 1
+ X_POSIX_REGEXP = 1
+ X_POSIX_SAVED_IDS = 1
+ X_POSIX_SEMAPHORES = 200809
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200809
+ X_POSIX_SHELL = 1
+ X_POSIX_SOURCE = 1
+ X_POSIX_SPAWN = 200809
+ X_POSIX_SPIN_LOCKS = 200809
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = 200809
+ X_POSIX_THREADS = 200809
+ X_POSIX_THREAD_ATTR_STACKADDR = 200809
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200809
+ X_POSIX_THREAD_CPUTIME = 0
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = 200809
+ X_POSIX_THREAD_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_PRIO_PROTECT = 200809
+ X_POSIX_THREAD_PROCESS_SHARED = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_INHERIT = 200809
+ X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200809
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200809
+ X_POSIX_TIMERS = 200809
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_LP64_OFF64 = 1
+ X_POSIX_V6_LPBIG_OFFBIG = -1
+ X_POSIX_V7_LP64_OFF64 = 1
+ X_POSIX_V7_LPBIG_OFFBIG = -1
+ X_POSIX_VDISABLE = 0
+ X_POSIX_VERSION = 200809
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UNISTD_H = 1
+ X_XBS5_LP64_OFF64 = 1
+ X_XBS5_LPBIG_OFFBIG = -1
+ X_XOPEN_ENH_I18N = 1
+ X_XOPEN_LEGACY = 1
+ X_XOPEN_REALTIME = 1
+ X_XOPEN_REALTIME_THREADS = 1
+ X_XOPEN_SHM = 1
+ X_XOPEN_UNIX = 1
+ X_XOPEN_VERSION = 700
+ X_XOPEN_XCU_VERSION = 4
+ X_XOPEN_XPG2 = 1
+ X_XOPEN_XPG3 = 1
+ X_XOPEN_XPG4 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf';
+// the `_SC_*' symbols for the NAME argument to `sysconf';
+// and the `_CS_*' symbols for the NAME argument to `confstr'.
+// `sysconf', `pathconf', and `confstr' NAME values. Generic version.
+// Copyright (C) 1993-2020 Free Software 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/>.
+
+// Values for the NAME argument to `pathconf' and `fpathconf'.
+const ( /* confname.h:24:1: */
+ X_PC_LINK_MAX = 0
+ X_PC_MAX_CANON = 1
+ X_PC_MAX_INPUT = 2
+ X_PC_NAME_MAX = 3
+ X_PC_PATH_MAX = 4
+ X_PC_PIPE_BUF = 5
+ X_PC_CHOWN_RESTRICTED = 6
+ X_PC_NO_TRUNC = 7
+ X_PC_VDISABLE = 8
+ X_PC_SYNC_IO = 9
+ X_PC_ASYNC_IO = 10
+ X_PC_PRIO_IO = 11
+ X_PC_SOCK_MAXBUF = 12
+ X_PC_FILESIZEBITS = 13
+ X_PC_REC_INCR_XFER_SIZE = 14
+ X_PC_REC_MAX_XFER_SIZE = 15
+ X_PC_REC_MIN_XFER_SIZE = 16
+ X_PC_REC_XFER_ALIGN = 17
+ X_PC_ALLOC_SIZE_MIN = 18
+ X_PC_SYMLINK_MAX = 19
+ X_PC_2_SYMLINKS = 20
+)
+
+// Values for the NAME argument to `confstr'.
+const ( /* confname.h:533:1: */
+ X_CS_PATH = 0 // The default search path.
+
+ X_CS_V6_WIDTH_RESTRICTED_ENVS = 1
+
+ X_CS_GNU_LIBC_VERSION = 2
+ X_CS_GNU_LIBPTHREAD_VERSION = 3
+
+ X_CS_V5_WIDTH_RESTRICTED_ENVS = 4
+
+ X_CS_V7_WIDTH_RESTRICTED_ENVS = 5
+
+ X_CS_LFS_CFLAGS = 1000
+ X_CS_LFS_LDFLAGS = 1001
+ X_CS_LFS_LIBS = 1002
+ X_CS_LFS_LINTFLAGS = 1003
+ X_CS_LFS64_CFLAGS = 1004
+ X_CS_LFS64_LDFLAGS = 1005
+ X_CS_LFS64_LIBS = 1006
+ X_CS_LFS64_LINTFLAGS = 1007
+
+ X_CS_XBS5_ILP32_OFF32_CFLAGS = 1100
+ X_CS_XBS5_ILP32_OFF32_LDFLAGS = 1101
+ X_CS_XBS5_ILP32_OFF32_LIBS = 1102
+ X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103
+ X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104
+ X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105
+ X_CS_XBS5_ILP32_OFFBIG_LIBS = 1106
+ X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107
+ X_CS_XBS5_LP64_OFF64_CFLAGS = 1108
+ X_CS_XBS5_LP64_OFF64_LDFLAGS = 1109
+ X_CS_XBS5_LP64_OFF64_LIBS = 1110
+ X_CS_XBS5_LP64_OFF64_LINTFLAGS = 1111
+ X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112
+ X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113
+ X_CS_XBS5_LPBIG_OFFBIG_LIBS = 1114
+ X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115
+
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
+ X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
+ X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 1126
+ X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
+
+ X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
+ X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
+ X_CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
+ X_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
+ X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
+ X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
+ X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
+ X_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
+ X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
+ X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
+ X_CS_POSIX_V7_LP64_OFF64_LIBS = 1142
+ X_CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
+ X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
+
+ X_CS_V6_ENV = 1148
+ X_CS_V7_ENV = 1149
+)
+
+// Values for the argument to `sysconf'.
+const ( /* confname.h:71:1: */
+ X_SC_ARG_MAX = 0
+ X_SC_CHILD_MAX = 1
+ X_SC_CLK_TCK = 2
+ X_SC_NGROUPS_MAX = 3
+ X_SC_OPEN_MAX = 4
+ X_SC_STREAM_MAX = 5
+ X_SC_TZNAME_MAX = 6
+ X_SC_JOB_CONTROL = 7
+ X_SC_SAVED_IDS = 8
+ X_SC_REALTIME_SIGNALS = 9
+ X_SC_PRIORITY_SCHEDULING = 10
+ X_SC_TIMERS = 11
+ X_SC_ASYNCHRONOUS_IO = 12
+ X_SC_PRIORITIZED_IO = 13
+ X_SC_SYNCHRONIZED_IO = 14
+ X_SC_FSYNC = 15
+ X_SC_MAPPED_FILES = 16
+ X_SC_MEMLOCK = 17
+ X_SC_MEMLOCK_RANGE = 18
+ X_SC_MEMORY_PROTECTION = 19
+ X_SC_MESSAGE_PASSING = 20
+ X_SC_SEMAPHORES = 21
+ X_SC_SHARED_MEMORY_OBJECTS = 22
+ X_SC_AIO_LISTIO_MAX = 23
+ X_SC_AIO_MAX = 24
+ X_SC_AIO_PRIO_DELTA_MAX = 25
+ X_SC_DELAYTIMER_MAX = 26
+ X_SC_MQ_OPEN_MAX = 27
+ X_SC_MQ_PRIO_MAX = 28
+ X_SC_VERSION = 29
+ X_SC_PAGESIZE = 30
+ X_SC_RTSIG_MAX = 31
+ X_SC_SEM_NSEMS_MAX = 32
+ X_SC_SEM_VALUE_MAX = 33
+ X_SC_SIGQUEUE_MAX = 34
+ X_SC_TIMER_MAX = 35
+
+ // Values for the argument to `sysconf'
+ // corresponding to _POSIX2_* symbols.
+ X_SC_BC_BASE_MAX = 36
+ X_SC_BC_DIM_MAX = 37
+ X_SC_BC_SCALE_MAX = 38
+ X_SC_BC_STRING_MAX = 39
+ X_SC_COLL_WEIGHTS_MAX = 40
+ X_SC_EQUIV_CLASS_MAX = 41
+ X_SC_EXPR_NEST_MAX = 42
+ X_SC_LINE_MAX = 43
+ X_SC_RE_DUP_MAX = 44
+ X_SC_CHARCLASS_NAME_MAX = 45
+
+ X_SC_2_VERSION = 46
+ X_SC_2_C_BIND = 47
+ X_SC_2_C_DEV = 48
+ X_SC_2_FORT_DEV = 49
+ X_SC_2_FORT_RUN = 50
+ X_SC_2_SW_DEV = 51
+ X_SC_2_LOCALEDEF = 52
+
+ X_SC_PII = 53
+ X_SC_PII_XTI = 54
+ X_SC_PII_SOCKET = 55
+ X_SC_PII_INTERNET = 56
+ X_SC_PII_OSI = 57
+ X_SC_POLL = 58
+ X_SC_SELECT = 59
+ X_SC_UIO_MAXIOV = 60
+ X_SC_IOV_MAX = 60
+ X_SC_PII_INTERNET_STREAM = 61
+ X_SC_PII_INTERNET_DGRAM = 62
+ X_SC_PII_OSI_COTS = 63
+ X_SC_PII_OSI_CLTS = 64
+ X_SC_PII_OSI_M = 65
+ X_SC_T_IOV_MAX = 66
+
+ // Values according to POSIX 1003.1c (POSIX threads).
+ X_SC_THREADS = 67
+ X_SC_THREAD_SAFE_FUNCTIONS = 68
+ X_SC_GETGR_R_SIZE_MAX = 69
+ X_SC_GETPW_R_SIZE_MAX = 70
+ X_SC_LOGIN_NAME_MAX = 71
+ X_SC_TTY_NAME_MAX = 72
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 73
+ X_SC_THREAD_KEYS_MAX = 74
+ X_SC_THREAD_STACK_MIN = 75
+ X_SC_THREAD_THREADS_MAX = 76
+ X_SC_THREAD_ATTR_STACKADDR = 77
+ X_SC_THREAD_ATTR_STACKSIZE = 78
+ X_SC_THREAD_PRIORITY_SCHEDULING = 79
+ X_SC_THREAD_PRIO_INHERIT = 80
+ X_SC_THREAD_PRIO_PROTECT = 81
+ X_SC_THREAD_PROCESS_SHARED = 82
+
+ X_SC_NPROCESSORS_CONF = 83
+ X_SC_NPROCESSORS_ONLN = 84
+ X_SC_PHYS_PAGES = 85
+ X_SC_AVPHYS_PAGES = 86
+ X_SC_ATEXIT_MAX = 87
+ X_SC_PASS_MAX = 88
+
+ X_SC_XOPEN_VERSION = 89
+ X_SC_XOPEN_XCU_VERSION = 90
+ X_SC_XOPEN_UNIX = 91
+ X_SC_XOPEN_CRYPT = 92
+ X_SC_XOPEN_ENH_I18N = 93
+ X_SC_XOPEN_SHM = 94
+
+ X_SC_2_CHAR_TERM = 95
+ X_SC_2_C_VERSION = 96
+ X_SC_2_UPE = 97
+
+ X_SC_XOPEN_XPG2 = 98
+ X_SC_XOPEN_XPG3 = 99
+ X_SC_XOPEN_XPG4 = 100
+
+ X_SC_CHAR_BIT = 101
+ X_SC_CHAR_MAX = 102
+ X_SC_CHAR_MIN = 103
+ X_SC_INT_MAX = 104
+ X_SC_INT_MIN = 105
+ X_SC_LONG_BIT = 106
+ X_SC_WORD_BIT = 107
+ X_SC_MB_LEN_MAX = 108
+ X_SC_NZERO = 109
+ X_SC_SSIZE_MAX = 110
+ X_SC_SCHAR_MAX = 111
+ X_SC_SCHAR_MIN = 112
+ X_SC_SHRT_MAX = 113
+ X_SC_SHRT_MIN = 114
+ X_SC_UCHAR_MAX = 115
+ X_SC_UINT_MAX = 116
+ X_SC_ULONG_MAX = 117
+ X_SC_USHRT_MAX = 118
+
+ X_SC_NL_ARGMAX = 119
+ X_SC_NL_LANGMAX = 120
+ X_SC_NL_MSGMAX = 121
+ X_SC_NL_NMAX = 122
+ X_SC_NL_SETMAX = 123
+ X_SC_NL_TEXTMAX = 124
+
+ X_SC_XBS5_ILP32_OFF32 = 125
+ X_SC_XBS5_ILP32_OFFBIG = 126
+ X_SC_XBS5_LP64_OFF64 = 127
+ X_SC_XBS5_LPBIG_OFFBIG = 128
+
+ X_SC_XOPEN_LEGACY = 129
+ X_SC_XOPEN_REALTIME = 130
+ X_SC_XOPEN_REALTIME_THREADS = 131
+
+ X_SC_ADVISORY_INFO = 132
+ X_SC_BARRIERS = 133
+ X_SC_BASE = 134
+ X_SC_C_LANG_SUPPORT = 135
+ X_SC_C_LANG_SUPPORT_R = 136
+ X_SC_CLOCK_SELECTION = 137
+ X_SC_CPUTIME = 138
+ X_SC_THREAD_CPUTIME = 139
+ X_SC_DEVICE_IO = 140
+ X_SC_DEVICE_SPECIFIC = 141
+ X_SC_DEVICE_SPECIFIC_R = 142
+ X_SC_FD_MGMT = 143
+ X_SC_FIFO = 144
+ X_SC_PIPE = 145
+ X_SC_FILE_ATTRIBUTES = 146
+ X_SC_FILE_LOCKING = 147
+ X_SC_FILE_SYSTEM = 148
+ X_SC_MONOTONIC_CLOCK = 149
+ X_SC_MULTI_PROCESS = 150
+ X_SC_SINGLE_PROCESS = 151
+ X_SC_NETWORKING = 152
+ X_SC_READER_WRITER_LOCKS = 153
+ X_SC_SPIN_LOCKS = 154
+ X_SC_REGEXP = 155
+ X_SC_REGEX_VERSION = 156
+ X_SC_SHELL = 157
+ X_SC_SIGNALS = 158
+ X_SC_SPAWN = 159
+ X_SC_SPORADIC_SERVER = 160
+ X_SC_THREAD_SPORADIC_SERVER = 161
+ X_SC_SYSTEM_DATABASE = 162
+ X_SC_SYSTEM_DATABASE_R = 163
+ X_SC_TIMEOUTS = 164
+ X_SC_TYPED_MEMORY_OBJECTS = 165
+ X_SC_USER_GROUPS = 166
+ X_SC_USER_GROUPS_R = 167
+ X_SC_2_PBS = 168
+ X_SC_2_PBS_ACCOUNTING = 169
+ X_SC_2_PBS_LOCATE = 170
+ X_SC_2_PBS_MESSAGE = 171
+ X_SC_2_PBS_TRACK = 172
+ X_SC_SYMLOOP_MAX = 173
+ X_SC_STREAMS = 174
+ X_SC_2_PBS_CHECKPOINT = 175
+
+ X_SC_V6_ILP32_OFF32 = 176
+ X_SC_V6_ILP32_OFFBIG = 177
+ X_SC_V6_LP64_OFF64 = 178
+ X_SC_V6_LPBIG_OFFBIG = 179
+
+ X_SC_HOST_NAME_MAX = 180
+ X_SC_TRACE = 181
+ X_SC_TRACE_EVENT_FILTER = 182
+ X_SC_TRACE_INHERIT = 183
+ X_SC_TRACE_LOG = 184
+
+ X_SC_LEVEL1_ICACHE_SIZE = 185
+ X_SC_LEVEL1_ICACHE_ASSOC = 186
+ X_SC_LEVEL1_ICACHE_LINESIZE = 187
+ X_SC_LEVEL1_DCACHE_SIZE = 188
+ X_SC_LEVEL1_DCACHE_ASSOC = 189
+ X_SC_LEVEL1_DCACHE_LINESIZE = 190
+ X_SC_LEVEL2_CACHE_SIZE = 191
+ X_SC_LEVEL2_CACHE_ASSOC = 192
+ X_SC_LEVEL2_CACHE_LINESIZE = 193
+ X_SC_LEVEL3_CACHE_SIZE = 194
+ X_SC_LEVEL3_CACHE_ASSOC = 195
+ X_SC_LEVEL3_CACHE_LINESIZE = 196
+ X_SC_LEVEL4_CACHE_SIZE = 197
+ X_SC_LEVEL4_CACHE_ASSOC = 198
+ X_SC_LEVEL4_CACHE_LINESIZE = 199
+ // Leave room here, maybe we need a few more cache levels some day.
+
+ X_SC_IPV6 = 235
+ X_SC_RAW_SOCKETS = 236
+
+ X_SC_V7_ILP32_OFF32 = 237
+ X_SC_V7_ILP32_OFFBIG = 238
+ X_SC_V7_LP64_OFF64 = 239
+ X_SC_V7_LPBIG_OFFBIG = 240
+
+ X_SC_SS_REPL_MAX = 241
+
+ X_SC_TRACE_EVENT_NAME_MAX = 242
+ X_SC_TRACE_NAME_MAX = 243
+ X_SC_TRACE_SYS_MAX = 244
+ X_SC_TRACE_USER_EVENT_MAX = 245
+
+ X_SC_XOPEN_STREAMS = 246
+
+ X_SC_THREAD_ROBUST_PRIO_INHERIT = 247
+ X_SC_THREAD_ROBUST_PRIO_PROTECT = 248
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.10 Symbolic Constants <unistd.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// These may be used to determine what facilities are present at compile time.
+// Their values can be obtained at run time from `sysconf'.
+
+// POSIX Standard approved as ISO/IEC 9945-1 as of September 2008.
+
+// These are not #ifdef __USE_POSIX2 because they are
+// in the theoretically application-owned namespace.
+
+// The utilities on GNU systems also correspond to this version.
+
+// The utilities on GNU systems also correspond to this version.
+
+// This symbol was required until the 2001 edition of POSIX.
+
+// If defined, the implementation supports the
+// C Language Bindings Option.
+
+// If defined, the implementation supports the
+// C Language Development Utilities Option.
+
+// If defined, the implementation supports the
+// Software Development Utilities Option.
+
+// If defined, the implementation supports the
+// creation of locales with the localedef utility.
+
+// X/Open version number to which the library conforms. It is selectable.
+
+// Commands and utilities from XPG4 are available.
+
+// We are compatible with the old published standards as well.
+
+// The X/Open Unix extensions are available.
+
+// The enhanced internationalization capabilities according to XPG4.2
+// are present.
+
+// The legacy interfaces are also available.
+
+// Get values of POSIX options:
+//
+// If these symbols are defined, the corresponding features are
+// always available. If not, they may be available sometimes.
+// The current values can be obtained with `sysconf'.
+//
+// _POSIX_JOB_CONTROL Job control is supported.
+// _POSIX_SAVED_IDS Processes have a saved set-user-ID
+// and a saved set-group-ID.
+// _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported.
+// _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported.
+// _POSIX_TIMERS POSIX.4 clocks and timers are supported.
+// _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported.
+// _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported.
+// _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported.
+// _POSIX_FSYNC The fsync function is present.
+// _POSIX_MAPPED_FILES Mapping of files to memory is supported.
+// _POSIX_MEMLOCK Locking of all memory is supported.
+// _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported.
+// _POSIX_MEMORY_PROTECTION Setting of memory protections is supported.
+// _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported.
+// _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported.
+// _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported.
+// _POSIX_THREADS POSIX.1c pthreads are supported.
+// _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported.
+// _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported.
+// _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported.
+// _POSIX_THREAD_PRIORITY_SCHEDULING
+// POSIX.1c thread execution scheduling supported.
+// _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported.
+// _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported.
+// _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported.
+// _POSIX_PII Protocol-independent interfaces are supported.
+// _POSIX_PII_XTI XTI protocol-indep. interfaces are supported.
+// _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported.
+// _POSIX_PII_INTERNET Internet family of protocols supported.
+// _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported.
+// _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported.
+// _POSIX_PII_OSI ISO/OSI family of protocols supported.
+// _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported.
+// _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported.
+// _POSIX_POLL Implementation supports `poll' function.
+// _POSIX_SELECT Implementation supports `select' and `pselect'.
+//
+// _XOPEN_REALTIME X/Open realtime support is available.
+// _XOPEN_REALTIME_THREADS X/Open realtime thread support is available.
+// _XOPEN_SHM Shared memory interface according to XPG4.2.
+//
+// _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit
+// int, long, pointer, and off_t types.
+// _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit
+// int, long, and pointer and off_t with at least
+// 64 bits.
+// _XBS5_LP64_OFF64 Implementation provides environment with 32-bit
+// int, and 64-bit long, pointer, and off_t types.
+// _XBS5_LPBIG_OFFBIG Implementation provides environment with at
+// least 32 bits int and long, pointer, and off_t
+// with at least 64 bits.
+//
+// If any of these symbols is defined as -1, the corresponding option is not
+// true for any file. If any is defined as other than -1, the corresponding
+// option is true for all files. If a symbol is not defined at all, the value
+// for a specific file can be obtained from `pathconf' and `fpathconf'.
+//
+// _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change
+// the owner of a file. `chown' can only be used
+// to change the group ID of a file to a group of
+// which the calling process is a member.
+// _POSIX_NO_TRUNC Pathname components longer than
+// NAME_MAX generate an error.
+// _POSIX_VDISABLE If defined, if the value of an element of the
+// `c_cc' member of `struct termios' is
+// _POSIX_VDISABLE, no character will have the
+// effect associated with that element.
+// _POSIX_SYNC_IO Synchronous I/O may be performed.
+// _POSIX_ASYNC_IO Asynchronous I/O may be performed.
+// _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed.
+//
+// Support for the Large File Support interface is not generally available.
+// If it is available the following constants are defined to one.
+// _LFS64_LARGEFILE Low-level I/O supports large files.
+// _LFS64_STDIO Standard I/O supports large files.
+//
+
+// Define POSIX options for Linux.
+// 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
+// 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; see the file COPYING.LIB. If
+// not, see <https://www.gnu.org/licenses/>.
+
+// Job control is supported.
+
+// Processes have a saved set-user-ID and a saved set-group-ID.
+
+// Priority scheduling is not supported with the correct semantics,
+// but GNU/Linux applications expect that the corresponding interfaces
+// are available, even though the semantics do not meet the POSIX
+// requirements. See glibc bug 14829.
+
+// Synchronizing file data is supported.
+
+// The fsync function is present.
+
+// Mapping of files to memory is supported.
+
+// Locking of all memory is supported.
+
+// Locking of ranges of memory is supported.
+
+// Setting of memory protections is supported.
+
+// Some filesystems allow all users to change file ownership.
+
+// `c_cc' member of 'struct termios' structure can be disabled by
+// using the value _POSIX_VDISABLE.
+
+// Filenames are not silently truncated.
+
+// X/Open realtime support is available.
+
+// X/Open thread realtime support is available.
+
+// XPG4.2 shared memory is supported.
+
+// Tell we have POSIX threads.
+
+// We have the reentrant functions described in POSIX.
+
+// We provide priority scheduling for threads.
+
+// We support user-defined stack sizes.
+
+// We support user-defined stacks.
+
+// We support priority inheritence.
+
+// We support priority protection, though only for non-robust
+// mutexes.
+
+// We support priority inheritence for robust mutexes.
+
+// We do not support priority protection for robust mutexes.
+
+// We support POSIX.1b semaphores.
+
+// Real-time signals are supported.
+
+// We support asynchronous I/O.
+// Alternative name for Unix98.
+// Support for prioritization is also available.
+
+// The LFS support in asynchronous I/O is also available.
+
+// The rest of the LFS is also available.
+
+// POSIX shared memory objects are implemented.
+
+// CPU-time clocks support needs to be checked at runtime.
+
+// Clock support in threads must be also checked at runtime.
+
+// GNU libc provides regular expression handling.
+
+// Reader/Writer locks are available.
+
+// We have a POSIX shell.
+
+// We support the Timeouts option.
+
+// We support spinlocks.
+
+// The `spawn' function family is supported.
+
+// We have POSIX timers.
+
+// The barrier functions are available.
+
+// POSIX message queues are available.
+
+// Thread process-shared synchronization is supported.
+
+// The monotonic clock might be available.
+
+// The clock selection interfaces are available.
+
+// Advisory information interfaces are available.
+
+// IPv6 support is available.
+
+// Raw socket support is available.
+
+// We have at least one terminal.
+
+// Neither process nor thread sporadic server interfaces is available.
+
+// trace.h is not available.
+
+// Typed memory objects are not available.
+
+// Get the environment definitions from Unix98.
+// 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/>.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This header should define the following symbols under the described
+// situations. A value `1' means that the model is always supported,
+// `-1' means it is never supported. Undefined means it cannot be
+// statically decided.
+//
+// _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+// _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+//
+// _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+// _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+//
+// The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+// _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+// _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+// used in previous versions of the Unix standard and are available
+// only for compatibility.
+
+// Environments with 32-bit wide pointers are optionally provided.
+// Therefore following macros aren't defined:
+// # undef _POSIX_V7_ILP32_OFF32
+// # undef _POSIX_V7_ILP32_OFFBIG
+// # undef _POSIX_V6_ILP32_OFF32
+// # undef _POSIX_V6_ILP32_OFFBIG
+// # undef _XBS5_ILP32_OFF32
+// # undef _XBS5_ILP32_OFFBIG
+// and users need to check at runtime.
+
+// We also have no use (for now) for an environment with bigger pointers
+// and offsets.
+
+// By default we have 64-bit wide `long int', pointers and `off_t'.
+
+// Standard file descriptors.
+
+// All functions that are not declared anywhere else.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 Ssize_t = X__ssize_t /* unistd.h:220:19 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// The Single Unix specification says that some more types are
+// available here.
+type Gid_t = X__gid_t /* unistd.h:232:17 */
+
+type Uid_t = X__uid_t /* unistd.h:237:17 */
+
+type Off_t = X__off64_t /* unistd.h:245:19 */
+
+type Useconds_t = X__useconds_t /* unistd.h:255:22 */
+
+type Pid_t = X__pid_t /* unistd.h:260:17 */
+
+type Intptr_t = X__intptr_t /* unistd.h:267:20 */
+
+type Socklen_t = X__socklen_t /* unistd.h:274:21 */
+
+// Define some macros helping to catch buffer overflows.
+
+// System-specific extensions.
+// System-specific extensions of <unistd.h>, Linux 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
+// <https://www.gnu.org/licenses/>.
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_netbsd_amd64.go b/vendor/modernc.org/libc/unistd/unistd_netbsd_amd64.go
new file mode 100644
index 00000000..52e82bd6
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_netbsd_amd64.go
@@ -0,0 +1,1804 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_netbsd_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+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
+ FDATASYNC = 0x0010
+ FDISKSYNC = 0x0040
+ FD_SETSIZE = 256
+ FFILESYNC = 0x0020
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ GETPASS_7BIT = 0x080
+ GETPASS_BUF_LIMIT = 0x004
+ GETPASS_ECHO = 0x020
+ GETPASS_ECHO_NL = 0x400
+ GETPASS_ECHO_STAR = 0x040
+ GETPASS_FAIL_EOF = 0x002
+ GETPASS_FORCE_LOWER = 0x100
+ GETPASS_FORCE_UPPER = 0x200
+ GETPASS_NEED_TTY = 0x001
+ GETPASS_NO_BEEP = 0x010
+ GETPASS_NO_SIGNAL = 0x008
+ 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
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ NBBY = 8
+ NFDBITS = 32
+ NODEVMAJOR = -1
+ PDP_ENDIAN = 3412
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ R_OK = 0x04
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ 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
+ W_OK = 0x02
+ X_OK = 0x01
+ 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_CS_PATH = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LIB_PTHREAD_TYPES_H = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_O_SC_CLK_TCK = 3
+ X_PC_2_SYMLINKS = 13
+ X_PC_ACL_EXTENDED = 14
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_FILESIZEBITS = 11
+ X_PC_LINK_MAX = 1
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_MIN_HOLE_SIZE = 15
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_SYMLINK_MAX = 12
+ X_PC_SYNC_IO = 10
+ X_PC_VDISABLE = 9
+ X_PDP_ENDIAN = 3412
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_VERSION = 200112
+ X_POSIX_ASYNCHRONOUS_IO = 200112
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CHOWN_RESTRICTED = 1
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = 200112
+ X_POSIX_FSYNC = 1
+ X_POSIX_IPV6 = 0
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 1
+ X_POSIX_MEMLOCK = 1
+ X_POSIX_MEMLOCK_RANGE = 1
+ X_POSIX_MEMORY_PROTECTION = 1
+ X_POSIX_MESSAGE_PASSING = 200112
+ X_POSIX_MONOTONIC_CLOCK = 200112
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = 200112
+ X_POSIX_RAW_SOCKETS = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REGEXP = 1
+ X_POSIX_SEMAPHORES = 0
+ X_POSIX_SHARED_MEMORY_OBJECTS = 0
+ X_POSIX_SHELL = 1
+ X_POSIX_SPAWN = 200809
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_SYNCHRONIZED_IO = 1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = 200112
+ X_POSIX_THREAD_PRIO_PROTECT = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_TIMERS = 200112
+ X_POSIX_VERSION = 200112
+ 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_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 80
+ X_SC_2_PBS_ACCOUNTING = 81
+ X_SC_2_PBS_CHECKPOINT = 82
+ X_SC_2_PBS_LOCATE = 83
+ X_SC_2_PBS_MESSAGE = 84
+ X_SC_2_PBS_TRACK = 85
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_AIO_LISTIO_MAX = 51
+ X_SC_AIO_MAX = 52
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 50
+ X_SC_ATEXIT_MAX = 40
+ X_SC_BARRIERS = 43
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 39
+ X_SC_CLOCK_SELECTION = 49
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUTIME = 90
+ X_SC_DELAYTIMER_MAX = 92
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FSYNC = 29
+ X_SC_GETGR_R_SIZE_MAX = 47
+ X_SC_GETPW_R_SIZE_MAX = 48
+ X_SC_HOST_NAME_MAX = 69
+ X_SC_IOV_MAX = 32
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 37
+ X_SC_MAPPED_FILES = 33
+ X_SC_MEMLOCK = 34
+ X_SC_MEMLOCK_RANGE = 35
+ X_SC_MEMORY_PROTECTION = 36
+ X_SC_MESSAGE_PASSING = 53
+ X_SC_MONOTONIC_CLOCK = 38
+ X_SC_MQ_OPEN_MAX = 54
+ X_SC_MQ_PRIO_MAX = 55
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 1001
+ X_SC_NPROCESSORS_ONLN = 1002
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 28
+ X_SC_PAGE_SIZE = 28
+ X_SC_PASS_MAX = 70
+ X_SC_PHYS_PAGES = 121
+ X_SC_PRIORITY_SCHEDULING = 56
+ X_SC_READER_WRITER_LOCKS = 46
+ X_SC_REALTIME_SIGNALS = 94
+ X_SC_REGEXP = 71
+ X_SC_RE_DUP_MAX = 16
+ X_SC_SAVED_IDS = 7
+ X_SC_SCHED_PRI_MAX = 2003
+ X_SC_SCHED_PRI_MIN = 2002
+ X_SC_SCHED_RT_TS = 2001
+ X_SC_SEMAPHORES = 42
+ X_SC_SEM_NSEMS_MAX = 89
+ X_SC_SHARED_MEMORY_OBJECTS = 87
+ X_SC_SHELL = 72
+ X_SC_SIGQUEUE_MAX = 93
+ X_SC_SPAWN = 86
+ X_SC_SPIN_LOCKS = 45
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 73
+ X_SC_SYNCHRONIZED_IO = 31
+ X_SC_THREADS = 41
+ X_SC_THREAD_ATTR_STACKADDR = 61
+ X_SC_THREAD_ATTR_STACKSIZE = 62
+ X_SC_THREAD_CPUTIME = 91
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 57
+ X_SC_THREAD_KEYS_MAX = 58
+ X_SC_THREAD_PRIORITY_SCHEDULING = 63
+ X_SC_THREAD_PRIO_INHERIT = 64
+ X_SC_THREAD_PRIO_PROTECT = 65
+ X_SC_THREAD_PROCESS_SHARED = 66
+ X_SC_THREAD_SAFE_FUNCTIONS = 67
+ X_SC_THREAD_STACK_MIN = 59
+ X_SC_THREAD_THREADS_MAX = 60
+ X_SC_TIMERS = 44
+ X_SC_TIMER_MAX = 88
+ X_SC_TTY_NAME_MAX = 68
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 74
+ X_SC_V6_ILP32_OFFBIG = 75
+ X_SC_V6_LP64_OFF64 = 76
+ X_SC_V6_LPBIG_OFFBIG = 77
+ X_SC_VERSION = 8
+ X_SC_XOPEN_SHM = 30
+ 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_NULL_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_UNISTD_H_ = 0
+ X_X86_64_BSWAP_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ X_X86_64_TYPES_H_ = 0
+ X_XOPEN_SHM = 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: 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
+
+// $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: 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: 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
+
+// $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>
+
+// Machine type dependent parameters.
+// $NetBSD: types.h,v 1.60 2019/04/06 03:06:24 thorpej 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.
+//
+// @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $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
+
+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: 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 */ // getsubopt(3) external variable
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go b/vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go
new file mode 100644
index 00000000..7a67d9db
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go
@@ -0,0 +1,1094 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_openbsd_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+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
+ F_LOCK = 1
+ F_OK = 0
+ F_TEST = 3
+ F_TLOCK = 2
+ F_ULOCK = 0
+ KBIND_BLOCK_MAX = 2
+ KBIND_DATA_MAX = 24
+ LITTLE_ENDIAN = 1234
+ L_INCR = 1
+ L_SET = 0
+ L_XTND = 2
+ PDP_ENDIAN = 3412
+ R_OK = 0x04
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ W_OK = 0x02
+ X_OK = 0x01
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_CS_PATH = 1
+ X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
+ X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
+ X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4
+ X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
+ X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
+ X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
+ X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
+ X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
+ X_CS_POSIX_V6_LP64_OFF64_LIBS = 10
+ X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
+ X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
+ X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
+ X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 16
+ X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 17
+ X_CS_POSIX_V7_ILP32_OFF32_LIBS = 18
+ X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 19
+ X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 20
+ X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 21
+ X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 22
+ X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 23
+ X_CS_POSIX_V7_LP64_OFF64_LIBS = 24
+ X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 25
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 26
+ X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 27
+ X_CS_POSIX_V7_THREADS_CFLAGS = 28
+ X_CS_POSIX_V7_THREADS_LDFLAGS = 29
+ X_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 30
+ X_CS_V6_ENV = 15
+ X_CS_V7_ENV = 31
+ X_FILE_OFFSET_BITS = 64
+ X_GETOPT_DEFINED_ = 0
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_INTPTR_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PC_2_SYMLINKS = 10
+ X_PC_ALLOC_SIZE_MIN = 11
+ X_PC_ASYNC_IO = 12
+ X_PC_CHOWN_RESTRICTED = 7
+ X_PC_FILESIZEBITS = 13
+ X_PC_LINK_MAX = 1
+ X_PC_MAX_CANON = 2
+ X_PC_MAX_INPUT = 3
+ X_PC_NAME_MAX = 4
+ X_PC_NO_TRUNC = 8
+ X_PC_PATH_MAX = 5
+ X_PC_PIPE_BUF = 6
+ X_PC_PRIO_IO = 14
+ X_PC_REC_INCR_XFER_SIZE = 15
+ X_PC_REC_MAX_XFER_SIZE = 16
+ X_PC_REC_MIN_XFER_SIZE = 17
+ X_PC_REC_XFER_ALIGN = 18
+ X_PC_SYMLINK_MAX = 19
+ X_PC_SYNC_IO = 20
+ X_PC_TIMESTAMP_RESOLUTION = 21
+ X_PC_VDISABLE = 9
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_POSIX2_CHAR_TERM = 1
+ X_POSIX2_C_BIND = 200112
+ X_POSIX2_C_DEV = -1
+ X_POSIX2_FORT_DEV = -1
+ X_POSIX2_FORT_RUN = -1
+ X_POSIX2_LOCALEDEF = -1
+ X_POSIX2_PBS = -1
+ X_POSIX2_PBS_ACCOUNTING = -1
+ X_POSIX2_PBS_CHECKPOINT = -1
+ X_POSIX2_PBS_LOCATE = -1
+ X_POSIX2_PBS_MESSAGE = -1
+ X_POSIX2_PBS_TRACK = -1
+ X_POSIX2_SW_DEV = 200112
+ X_POSIX2_UPE = 200112
+ X_POSIX2_VERSION = 200809
+ X_POSIX_ADVISORY_INFO = -1
+ X_POSIX_ASYNCHRONOUS_IO = -1
+ X_POSIX_ASYNC_IO = -1
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CHOWN_RESTRICTED = 1
+ X_POSIX_CLOCK_SELECTION = -1
+ X_POSIX_CPUTIME = 200809
+ X_POSIX_FSYNC = 200112
+ X_POSIX_IPV6 = 0
+ X_POSIX_JOB_CONTROL = 1
+ X_POSIX_MAPPED_FILES = 200112
+ X_POSIX_MEMLOCK = 200112
+ X_POSIX_MEMLOCK_RANGE = 200112
+ X_POSIX_MEMORY_PROTECTION = 200112
+ X_POSIX_MESSAGE_PASSING = -1
+ X_POSIX_MONOTONIC_CLOCK = 200112
+ X_POSIX_NO_TRUNC = 1
+ X_POSIX_PRIORITIZED_IO = -1
+ X_POSIX_PRIORITY_SCHEDULING = -1
+ X_POSIX_PRIO_IO = -1
+ X_POSIX_RAW_SOCKETS = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_REALTIME_SIGNALS = -1
+ X_POSIX_REGEXP = 1
+ X_POSIX_SAVED_IDS = 1
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SHARED_MEMORY_OBJECTS = 200809
+ X_POSIX_SHELL = 1
+ X_POSIX_SPAWN = 200112
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_SPORADIC_SERVER = -1
+ X_POSIX_SYNCHRONIZED_IO = -1
+ X_POSIX_SYNC_IO = -1
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_ATTR_STACKADDR = 200112
+ X_POSIX_THREAD_ATTR_STACKSIZE = 200112
+ X_POSIX_THREAD_CPUTIME = 200809
+ X_POSIX_THREAD_PRIORITY_SCHEDULING = -1
+ X_POSIX_THREAD_PRIO_INHERIT = -1
+ X_POSIX_THREAD_PRIO_PROTECT = -1
+ X_POSIX_THREAD_PROCESS_SHARED = -1
+ X_POSIX_THREAD_ROBUST_PRIO_INHERIT = -1
+ X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_THREAD_SPORADIC_SERVER = -1
+ X_POSIX_TIMEOUTS = 200112
+ X_POSIX_TIMERS = -1
+ X_POSIX_TRACE = -1
+ X_POSIX_TRACE_EVENT_FILTER = -1
+ X_POSIX_TRACE_INHERIT = -1
+ X_POSIX_TRACE_LOG = -1
+ X_POSIX_TYPED_MEMORY_OBJECTS = -1
+ X_POSIX_V6_ILP32_OFF32 = -1
+ X_POSIX_V6_ILP32_OFFBIG = 0
+ X_POSIX_V6_LP64_OFF64 = 0
+ X_POSIX_V6_LPBIG_OFFBIG = 0
+ X_POSIX_V7_ILP32_OFF32 = -1
+ X_POSIX_V7_ILP32_OFFBIG = 0
+ X_POSIX_V7_LP64_OFF64 = 0
+ X_POSIX_V7_LPBIG_OFFBIG = 0
+ X_POSIX_VDISABLE = 255
+ X_POSIX_VERSION = 200809
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SC_2_CHAR_TERM = 20
+ X_SC_2_C_BIND = 18
+ X_SC_2_C_DEV = 19
+ X_SC_2_FORT_DEV = 21
+ X_SC_2_FORT_RUN = 22
+ X_SC_2_LOCALEDEF = 23
+ X_SC_2_PBS = 35
+ X_SC_2_PBS_ACCOUNTING = 36
+ X_SC_2_PBS_CHECKPOINT = 37
+ X_SC_2_PBS_LOCATE = 38
+ X_SC_2_PBS_MESSAGE = 39
+ X_SC_2_PBS_TRACK = 40
+ X_SC_2_SW_DEV = 24
+ X_SC_2_UPE = 25
+ X_SC_2_VERSION = 17
+ X_SC_ADVISORY_INFO = 41
+ X_SC_AIO_LISTIO_MAX = 42
+ X_SC_AIO_MAX = 43
+ X_SC_AIO_PRIO_DELTA_MAX = 44
+ X_SC_ARG_MAX = 1
+ X_SC_ASYNCHRONOUS_IO = 45
+ X_SC_ATEXIT_MAX = 46
+ X_SC_AVPHYS_PAGES = 501
+ X_SC_BARRIERS = 47
+ X_SC_BC_BASE_MAX = 9
+ X_SC_BC_DIM_MAX = 10
+ X_SC_BC_SCALE_MAX = 11
+ X_SC_BC_STRING_MAX = 12
+ X_SC_CHILD_MAX = 2
+ X_SC_CLK_TCK = 3
+ X_SC_CLOCK_SELECTION = 48
+ X_SC_COLL_WEIGHTS_MAX = 13
+ X_SC_CPUTIME = 49
+ X_SC_DELAYTIMER_MAX = 50
+ X_SC_EXPR_NEST_MAX = 14
+ X_SC_FSYNC = 29
+ X_SC_GETGR_R_SIZE_MAX = 100
+ X_SC_GETPW_R_SIZE_MAX = 101
+ X_SC_HOST_NAME_MAX = 33
+ X_SC_IOV_MAX = 51
+ X_SC_IPV6 = 52
+ X_SC_JOB_CONTROL = 6
+ X_SC_LINE_MAX = 15
+ X_SC_LOGIN_NAME_MAX = 102
+ X_SC_MAPPED_FILES = 53
+ X_SC_MEMLOCK = 54
+ X_SC_MEMLOCK_RANGE = 55
+ X_SC_MEMORY_PROTECTION = 56
+ X_SC_MESSAGE_PASSING = 57
+ X_SC_MONOTONIC_CLOCK = 34
+ X_SC_MQ_OPEN_MAX = 58
+ X_SC_MQ_PRIO_MAX = 59
+ X_SC_NGROUPS_MAX = 4
+ X_SC_NPROCESSORS_CONF = 502
+ X_SC_NPROCESSORS_ONLN = 503
+ X_SC_OPEN_MAX = 5
+ X_SC_PAGESIZE = 28
+ X_SC_PAGE_SIZE = 28
+ X_SC_PHYS_PAGES = 500
+ X_SC_PRIORITIZED_IO = 60
+ X_SC_PRIORITY_SCHEDULING = 61
+ X_SC_RAW_SOCKETS = 62
+ X_SC_READER_WRITER_LOCKS = 63
+ X_SC_REALTIME_SIGNALS = 64
+ X_SC_REGEXP = 65
+ X_SC_RE_DUP_MAX = 16
+ X_SC_RTSIG_MAX = 66
+ X_SC_SAVED_IDS = 7
+ X_SC_SEMAPHORES = 67
+ X_SC_SEM_NSEMS_MAX = 31
+ X_SC_SEM_VALUE_MAX = 32
+ X_SC_SHARED_MEMORY_OBJECTS = 68
+ X_SC_SHELL = 69
+ X_SC_SIGQUEUE_MAX = 70
+ X_SC_SPAWN = 71
+ X_SC_SPIN_LOCKS = 72
+ X_SC_SPORADIC_SERVER = 73
+ X_SC_SS_REPL_MAX = 74
+ X_SC_STREAM_MAX = 26
+ X_SC_SYMLOOP_MAX = 76
+ X_SC_SYNCHRONIZED_IO = 75
+ X_SC_THREADS = 91
+ X_SC_THREAD_ATTR_STACKADDR = 77
+ X_SC_THREAD_ATTR_STACKSIZE = 78
+ X_SC_THREAD_CPUTIME = 79
+ X_SC_THREAD_DESTRUCTOR_ITERATIONS = 80
+ X_SC_THREAD_KEYS_MAX = 81
+ X_SC_THREAD_PRIORITY_SCHEDULING = 84
+ X_SC_THREAD_PRIO_INHERIT = 82
+ X_SC_THREAD_PRIO_PROTECT = 83
+ X_SC_THREAD_PROCESS_SHARED = 85
+ X_SC_THREAD_ROBUST_PRIO_INHERIT = 86
+ X_SC_THREAD_ROBUST_PRIO_PROTECT = 87
+ X_SC_THREAD_SAFE_FUNCTIONS = 103
+ X_SC_THREAD_SPORADIC_SERVER = 88
+ X_SC_THREAD_STACK_MIN = 89
+ X_SC_THREAD_THREADS_MAX = 90
+ X_SC_TIMEOUTS = 92
+ X_SC_TIMERS = 94
+ X_SC_TIMER_MAX = 93
+ X_SC_TRACE = 95
+ X_SC_TRACE_EVENT_FILTER = 96
+ X_SC_TRACE_EVENT_NAME_MAX = 97
+ X_SC_TRACE_INHERIT = 98
+ X_SC_TRACE_LOG = 99
+ X_SC_TRACE_NAME_MAX = 104
+ X_SC_TRACE_SYS_MAX = 105
+ X_SC_TRACE_USER_EVENT_MAX = 106
+ X_SC_TTY_NAME_MAX = 107
+ X_SC_TYPED_MEMORY_OBJECTS = 108
+ X_SC_TZNAME_MAX = 27
+ X_SC_V6_ILP32_OFF32 = 109
+ X_SC_V6_ILP32_OFFBIG = 110
+ X_SC_V6_LP64_OFF64 = 111
+ X_SC_V6_LPBIG_OFFBIG = 112
+ X_SC_V7_ILP32_OFF32 = 113
+ X_SC_V7_ILP32_OFFBIG = 114
+ X_SC_V7_LP64_OFF64 = 115
+ X_SC_V7_LPBIG_OFFBIG = 116
+ X_SC_VERSION = 8
+ X_SC_XOPEN_CRYPT = 117
+ X_SC_XOPEN_ENH_I18N = 118
+ X_SC_XOPEN_LEGACY = 119
+ X_SC_XOPEN_REALTIME = 120
+ X_SC_XOPEN_REALTIME_THREADS = 121
+ X_SC_XOPEN_SHM = 30
+ X_SC_XOPEN_STREAMS = 122
+ X_SC_XOPEN_UNIX = 123
+ X_SC_XOPEN_UUCP = 124
+ X_SC_XOPEN_VERSION = 125
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UNISTD_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ X_UNISTD_H_ = 0
+ X_XOPEN_CRYPT = 1
+ X_XOPEN_ENH_I18N = -1
+ X_XOPEN_LEGACY = -1
+ X_XOPEN_REALTIME = -1
+ X_XOPEN_REALTIME_THREADS = -1
+ X_XOPEN_SHM = 1
+ X_XOPEN_STREAMS = -1
+ X_XOPEN_UNIX = -1
+ X_XOPEN_UUCP = -1
+ Unix = 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 */
+
+// $OpenBSD: unistd.h,v 1.106 2018/07/13 09:25:22 beck Exp $
+// $NetBSD: unistd.h,v 1.26.4.1 1996/05/28 02:31:51 mrg Exp $
+
+// -
+// Copyright (c) 1991 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.
+//
+// @(#)unistd.h 5.13 (Berkeley) 6/17/91
+
+// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $
+
+// Written by Todd C. Miller, September 9, 2016
+// Public domain.
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// $OpenBSD: unistd.h,v 1.31 2015/07/20 00:56:10 guenther Exp $
+// $NetBSD: unistd.h,v 1.10 1994/06/29 06:46:06 cgd Exp $
+
+// Copyright (c) 1989, 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.
+//
+// @(#)unistd.h 8.2 (Berkeley) 1/7/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// Define the POSIX.1 version we target for compliance.
+
+// access function
+
+// whence values for lseek(2)
+
+// old BSD whence values for lseek(2); renamed by POSIX 1003.1
+
+// the parameters argument passed to the __tfork() syscall
+type X__tfork = struct {
+ Ftf_tcb uintptr
+ Ftf_tid uintptr
+ Ftf_stack uintptr
+} /* unistd.h:66:1 */
+
+// the parameters argument for the kbind() syscall
+type X__kbind = struct {
+ Fkb_addr uintptr
+ Fkb_size Size_t
+} /* unistd.h:73:1 */
+
+// the pathconf(2) variable values are part of the ABI
+
+// configurable pathname variables
+
+// POSIX options and option groups we unconditionally do or don't
+// implement. Please keep this list in alphabetical order.
+//
+// Anything which is defined as zero below **must** have an
+// implementation for the corresponding sysconf() which is able to
+// determine conclusively whether or not the feature is supported.
+// Anything which is defined as other than -1 below **must** have
+// complete headers, types, and function declarations as specified by
+// the POSIX standard; however, if the relevant sysconf() function
+// returns -1, the functions may be stubbed out.
+
+// Define the POSIX.2 version we target for compliance.
+
+// the sysconf(3) variable values are part of the ABI
+
+// configurable system variables
+
+// configurable system strings
+
+type Intptr_t = X__intptr_t /* unistd.h:320:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_windows_386.go b/vendor/modernc.org/libc/unistd/unistd_windows_386.go
new file mode 100644
index 00000000..86a9fd0d
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_windows_386.go
@@ -0,0 +1,677 @@
+// Code generated by 'ccgo unistd/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 unistd/unistd_windows_386.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ FTRUNCATE_DEFINED = 0
+ F_OK = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ OLD_P_OVERLAY = 2
+ P_DETACH = 4
+ P_NOWAIT = 1
+ P_NOWAITO = 3
+ P_OVERLAY = 2
+ P_WAIT = 0
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WAIT_CHILD = 0
+ WAIT_GRANDCHILD = 1
+ WIN32 = 1
+ WINNT = 1
+ WIN_PTHREADS_UNISTD_H = 0
+ W_OK = 2
+ X_OK = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_A_ARCH = 0x20
+ X_A_HIDDEN = 0x02
+ X_A_NORMAL = 0x00
+ X_A_RDONLY = 0x01
+ X_A_SUBDIR = 0x10
+ X_A_SYSTEM = 0x04
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_GETPID_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_MEMORY_DEFINED = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_SWAB_DEFINED = 0
+ X_CRT_SYSTEM_DEFINED = 0
+ X_CRT_TERMINATE_DEFINED = 0
+ X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0
+ X_CRT_WSYSTEM_DEFINED = 0
+ X_DEV_T_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_FTRUNCATE = 0
+ X_FILE_OFFSET_BITS_SET_LSEEK = 0
+ 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_CORECRT_STARTUP = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_PROCESS = 0
+ X_INC_STRING = 0
+ X_INC_STRING_S = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IO_H_ = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_NLSCMPERROR = 2147483647
+ X_NLSCMP_DEFINED = 0
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_OLD_P_OVERLAY = 2
+ X_PGLOBAL = 0
+ X_PID_T_ = 0
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CLOCK_SELECTION = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_THREADS = 200112
+ X_POSIX_TIMEOUTS = 200112
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_P_DETACH = 4
+ X_P_NOWAIT = 1
+ X_P_NOWAITO = 3
+ X_P_OVERLAY = 2
+ X_P_WAIT = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIGSET_T_ = 0
+ X_SIZE_T_DEFINED = 0
+ X_SPAWNV_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_UNISTD_H = 0
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WAIT_CHILD = 0
+ X_WAIT_GRANDCHILD = 1
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WConst_return = 0
+ X_WEXEC_DEFINED = 0
+ X_WFINDDATA_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_WIO_DEFINED = 0
+ X_WSPAWN_DEFINED = 0
+ X_WSTRING_DEFINED = 0
+ X_WSTRING_S_DEFINED = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+type X_fsize_t = uint32 /* io.h:29:25 */
+
+type X_finddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]int8
+} /* io.h:35:3 */
+
+type X_finddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]int8
+ F__ccgo_pad1 [4]byte
+} /* io.h:44:3 */
+
+type X_finddata64i32_t = struct {
+ Fattrib uint32
+ 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]int8
+} /* io.h:53:3 */
+
+type X__finddata64_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:62:3 */
+
+type X_wfinddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]Wchar_t
+} /* io.h:94:3 */
+
+type X_wfinddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:103:3 */
+
+type X_wfinddata64i32_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:112:3 */
+
+type X_wfinddata64_t = struct {
+ Fattrib uint32
+ F__ccgo_pad1 [4]byte
+ Ftime_create X__time64_t
+ Ftime_access X__time64_t
+ Ftime_write X__time64_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:121:3 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+type X_PVFV = uintptr /* corecrt_startup.h:20:14 */
+type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
+type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
+
+type X_onexit_table_t1 = struct {
+ F_first uintptr
+ F_last uintptr
+ F_end uintptr
+} /* corecrt_startup.h:24:9 */
+
+type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
+
+type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
+
+// Includes a definition of _pid_t and pid_t
+// *
+// 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 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.
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int32 /* types.h:60:13 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+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
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* types.h:94:1 */
+
+type X_sigset_t = uint32 /* types.h:106:23 */
+
+type X_beginthread_proc_type = uintptr /* process.h:32:16 */
+type X_beginthreadex_proc_type = uintptr /* process.h:33:20 */
+
+type X_tls_callback_type = uintptr /* process.h:61:16 */
+
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Set defines described by the POSIX Threads Extension (1003.1c-1995)
+// _SC_THREADS
+// Basic support for POSIX threads is available. The functions
+//
+// pthread_atfork(),
+// pthread_attr_destroy(),
+// pthread_attr_getdetachstate(),
+// pthread_attr_getschedparam(),
+// pthread_attr_init(),
+// pthread_attr_setdetachstate(),
+// pthread_attr_setschedparam(),
+// pthread_cancel(),
+// pthread_cleanup_push(),
+// pthread_cleanup_pop(),
+// pthread_cond_broadcast(),
+// pthread_cond_destroy(),
+// pthread_cond_init(),
+// pthread_cond_signal(),
+// pthread_cond_timedwait(),
+// pthread_cond_wait(),
+// pthread_condattr_destroy(),
+// pthread_condattr_init(),
+// pthread_create(),
+// pthread_detach(),
+// pthread_equal(),
+// pthread_exit(),
+// pthread_getspecific(),
+// pthread_join(,
+// pthread_key_create(),
+// pthread_key_delete(),
+// pthread_mutex_destroy(),
+// pthread_mutex_init(),
+// pthread_mutex_lock(),
+// pthread_mutex_trylock(),
+// pthread_mutex_unlock(),
+// pthread_mutexattr_destroy(),
+// pthread_mutexattr_init(),
+// pthread_once(),
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init(),
+// pthread_self(),
+// pthread_setcancelstate(),
+// pthread_setcanceltype(),
+// pthread_setspecific(),
+// pthread_testcancel()
+//
+// are present.
+
+// _SC_READER_WRITER_LOCKS
+// This option implies the _POSIX_THREADS option. Conversely, under
+// POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
+//
+// The functions
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init()
+//
+// are present.
+
+// _SC_SPIN_LOCKS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_spin_destroy(),
+// pthread_spin_init(),
+// pthread_spin_lock(),
+// pthread_spin_trylock(),
+// pthread_spin_unlock()
+//
+// are present.
+
+// _SC_BARRIERS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_barrier_destroy(),
+// pthread_barrier_init(),
+// pthread_barrier_wait(),
+// pthread_barrierattr_destroy(),
+// pthread_barrierattr_init()
+//
+// are present.
+
+// _SC_TIMEOUTS
+// The functions
+//
+// mq_timedreceive(), - not supported
+// mq_timedsend(), - not supported
+// posix_trace_timedgetnext_event(), - not supported
+// pthread_mutex_timedlock(),
+// pthread_rwlock_timedrdlock(),
+// pthread_rwlock_timedwrlock(),
+// sem_timedwait(),
+//
+// are present.
+
+// _SC_TIMERS - not supported
+// The functions
+//
+// clock_getres(),
+// clock_gettime(),
+// clock_settime(),
+// nanosleep(),
+// timer_create(),
+// timer_delete(),
+// timer_gettime(),
+// timer_getoverrun(),
+// timer_settime()
+//
+// are present.
+// #undef _POSIX_TIMERS
+
+// _SC_CLOCK_SELECTION
+// This option implies the _POSIX_TIMERS option. The functions
+//
+// pthread_condattr_getclock(),
+// pthread_condattr_setclock(),
+// clock_nanosleep()
+//
+// are present.
+
+// _SC_SEMAPHORES
+// The include file <semaphore.h> is present. The functions
+//
+// sem_close(),
+// sem_destroy(),
+// sem_getvalue(),
+// sem_init(),
+// sem_open(),
+// sem_post(),
+// sem_trywait(),
+// sem_unlink(),
+// sem_wait()
+//
+// are present.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/unistd/unistd_windows_amd64.go b/vendor/modernc.org/libc/unistd/unistd_windows_amd64.go
new file mode 100644
index 00000000..254b38bb
--- /dev/null
+++ b/vendor/modernc.org/libc/unistd/unistd_windows_amd64.go
@@ -0,0 +1,692 @@
+// Code generated by 'ccgo unistd\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 unistd\unistd_windows_amd64.go -pkgname unistd', DO NOT EDIT.
+
+package unistd
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ FTRUNCATE_DEFINED = 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
+ OLD_P_OVERLAY = 2
+ P_DETACH = 4
+ P_NOWAIT = 1
+ P_NOWAITO = 3
+ P_OVERLAY = 2
+ P_WAIT = 0
+ R_OK = 4
+ SEEK_CUR = 1
+ SEEK_END = 2
+ SEEK_SET = 0
+ STDERR_FILENO = 2
+ STDIN_FILENO = 0
+ STDOUT_FILENO = 1
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WAIT_CHILD = 0
+ WAIT_GRANDCHILD = 1
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ WIN_PTHREADS_UNISTD_H = 0
+ W_OK = 2
+ X_OK = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_A_ARCH = 0x20
+ X_A_HIDDEN = 0x02
+ X_A_NORMAL = 0x00
+ X_A_RDONLY = 0x01
+ X_A_SUBDIR = 0x10
+ X_A_SYSTEM = 0x04
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_DIRECTORY_DEFINED = 0
+ X_CRT_GETPID_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_MEMORY_DEFINED = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_SWAB_DEFINED = 0
+ X_CRT_SYSTEM_DEFINED = 0
+ X_CRT_TERMINATE_DEFINED = 0
+ X_CRT_WSYSTEM_DEFINED = 0
+ X_DEV_T_DEFINED = 0
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FILE_OFFSET_BITS_SET_FTRUNCATE = 0
+ X_FILE_OFFSET_BITS_SET_LSEEK = 0
+ X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_FINDDATA_T_DEFINED = 0
+ X_FSIZE_T_DEFINED = 0
+ X_INC_CORECRT_STARTUP = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_PROCESS = 0
+ X_INC_STRING = 0
+ X_INC_STRING_S = 0
+ X_INC_TYPES = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INO_T_DEFINED = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_IO_H_ = 0
+ X_MODE_T_ = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_NLSCMPERROR = 2147483647
+ X_NLSCMP_DEFINED = 0
+ X_OFF64_T_DEFINED = 0
+ X_OFF_T_ = 0
+ X_OFF_T_DEFINED = 0
+ X_OLD_P_OVERLAY = 2
+ X_PGLOBAL = 0
+ X_PID_T_ = 0
+ X_POSIX_BARRIERS = 200112
+ X_POSIX_CLOCK_SELECTION = 200112
+ X_POSIX_READER_WRITER_LOCKS = 200112
+ X_POSIX_SEMAPHORES = 200112
+ X_POSIX_SPIN_LOCKS = 200112
+ X_POSIX_THREADS = 200112
+ X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
+ X_POSIX_TIMEOUTS = 200112
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_P_DETACH = 4
+ X_P_NOWAIT = 1
+ X_P_NOWAITO = 3
+ X_P_OVERLAY = 2
+ X_P_WAIT = 0
+ X_REENTRANT = 1
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIGSET_T_ = 0
+ X_SIZE_T_DEFINED = 0
+ X_SPAWNV_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIMESPEC_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_UNISTD_H = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WAIT_CHILD = 0
+ X_WAIT_GRANDCHILD = 1
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WConst_return = 0
+ X_WEXEC_DEFINED = 0
+ X_WFINDDATA_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+ X_WIO_DEFINED = 0
+ X_WSPAWN_DEFINED = 0
+ X_WSTRING_DEFINED = 0
+ X_WSTRING_S_DEFINED = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+type X_fsize_t = uint32 /* io.h:29:25 */
+
+type X_finddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]int8
+} /* io.h:35:3 */
+
+type X_finddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]int8
+ F__ccgo_pad1 [4]byte
+} /* io.h:44:3 */
+
+type X_finddata64i32_t = struct {
+ Fattrib uint32
+ 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]int8
+} /* io.h:53:3 */
+
+type X__finddata64_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:62:3 */
+
+type X_wfinddata32_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize X_fsize_t
+ Fname [260]Wchar_t
+} /* io.h:94:3 */
+
+type X_wfinddata32i64_t = struct {
+ Fattrib uint32
+ Ftime_create X__time32_t
+ Ftime_access X__time32_t
+ Ftime_write X__time32_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:103:3 */
+
+type X_wfinddata64i32_t = struct {
+ Fattrib uint32
+ 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
+ F__ccgo_pad2 [4]byte
+} /* io.h:112:3 */
+
+type X_wfinddata64_t = struct {
+ Fattrib uint32
+ F__ccgo_pad1 [4]byte
+ Ftime_create X__time64_t
+ Ftime_access X__time64_t
+ Ftime_write X__time64_t
+ Fsize int64
+ Fname [260]Wchar_t
+} /* io.h:121:3 */
+
+type X_off_t = int32 /* _mingw_off_t.h:5:16 */
+type Off32_t = int32 /* _mingw_off_t.h:7:16 */
+
+type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
+type Off64_t = int64 /* _mingw_off_t.h:15:39 */
+
+type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
+
+type X_PVFV = uintptr /* corecrt_startup.h:20:14 */
+type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
+type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
+
+type X_onexit_table_t1 = struct {
+ F_first uintptr
+ F_last uintptr
+ F_end uintptr
+} /* corecrt_startup.h:24:9 */
+
+type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
+
+type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
+
+// Includes a definition of _pid_t and pid_t
+// *
+// 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 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.
+
+type X_ino_t = uint16 /* types.h:43:24 */
+type Ino_t = uint16 /* types.h:45:24 */
+
+type X_dev_t = uint32 /* types.h:51:22 */
+type Dev_t = uint32 /* types.h:53:22 */
+
+type X_pid_t = int64 /* types.h:63:17 */
+
+type Pid_t = X_pid_t /* types.h:68:16 */
+
+type X_mode_t = uint16 /* types.h:74:24 */
+
+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
+ F__ccgo_pad1 [4]byte
+} /* types.h:89:1 */
+
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ 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 */
+
+//
+// Copyright (c) 2011-2016 mingw-w64 project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+// Set defines described by the POSIX Threads Extension (1003.1c-1995)
+// _SC_THREADS
+// Basic support for POSIX threads is available. The functions
+//
+// pthread_atfork(),
+// pthread_attr_destroy(),
+// pthread_attr_getdetachstate(),
+// pthread_attr_getschedparam(),
+// pthread_attr_init(),
+// pthread_attr_setdetachstate(),
+// pthread_attr_setschedparam(),
+// pthread_cancel(),
+// pthread_cleanup_push(),
+// pthread_cleanup_pop(),
+// pthread_cond_broadcast(),
+// pthread_cond_destroy(),
+// pthread_cond_init(),
+// pthread_cond_signal(),
+// pthread_cond_timedwait(),
+// pthread_cond_wait(),
+// pthread_condattr_destroy(),
+// pthread_condattr_init(),
+// pthread_create(),
+// pthread_detach(),
+// pthread_equal(),
+// pthread_exit(),
+// pthread_getspecific(),
+// pthread_join(,
+// pthread_key_create(),
+// pthread_key_delete(),
+// pthread_mutex_destroy(),
+// pthread_mutex_init(),
+// pthread_mutex_lock(),
+// pthread_mutex_trylock(),
+// pthread_mutex_unlock(),
+// pthread_mutexattr_destroy(),
+// pthread_mutexattr_init(),
+// pthread_once(),
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init(),
+// pthread_self(),
+// pthread_setcancelstate(),
+// pthread_setcanceltype(),
+// pthread_setspecific(),
+// pthread_testcancel()
+//
+// are present.
+
+// _SC_READER_WRITER_LOCKS
+// This option implies the _POSIX_THREADS option. Conversely, under
+// POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
+//
+// The functions
+// pthread_rwlock_destroy(),
+// pthread_rwlock_init(),
+// pthread_rwlock_rdlock(),
+// pthread_rwlock_tryrdlock(),
+// pthread_rwlock_trywrlock(),
+// pthread_rwlock_unlock(),
+// pthread_rwlock_wrlock(),
+// pthread_rwlockattr_destroy(),
+// pthread_rwlockattr_init()
+//
+// are present.
+
+// _SC_SPIN_LOCKS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_spin_destroy(),
+// pthread_spin_init(),
+// pthread_spin_lock(),
+// pthread_spin_trylock(),
+// pthread_spin_unlock()
+//
+// are present.
+
+// _SC_BARRIERS
+// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
+// options. The functions
+//
+// pthread_barrier_destroy(),
+// pthread_barrier_init(),
+// pthread_barrier_wait(),
+// pthread_barrierattr_destroy(),
+// pthread_barrierattr_init()
+//
+// are present.
+
+// _SC_THREAD_SAFE_FUNCTIONS
+// Affected functions are
+//
+// readdir_r(),
+// getgrgid_r(),
+// getgrnam_r(),
+// getpwnam_r(),
+// getpwuid_r(),
+// flockfile(),
+// ftrylockfile(),
+// funlockfile(),
+// getc_unlocked(),
+// getchar_unlocked(),
+// putc_unlocked(),
+// putchar_unlocked(),
+// strerror_r(),
+
+// _SC_TIMEOUTS
+// The functions
+//
+// mq_timedreceive(), - not supported
+// mq_timedsend(), - not supported
+// posix_trace_timedgetnext_event(), - not supported
+// pthread_mutex_timedlock(),
+// pthread_rwlock_timedrdlock(),
+// pthread_rwlock_timedwrlock(),
+// sem_timedwait(),
+//
+// are present.
+
+// _SC_TIMERS - not supported
+// The functions
+//
+// clock_getres(),
+// clock_gettime(),
+// clock_settime(),
+// nanosleep(),
+// timer_create(),
+// timer_delete(),
+// timer_gettime(),
+// timer_getoverrun(),
+// timer_settime()
+//
+// are present.
+// #undef _POSIX_TIMERS
+
+// _SC_CLOCK_SELECTION
+// This option implies the _POSIX_TIMERS option. The functions
+//
+// pthread_condattr_getclock(),
+// pthread_condattr_setclock(),
+// clock_nanosleep()
+//
+// are present.
+
+// _SC_SEMAPHORES
+// The include file <semaphore.h> is present. The functions
+//
+// sem_close(),
+// sem_destroy(),
+// sem_getvalue(),
+// sem_init(),
+// sem_open(),
+// sem_post(),
+// sem_trywait(),
+// sem_unlink(),
+// sem_wait()
+//
+// are present.
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/capi_darwin_amd64.go b/vendor/modernc.org/libc/utime/capi_darwin_amd64.go
new file mode 100644
index 00000000..0c774516
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo utime/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 utime/utime_darwin_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/utime/capi_darwin_arm64.go b/vendor/modernc.org/libc/utime/capi_darwin_arm64.go
new file mode 100644
index 00000000..c46b0510
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_darwin_arm64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_freebsd_386.go b/vendor/modernc.org/libc/utime/capi_freebsd_386.go
new file mode 100644
index 00000000..73ceebf9
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_freebsd_386.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_freebsd_amd64.go b/vendor/modernc.org/libc/utime/capi_freebsd_amd64.go
new file mode 100644
index 00000000..88dc9f35
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_freebsd_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_linux_386.go b/vendor/modernc.org/libc/utime/capi_linux_386.go
new file mode 100644
index 00000000..cd94b447
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_386.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_linux_amd64.go b/vendor/modernc.org/libc/utime/capi_linux_amd64.go
new file mode 100644
index 00000000..381f6bcc
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_linux_arm.go b/vendor/modernc.org/libc/utime/capi_linux_arm.go
new file mode 100644
index 00000000..2bb2f7e4
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_arm.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_linux_arm64.go b/vendor/modernc.org/libc/utime/capi_linux_arm64.go
new file mode 100644
index 00000000..c9c417de
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_arm64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_linux_s390x.go b/vendor/modernc.org/libc/utime/capi_linux_s390x.go
new file mode 100644
index 00000000..4d6513ab
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_s390x.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_netbsd_amd64.go b/vendor/modernc.org/libc/utime/capi_netbsd_amd64.go
new file mode 100644
index 00000000..bddece8e
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_netbsd_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_openbsd_amd64.go b/vendor/modernc.org/libc/utime/capi_openbsd_amd64.go
new file mode 100644
index 00000000..b27f5a5f
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_openbsd_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_windows_386.go b/vendor/modernc.org/libc/utime/capi_windows_386.go
new file mode 100644
index 00000000..6b156a0c
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime/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 utime/utime_windows_386.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/capi_windows_amd64.go b/vendor/modernc.org/libc/utime/capi_windows_amd64.go
new file mode 100644
index 00000000..01667d3f
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo utime\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 utime\utime_windows_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/utime/utime_darwin_amd64.go b/vendor/modernc.org/libc/utime/utime_darwin_amd64.go
new file mode 100644
index 00000000..1fde870a
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_darwin_amd64.go
@@ -0,0 +1,1352 @@
+// Code generated by 'ccgo utime/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 utime/utime_darwin_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_UTIME_H_ = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)utime.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:87:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:97:33 */
+type User_size_t = U_int64_t /* types.h:98:33 */
+type User_ssize_t = Int64_t /* types.h:99:33 */
+type User_long_t = Int64_t /* types.h:100:33 */
+type User_ulong_t = U_int64_t /* types.h:101:33 */
+type User_time_t = Int64_t /* types.h:102:33 */
+type User_off_t = Int64_t /* types.h:103:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:111:33 */
+
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:64:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_darwin_arm64.go b/vendor/modernc.org/libc/utime/utime_darwin_arm64.go
new file mode 100644
index 00000000..59dba228
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_darwin_arm64.go
@@ -0,0 +1,1292 @@
+// Code generated by 'ccgo utime/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 utime/utime_darwin_arm64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ARM_MACHTYPES_H_ = 0
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE_TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_INT16_T = 0
+ X_INT32_T = 0
+ X_INT64_T = 0
+ X_INT8_T = 0
+ X_INTPTR_T = 0
+ X_LP64 = 1
+ X_MACHTYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T = 0
+ X_UINTPTR_T = 0
+ X_UTIME_H_ = 0
+ X_U_INT16_T = 0
+ X_U_INT32_T = 0
+ X_U_INT64_T = 0
+ X_U_INT8_T = 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 */
+
+// Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.
+//
+// @(#)utime.h 8.1 (Berkeley) 6/2/93
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+// Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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.3 (Berkeley) 1/5/94
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Basic integral types. Omit the typedef if
+// not possible for a machine/compiler combination.
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int8_t = int8 /* _int8_t.h:30:31 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int16_t = int16 /* _int16_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int32_t = int32 /* _int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Int64_t = int64 /* _int64_t.h:30:33 */
+
+// Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int8_t = uint8 /* _u_int8_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int16_t = uint16 /* _u_int16_t.h:30:41 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int32_t = uint32 /* _u_int32_t.h:30:33 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type U_int64_t = uint64 /* _u_int64_t.h:30:33 */
+
+type Register_t = Int64_t /* types.h:66:33 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+
+type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */
+
+// These types are used for reserving the largest possible size.
+type User_addr_t = U_int64_t /* types.h:77:33 */
+type User_size_t = U_int64_t /* types.h:78:33 */
+type User_ssize_t = Int64_t /* types.h:79:33 */
+type User_long_t = Int64_t /* types.h:80:33 */
+type User_ulong_t = U_int64_t /* types.h:81:33 */
+type User_time_t = Int64_t /* types.h:82:33 */
+type User_off_t = Int64_t /* types.h:83:33 */
+
+// This defines the size of syscall arguments after copying into the kernel:
+type Syscall_arg_t = U_int64_t /* types.h:104:33 */
+
+type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:64:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_freebsd_386.go b/vendor/modernc.org/libc/utime/utime_freebsd_386.go
new file mode 100644
index 00000000..70f17025
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_freebsd_386.go
@@ -0,0 +1,598 @@
+// Code generated by 'ccgo utime/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 utime/utime_freebsd_386.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_UTIME_H_ = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1990, 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.
+//
+// @(#)utime.h 8.1 (Berkeley) 6/2/93
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Time_t = X__time_t /* utime.h:42:18 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:46:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_freebsd_amd64.go b/vendor/modernc.org/libc/utime/utime_freebsd_amd64.go
new file mode 100644
index 00000000..f0087917
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_freebsd_amd64.go
@@ -0,0 +1,603 @@
+// Code generated by 'ccgo utime/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 utime/utime_freebsd_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DECLARED = 0
+ X_UTIME_H_ = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1990, 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.
+//
+// @(#)utime.h 8.1 (Berkeley) 6/2/93
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */ // compatibility w/GNU headers
+
+// When the following macro is defined, the system uses 64-bit inode numbers.
+// Programs can use this to avoid including <sys/param.h>, with its associated
+// namespace pollution.
+
+type Time_t = X__time_t /* utime.h:42:18 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:46:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_linux_386.go b/vendor/modernc.org/libc/utime/utime_linux_386.go
new file mode 100644
index 00000000..3eb9961f
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_linux_386.go
@@ -0,0 +1,761 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_386.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ATFILE_SOURCE = 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_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_UTIME_H = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// Structure describing file times.
+type Utimbuf = struct {
+ Factime X__time_t
+ Fmodtime X__time_t
+} /* utime.h:36:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_linux_amd64.go b/vendor/modernc.org/libc/utime/utime_linux_amd64.go
new file mode 100644
index 00000000..049de230
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_linux_amd64.go
@@ -0,0 +1,779 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ATFILE_SOURCE = 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_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_UTIME_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// Structure describing file times.
+type Utimbuf = struct {
+ Factime X__time_t
+ Fmodtime X__time_t
+} /* utime.h:36:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_linux_arm.go b/vendor/modernc.org/libc/utime/utime_linux_arm.go
new file mode 100644
index 00000000..67a93eb5
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_linux_arm.go
@@ -0,0 +1,820 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_arm.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ATFILE_SOURCE = 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_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_UTIME_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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-2020 Free Software 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/>.
+
+// POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// Structure describing file times.
+type Utimbuf = struct {
+ Factime X__time_t
+ Fmodtime X__time_t
+} /* utime.h:36:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_linux_arm64.go b/vendor/modernc.org/libc/utime/utime_linux_arm64.go
new file mode 100644
index 00000000..6ac91f2b
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_linux_arm64.go
@@ -0,0 +1,847 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_arm64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ATFILE_SOURCE = 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_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_UTIME_H = 1
+ Linux = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// Structure describing file times.
+type Utimbuf = struct {
+ Factime X__time_t
+ Fmodtime X__time_t
+} /* utime.h:36:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_linux_s390x.go b/vendor/modernc.org/libc/utime/utime_linux_s390x.go
new file mode 100644
index 00000000..24dca586
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_linux_s390x.go
@@ -0,0 +1,778 @@
+// Code generated by 'ccgo utime/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 utime/utime_linux_s390x.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_ATFILE_SOURCE = 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_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_UTIME_H = 1
+ Linux = 1
+ Unix = 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 */
+
+// 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
+// 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/>.
+
+// POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// Structure describing file times.
+type Utimbuf = struct {
+ Factime X__time_t
+ Fmodtime X__time_t
+} /* utime.h:36:1 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_netbsd_amd64.go b/vendor/modernc.org/libc/utime/utime_netbsd_amd64.go
new file mode 100644
index 00000000..56559238
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_netbsd_amd64.go
@@ -0,0 +1,144 @@
+// Code generated by 'ccgo utime/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 utime/utime_netbsd_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_AMD64_INT_TYPES_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ 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_UTIME_H_ = 0
+ X_X86_64_CDEFS_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: 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 Time_t = X__int64_t /* utime.h:40:22 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:44:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_openbsd_amd64.go b/vendor/modernc.org/libc/utime/utime_openbsd_amd64.go
new file mode 100644
index 00000000..abc6fbee
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_openbsd_amd64.go
@@ -0,0 +1,425 @@
+// Code generated by 'ccgo utime/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 utime/utime_openbsd_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_RET_PROTECTOR = 1
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UTIME_H_ = 0
+ Unix = 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 */
+
+// $OpenBSD: utime.h,v 1.7 2013/04/02 05:16:14 guenther Exp $
+// $NetBSD: utime.h,v 1.3 1994/10/26 00:56:39 cgd 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.
+//
+// @(#)utime.h 5.4 (Berkeley) 4/3/91
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+type Time_t = X__time_t /* utime.h:43:18 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:46:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_windows_386.go b/vendor/modernc.org/libc/utime/utime_windows_386.go
new file mode 100644
index 00000000..4fb4cfc0
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_windows_386.go
@@ -0,0 +1,302 @@
+// Code generated by 'ccgo utime/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 utime/utime_windows_386.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_UTIME = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_IX86 = 600
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_USE_32BIT_TIME_T = 0
+ X_UTIMBUF_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+type X_utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:58:3 */
+
+type X__utimbuf32 = struct {
+ Factime X__time32_t
+ Fmodtime X__time32_t
+} /* utime.h:63:3 */
+
+type X__utimbuf64 = struct {
+ Factime X__time64_t
+ Fmodtime X__time64_t
+} /* utime.h:68:3 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:74:3 */
+
+type Utimbuf32 = struct {
+ Factime X__time32_t
+ Fmodtime X__time32_t
+} /* utime.h:79:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/utime/utime_windows_amd64.go b/vendor/modernc.org/libc/utime/utime_windows_amd64.go
new file mode 100644
index 00000000..b572d0a9
--- /dev/null
+++ b/vendor/modernc.org/libc/utime/utime_windows_amd64.go
@@ -0,0 +1,301 @@
+// Code generated by 'ccgo utime\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 utime\utime_windows_amd64.go -pkgname utime', DO NOT EDIT.
+
+package utime
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ 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
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_CONST_RETURN = 0
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_UTIME = 0
+ X_INC_VADEFS = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_PGLOBAL = 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_SIZE_T_DEFINED = 0
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_UTIMBUF_DEFINED = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+type X_utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:58:3 */
+
+type X__utimbuf32 = struct {
+ Factime X__time32_t
+ Fmodtime X__time32_t
+} /* utime.h:63:3 */
+
+type X__utimbuf64 = struct {
+ Factime X__time64_t
+ Fmodtime X__time64_t
+} /* utime.h:68:3 */
+
+type Utimbuf = struct {
+ Factime Time_t
+ Fmodtime Time_t
+} /* utime.h:74:3 */
+
+type Utimbuf32 = struct {
+ Factime X__time32_t
+ Fmodtime X__time32_t
+} /* utime.h:79:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/capi_freebsd_386.go b/vendor/modernc.org/libc/uuid/capi_freebsd_386.go
new file mode 100644
index 00000000..96303a7b
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/capi_freebsd_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_freebsd_386.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go b/vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go
new file mode 100644
index 00000000..6b43287b
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_freebsd_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go b/vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go
new file mode 100644
index 00000000..fdb93bc2
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_netbsd_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go b/vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go
new file mode 100644
index 00000000..9a605840
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_openbsd_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go
new file mode 100644
index 00000000..d4db5114
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_darwin_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go
new file mode 100644
index 00000000..3c9d0135
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_darwin_arm64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_linux_386.go b/vendor/modernc.org/libc/uuid/uuid/capi_linux_386.go
new file mode 100644
index 00000000..d663f55d
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_386.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_linux_amd64.go b/vendor/modernc.org/libc/uuid/uuid/capi_linux_amd64.go
new file mode 100644
index 00000000..1439e9a1
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_linux_arm.go b/vendor/modernc.org/libc/uuid/uuid/capi_linux_arm.go
new file mode 100644
index 00000000..ade9414e
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_arm.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_linux_arm64.go b/vendor/modernc.org/libc/uuid/uuid/capi_linux_arm64.go
new file mode 100644
index 00000000..8fee6f78
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_arm64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_linux_s390x.go b/vendor/modernc.org/libc/uuid/uuid/capi_linux_s390x.go
new file mode 100644
index 00000000..41aa499d
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_s390x.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go
new file mode 100644
index 00000000..da7407bc
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go
@@ -0,0 +1,811 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_darwin_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UUID_STRING_T = 0
+ X_UUID_T = 0
+ X_UUID_UUID_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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go
new file mode 100644
index 00000000..595e17f2
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go
@@ -0,0 +1,797 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_darwin_arm64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CDEFS_H_ = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_UUID_STRING_T = 0
+ X_UUID_T = 0
+ X_UUID_UUID_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 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type Uuid_t = X__darwin_uuid_t /* _uuid_t.h:31:25 */
+
+type Uuid_string_t = X__darwin_uuid_string_t /* uuid.h:43:33 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_linux_386.go b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_386.go
new file mode 100644
index 00000000..056cba55
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_386.go
@@ -0,0 +1,1956 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_386.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ UUID_STR_LEN = 37
+ UUID_TYPE_DCE_MD5 = 3
+ UUID_TYPE_DCE_RANDOM = 4
+ UUID_TYPE_DCE_SECURITY = 2
+ UUID_TYPE_DCE_SHA1 = 5
+ UUID_TYPE_DCE_TIME = 1
+ UUID_TYPE_MASK = 0xf
+ UUID_TYPE_SHIFT = 4
+ UUID_VARIANT_DCE = 1
+ UUID_VARIANT_MASK = 0x7
+ UUID_VARIANT_MICROSOFT = 2
+ UUID_VARIANT_NCS = 0
+ UUID_VARIANT_OTHER = 3
+ UUID_VARIANT_SHIFT = 5
+ 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_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_TIME_H = 1
+ X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UUID_UUID_H = 0
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// Values for the first argument to `getitimer' and `setitimer'.
+const ( /* time.h:89:1: */
+ // Timers run in real time.
+ ITIMER_REAL = 0
+ // Timers run only when the process is executing.
+ ITIMER_VIRTUAL = 1
+ // Timers run when the process is executing and when
+ // the system is executing on behalf of the process.
+ ITIMER_PROF = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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.
+
+// 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
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__kind int32
+ F__nusers uint32
+ F__20 struct {
+ F__ccgo_pad1 [0]uint32
+ F__elision_data struct {
+ F__espins int16
+ F__eelision int16
+ }
+ }
+} /* 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// 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
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// Structure crudely representing a timezone.
+// This is obsolete and should never be used.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:52:1 */
+
+// Type of the second argument to `getitimer' and
+// the second and third arguments `setitimer'.
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+} /* time.h:105:1 */
+
+type X__itimer_which_t = int32 /* time.h:118:13 */
+
+// Convenience macros for operations on timevals.
+// NOTE: `timercmp' does not work for >= or <=.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+type Uuid_t = [16]uint8 /* uuid.h:44:23 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_linux_amd64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_amd64.go
new file mode 100644
index 00000000..84c78a0e
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_amd64.go
@@ -0,0 +1,1975 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ UUID_STR_LEN = 37
+ UUID_TYPE_DCE_MD5 = 3
+ UUID_TYPE_DCE_RANDOM = 4
+ UUID_TYPE_DCE_SECURITY = 2
+ UUID_TYPE_DCE_SHA1 = 5
+ UUID_TYPE_DCE_TIME = 1
+ UUID_TYPE_MASK = 0xf
+ UUID_TYPE_SHIFT = 4
+ UUID_VARIANT_DCE = 1
+ UUID_VARIANT_MASK = 0x7
+ UUID_VARIANT_MICROSOFT = 2
+ UUID_VARIANT_NCS = 0
+ UUID_VARIANT_OTHER = 3
+ UUID_VARIANT_SHIFT = 5
+ 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_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_TIME_H = 1
+ X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UUID_UUID_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Values for the first argument to `getitimer' and `setitimer'.
+const ( /* time.h:89:1: */
+ // Timers run in real time.
+ ITIMER_REAL = 0
+ // Timers run only when the process is executing.
+ ITIMER_VIRTUAL = 1
+ // Timers run when the process is executing and when
+ // the system is executing on behalf of the process.
+ ITIMER_PROF = 2
+)
+
+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 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// 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.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
+} /* 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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// 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
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// Structure crudely representing a timezone.
+// This is obsolete and should never be used.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:52:1 */
+
+// Type of the second argument to `getitimer' and
+// the second and third arguments `setitimer'.
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+} /* time.h:105:1 */
+
+type X__itimer_which_t = int32 /* time.h:118:13 */
+
+// Convenience macros for operations on timevals.
+// NOTE: `timercmp' does not work for >= or <=.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+type Uuid_t = [16]uint8 /* uuid.h:44:23 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm.go b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm.go
new file mode 100644
index 00000000..8a7b6515
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm.go
@@ -0,0 +1,2066 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_arm.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ UUID_STR_LEN = 37
+ UUID_TYPE_DCE_MD5 = 3
+ UUID_TYPE_DCE_RANDOM = 4
+ UUID_TYPE_DCE_SECURITY = 2
+ UUID_TYPE_DCE_SHA1 = 5
+ UUID_TYPE_DCE_TIME = 1
+ UUID_TYPE_MASK = 0xf
+ UUID_TYPE_SHIFT = 4
+ UUID_VARIANT_DCE = 1
+ UUID_VARIANT_MASK = 0x7
+ UUID_VARIANT_MICROSOFT = 2
+ UUID_VARIANT_NCS = 0
+ UUID_VARIANT_OTHER = 3
+ UUID_VARIANT_SHIFT = 5
+ 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_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_SIZET_ = 0
+ X_SIZE_T = 0
+ X_SIZE_T_ = 0
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_TIME_H = 1
+ X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UUID_UUID_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Values for the first argument to `getitimer' and `setitimer'.
+const ( /* time.h:89:1: */
+ // Timers run in real time.
+ ITIMER_REAL = 0
+ // Timers run only when the process is executing.
+ ITIMER_VIRTUAL = 1
+ // Timers run when the process is executing and when
+ // the system is executing on behalf of the process.
+ ITIMER_PROF = 2
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint32 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int32 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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/>.
+
+// 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:
+//
+// __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_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/>.
+
+// 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/>.
+
+// Generic struct for both POSIX read-write lock. New ports are expected
+// to use the default layout, however archictetures can redefine it to add
+// arch-specific extensions (such as lock-elision). The struct have a size
+// of 32 bytes on both LP32 and LP64 architectures.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__pad1 uint8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:29:1 */
+
+// Common definition of pthread_cond_t.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [36]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// 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
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// Structure crudely representing a timezone.
+// This is obsolete and should never be used.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:52:1 */
+
+// Type of the second argument to `getitimer' and
+// the second and third arguments `setitimer'.
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+} /* time.h:105:1 */
+
+type X__itimer_which_t = int32 /* time.h:118:13 */
+
+// Convenience macros for operations on timevals.
+// NOTE: `timercmp' does not work for >= or <=.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+ Ftm_gmtoff int32
+ Ftm_zone uintptr
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+type Uuid_t = [16]uint8 /* uuid.h:44:23 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm64.go
new file mode 100644
index 00000000..e3d618b6
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_arm64.go
@@ -0,0 +1,2078 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_arm64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ UUID_STR_LEN = 37
+ UUID_TYPE_DCE_MD5 = 3
+ UUID_TYPE_DCE_RANDOM = 4
+ UUID_TYPE_DCE_SECURITY = 2
+ UUID_TYPE_DCE_SHA1 = 5
+ UUID_TYPE_DCE_TIME = 1
+ UUID_TYPE_MASK = 0xf
+ UUID_TYPE_SHIFT = 4
+ UUID_VARIANT_DCE = 1
+ UUID_VARIANT_MASK = 0x7
+ UUID_VARIANT_MICROSOFT = 2
+ UUID_VARIANT_NCS = 0
+ UUID_VARIANT_OTHER = 3
+ UUID_VARIANT_SHIFT = 5
+ 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_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_TIME_H = 1
+ X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UUID_UUID_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Values for the first argument to `getitimer' and `setitimer'.
+const ( /* time.h:89:1: */
+ // Timers run in real time.
+ ITIMER_REAL = 0
+ // Timers run only when the process is executing.
+ ITIMER_VIRTUAL = 1
+ // Timers run when the process is executing and when
+ // the system is executing on behalf of the process.
+ ITIMER_PROF = 2
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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__nusers uint32
+ F__kind int32
+ F__spins int32
+ F__list X__pthread_list_t
+} /* struct_mutex.h:27:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ 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
+ F__ccgo_pad1 [8]byte
+} /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// 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
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// Structure crudely representing a timezone.
+// This is obsolete and should never be used.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:52:1 */
+
+// Type of the second argument to `getitimer' and
+// the second and third arguments `setitimer'.
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+} /* time.h:105:1 */
+
+type X__itimer_which_t = int32 /* time.h:118:13 */
+
+// Convenience macros for operations on timevals.
+// NOTE: `timercmp' does not work for >= or <=.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+type Uuid_t = [16]uint8 /* uuid.h:44:23 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_linux_s390x.go b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_s390x.go
new file mode 100644
index 00000000..0661806f
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid/uuid_linux_s390x.go
@@ -0,0 +1,1972 @@
+// Code generated by 'ccgo uuid/uuid/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 uuid/uuid/uuid_linux_s390x.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 4321
+ CLOCK_BOOTTIME = 7
+ CLOCK_BOOTTIME_ALARM = 9
+ CLOCK_MONOTONIC = 1
+ CLOCK_MONOTONIC_COARSE = 6
+ CLOCK_MONOTONIC_RAW = 4
+ CLOCK_PROCESS_CPUTIME_ID = 2
+ CLOCK_REALTIME = 0
+ CLOCK_REALTIME_ALARM = 8
+ CLOCK_REALTIME_COARSE = 5
+ CLOCK_TAI = 11
+ CLOCK_THREAD_CPUTIME_ID = 3
+ FD_SETSIZE = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ TIMER_ABSTIME = 1
+ TIME_UTC = 1
+ UUID_STR_LEN = 37
+ UUID_TYPE_DCE_MD5 = 3
+ UUID_TYPE_DCE_RANDOM = 4
+ UUID_TYPE_DCE_SECURITY = 2
+ UUID_TYPE_DCE_SHA1 = 5
+ UUID_TYPE_DCE_TIME = 1
+ UUID_TYPE_MASK = 0xf
+ UUID_TYPE_SHIFT = 4
+ UUID_VARIANT_DCE = 1
+ UUID_VARIANT_MASK = 0x7
+ UUID_VARIANT_MICROSOFT = 2
+ UUID_VARIANT_NCS = 0
+ UUID_VARIANT_OTHER = 3
+ UUID_VARIANT_SHIFT = 5
+ 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_TIME_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_UINTN_IDENTITY_H = 1
+ X_BSD_SIZE_T_ = 0
+ X_BSD_SIZE_T_DEFINED_ = 0
+ X_DEFAULT_SOURCE = 1
+ X_ENDIAN_H = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_GCC_SIZE_T = 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
+ X_SIZE_T_DECLARED = 0
+ X_SIZE_T_DEFINED = 0
+ X_SIZE_T_DEFINED_ = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_SELECT_H = 1
+ X_SYS_SIZE_T_H = 0
+ X_SYS_TIME_H = 1
+ X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
+ X_THREAD_SHARED_TYPES_H = 1
+ X_TIME_H = 1
+ X_T_SIZE = 0
+ X_T_SIZE_ = 0
+ X_UUID_UUID_H = 0
+ Linux = 1
+ Unix = 1
+)
+
+// Values for the first argument to `getitimer' and `setitimer'.
+const ( /* time.h:89:1: */
+ // Timers run in real time.
+ ITIMER_REAL = 0
+ // Timers run only when the process is executing.
+ ITIMER_VIRTUAL = 1
+ // Timers run when the process is executing and when
+ // the system is executing on behalf of the process.
+ ITIMER_PROF = 2
+)
+
+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 */
+
+// Public include file for the UUID library
+//
+// Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
+//
+// %Begin-Header%
+// 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, and the entire permission notice in its entirety,
+// including the disclaimer of warranties.
+// 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. The name of the author may not be used to endorse or promote
+// products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+// WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+// %End-Header%
+
+// 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
+// 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/>.
+
+// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+type U_int = X__u_int /* types.h:35:17 */
+type U_long = X__u_long /* types.h:36:18 */
+type Quad_t = X__quad_t /* types.h:37:18 */
+type U_quad_t = X__u_quad_t /* types.h:38:20 */
+type Fsid_t = X__fsid_t /* types.h:39:18 */
+type Loff_t = X__loff_t /* types.h:42:18 */
+
+type Ino_t = X__ino64_t /* types.h:49:19 */
+
+type Dev_t = X__dev_t /* types.h:59:17 */
+
+type Gid_t = X__gid_t /* types.h:64:17 */
+
+type Mode_t = X__mode_t /* types.h:69:18 */
+
+type Nlink_t = X__nlink_t /* types.h:74:19 */
+
+type Uid_t = X__uid_t /* types.h:79:17 */
+
+type Off_t = X__off64_t /* types.h:87:19 */
+
+type Pid_t = X__pid_t /* types.h:97:17 */
+
+type Id_t = X__id_t /* types.h:103:16 */
+
+type Ssize_t = X__ssize_t /* types.h:108:19 */
+
+type Daddr_t = X__daddr_t /* types.h:114:19 */
+type Caddr_t = X__caddr_t /* types.h:115:19 */
+
+type Key_t = X__key_t /* types.h:121:17 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `clock'.
+type Clock_t = X__clock_t /* clock_t.h:7:19 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Clock ID used in clock and timer functions.
+type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Returned by `time'.
+type Time_t = X__time_t /* time_t.h:7:18 */
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// 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 */
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// Old compatibility names for C types.
+type Ulong = uint64 /* types.h:148:27 */
+type Ushort = uint16 /* types.h:149:28 */
+type Uint = uint32 /* types.h:150:22 */
+
+// These size-specific names are used by some of the inet code.
+
+// Define intN_t types.
+// Copyright (C) 2017-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
+type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
+type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
+type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
+
+// 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:164:13 */
+
+// It also defines `fd_set' and the FD_* macros for `select'.
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// Copyright (C) 1996-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// 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
+// 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/>.
+
+// Get definition of needed basic types.
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// Get __FD_* definitions.
+// 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
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We don't use `memset' because this would require a prototype and
+// the array isn't too big.
+
+// Get sigset_t.
+
+type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
+
+// A set of signals to be blocked, unblocked, or waited for.
+type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
+
+// Get definition of timer specification structures.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// A time value that is accurate to the nearest
+// microsecond but also has a range of years.
+type Timeval = struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+} /* struct_timeval.h:8:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// 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:10:1 */
+
+type Suseconds_t = X__suseconds_t /* select.h:43:23 */
+
+// The fd_set member is required to be an array of longs.
+type X__fd_mask = int64 /* select.h:49:18 */
+
+// Some versions of <linux/posix_types.h> define this macros.
+// It's easier to assume 8-bit bytes than to get CHAR_BIT.
+
+// fd_set for select and pselect.
+type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
+
+// Maximum number of file descriptors in `fd_set'.
+
+// Sometimes the fd_set member is assumed to have this type.
+type Fd_mask = X__fd_mask /* select.h:77:19 */
+
+// Define some inlines helping to catch common problems.
+
+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: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-2020 Free Software 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_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:
+//
+// __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: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.
+
+// 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
+ F__count uint32
+ F__owner int32
+ F__nusers uint32
+ F__kind int32
+ F__spins int16
+ F__elision int16
+ F__list X__pthread_list_t
+} /* struct_mutex.h:22:1 */
+
+// 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.
+
+type X__pthread_cond_s = struct {
+ F__0 struct{ F__wseq uint64 }
+ F__8 struct{ F__g1_start uint64 }
+ F__g_refs [2]uint32
+ F__g_size [2]uint32
+ F__g1_orig_size uint32
+ F__wrefs uint32
+ F__g_signals [2]uint32
+} /* thread-shared-types.h:92:1 */
+
+// Thread identifiers. The structure of the attribute type is not
+// exposed on purpose.
+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 {
+ 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 {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:45:3 */
+
+// Keys for thread-specific data
+type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
+
+// Once-only execution
+type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
+
+type Pthread_attr_t1 = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [56]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 } /* pthreadtypes.h:72:3 */
+
+type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
+
+// Data structure for reader-writer lock variable handling. The
+// structure of the attribute type is deliberately not exposed.
+type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
+
+type Pthread_rwlockattr_t = struct {
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
+} /* pthreadtypes.h:97:3 */
+
+// POSIX spinlock data type.
+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 {
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
+} /* pthreadtypes.h:112:3 */
+
+type Pthread_barrierattr_t = struct {
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
+} /* pthreadtypes.h:118:3 */
+
+// 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
+// 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) 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
+// 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/>.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// `fd_set' type and related macros, and `select'/`pselect' declarations.
+// 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
+// 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/>.
+
+// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
+
+// Structure crudely representing a timezone.
+// This is obsolete and should never be used.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:52:1 */
+
+// Type of the second argument to `getitimer' and
+// the second and third arguments `setitimer'.
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_usec X__suseconds_t
+ }
+} /* time.h:105:1 */
+
+type X__itimer_which_t = int32 /* time.h:118:13 */
+
+// Convenience macros for operations on timevals.
+// NOTE: `timercmp' does not work for >= or <=.
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.23 Date and time <time.h>
+
+// 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
+// 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) 1989-2020 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC 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.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+//
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+// ISO C Standard: 7.17 Common definitions <stddef.h>
+
+// Any one of these symbols __need_* means that GNU libc
+// wants us just to define one data type. So don't define
+// the symbols that indicate this file's entire job has been done.
+
+// This avoids lossage on SunOS but only if stdtypes.h comes first.
+// There's no way to win with the other order! Sun lossage.
+
+// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
+// Just ignore it.
+
+// On VxWorks, <type/vxTypesBase.h> may have defined macros like
+// _TYPE_size_t which will typedef size_t. fixincludes patched the
+// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
+// not defined, and so that defining this macro defines _GCC_SIZE_T.
+// If we find that the macros are still defined at this point, we must
+// invoke them so that the type is defined as expected.
+
+// In case nobody has defined these types, but we aren't running under
+// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
+// __WCHAR_TYPE__ have reasonable values. This can happen if the
+// parts of GCC is compiled by an older compiler, that actually
+// include gstddef.h, such as collect2.
+
+// Signed type of difference of two pointers.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Unsigned type of `sizeof' something.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// Wide character type.
+// Locale-writers should change this as necessary to
+// be big enough to hold unique values not between 0 and 127,
+// and not (wchar_t) -1, for each defined multibyte character.
+
+// Define this type if we are doing the whole job,
+// or if we want this type in particular.
+
+// A null pointer constant.
+
+// This defines CLOCKS_PER_SEC, which is the number of processor clock
+// ticks per second, and possibly a number of other constants.
+// System-dependent timing definitions. Linux version.
+// 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
+// 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/>.
+
+// Never include this file directly; use <time.h> instead.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO/IEC 9899:1999 7.23.1: Components of time
+// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+// the number per second of the value returned by the `clock' function.
+// CAE XSH, Issue 4, Version 2: <time.h>
+// The value of CLOCKS_PER_SEC is required to be 1 million on all
+// XSI-conformant systems.
+
+// Identifier for system-wide realtime clock.
+// Monotonic system-wide clock.
+// High-resolution timer from the CPU.
+// Thread-specific CPU-time clock.
+// Monotonic system-wide clock, not adjusted for frequency scaling.
+// Identifier for system-wide realtime clock, updated only on ticks.
+// Monotonic system-wide clock, updated only on ticks.
+// Monotonic system-wide clock that includes time spent in suspension.
+// Like CLOCK_REALTIME but also wakes suspended system.
+// Like CLOCK_BOOTTIME but also wakes suspended system.
+// Like CLOCK_REALTIME but in International Atomic Time.
+
+// Flag to indicate time is absolute.
+
+// Many of the typedefs and structs whose official home is this header
+// may also need to be defined by other headers.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// ISO C `broken-down time' structure.
+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
+} /* struct_tm.h:7:1 */
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// NB: Include guard matches what <linux/time.h> uses.
+
+// POSIX.1b structure for timer start values and intervals.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+ Fit_value struct {
+ Ftv_sec X__time_t
+ Ftv_nsec X__syscall_slong_t
+ }
+} /* struct_itimerspec.h:8:1 */
+
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+type Uuid_t = [16]uint8 /* uuid.h:44:23 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid_freebsd_386.go b/vendor/modernc.org/libc/uuid/uuid_freebsd_386.go
new file mode 100644
index 00000000..1a8bcca4
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid_freebsd_386.go
@@ -0,0 +1,1530 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_freebsd_386.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_ILP32 = 1
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UUID_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ X_UUID_H_ = 0
+ X_UUID_NODE_LEN = 6
+ I386 = 1
+ Unix = 1
+ Uuid_s_bad_version = 1
+ Uuid_s_invalid_string_uuid = 2
+ Uuid_s_no_memory = 3
+ Uuid_s_ok = 0
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002,2005 Marcel Moolenaar
+// Copyright (c) 2002 Hiten Mahesh Pandya
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint32 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint32 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+} /* _timespec.h:46: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 int32
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint32 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// Length of a node address (an IEEE 802 address).
+
+// See also:
+// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt
+// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm
+//
+// A DCE 1.1 compatible source representation of UUIDs.
+type Uuid = struct {
+ Ftime_low Uint32_t
+ Ftime_mid Uint16_t
+ Ftime_hi_and_version Uint16_t
+ Fclock_seq_hi_and_reserved Uint8_t
+ Fclock_seq_low Uint8_t
+ Fnode [6]Uint8_t
+} /* uuid.h:46:1 */
+
+// XXX namespace pollution?
+type Uuid_t = Uuid /* uuid.h:93:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go b/vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go
new file mode 100644
index 00000000..8bc76db1
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go
@@ -0,0 +1,1569 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_freebsd_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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 = 1024
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ X_ACCMODE_T_DECLARED = 0
+ X_BIG_ENDIAN = 4321
+ X_BLKCNT_T_DECLARED = 0
+ X_BLKSIZE_T_DECLARED = 0
+ X_BYTE_ORDER = 1234
+ X_CAP_IOCTL_T_DECLARED = 0
+ X_CAP_RIGHTS_T_DECLARED = 0
+ X_CLOCKID_T_DECLARED = 0
+ X_CLOCK_T_DECLARED = 0
+ X_DEV_T_DECLARED = 0
+ X_FFLAGS_T_DECLARED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_FSBLKCNT_T_DECLARED = 0
+ X_FTRUNCATE_DECLARED = 0
+ X_GID_T_DECLARED = 0
+ X_ID_T_DECLARED = 0
+ X_INO_T_DECLARED = 0
+ X_INT16_T_DECLARED = 0
+ X_INT32_T_DECLARED = 0
+ X_INT64_T_DECLARED = 0
+ X_INT8_T_DECLARED = 0
+ X_INTMAX_T_DECLARED = 0
+ X_INTPTR_T_DECLARED = 0
+ X_IN_ADDR_T_DECLARED = 0
+ X_IN_PORT_T_DECLARED = 0
+ X_KEY_T_DECLARED = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_LSEEK_DECLARED = 0
+ X_LWPID_T_DECLARED = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MMAP_DECLARED = 0
+ X_MODE_T_DECLARED = 0
+ X_MQD_T_DECLARED = 0
+ X_NLINK_T_DECLARED = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_OFF64_T_DECLARED = 0
+ X_OFF_T_DECLARED = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DECLARED = 0
+ X_PTHREAD_T_DECLARED = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RLIM_T_DECLARED = 0
+ X_SELECT_DECLARED = 0
+ X_SIGSET_T_DECLARED = 0
+ X_SIG_MAXSIG = 128
+ X_SIG_WORDS = 4
+ X_SIZE_T_DECLARED = 0
+ X_SSIZE_T_DECLARED = 0
+ X_SUSECONDS_T_DECLARED = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UUID_H_ = 0
+ X_SYS__PTHREADTYPES_H_ = 0
+ X_SYS__SIGSET_H_ = 0
+ X_SYS__STDINT_H_ = 0
+ X_SYS__TIMESPEC_H_ = 0
+ X_SYS__TIMEVAL_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DECLARED = 0
+ X_TIME_T_DECLARED = 0
+ X_TRUNCATE_DECLARED = 0
+ X_UID_T_DECLARED = 0
+ X_UINT16_T_DECLARED = 0
+ X_UINT32_T_DECLARED = 0
+ X_UINT64_T_DECLARED = 0
+ X_UINT8_T_DECLARED = 0
+ X_UINTMAX_T_DECLARED = 0
+ X_UINTPTR_T_DECLARED = 0
+ X_USECONDS_T_DECLARED = 0
+ X_UUID_H_ = 0
+ X_UUID_NODE_LEN = 6
+ Unix = 1
+ Uuid_s_bad_version = 1
+ Uuid_s_invalid_string_uuid = 2
+ Uuid_s_no_memory = 3
+ Uuid_s_ok = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002,2005 Marcel Moolenaar
+// Copyright (c) 2002 Hiten Mahesh Pandya
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.6 (Berkeley) 2/19/95
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Machine type dependent parameters.
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1987, 1991 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 7.8 (Berkeley) 4/3/91
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
+} /* _pthreadtypes.h:52:1 */
+
+// Primitive system data type definitions required by P1003.1c.
+//
+// Note that P1003.1c specifies that there are no defined comparison
+// or assignment operators for the types pthread_attr_t, pthread_cond_t,
+// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t.
+type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */
+type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */
+type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */
+type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */
+type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */
+type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */
+type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */
+type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */
+type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */
+type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */
+type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */
+type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */
+type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */
+
+// Additional type definitions:
+//
+// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for
+// use in header symbols.
+type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */
+type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */
+
+type U_char = uint8 /* types.h:52:23 */
+type U_short = uint16 /* types.h:53:24 */
+type U_int = uint32 /* types.h:54:22 */
+type U_long = uint64 /* types.h:55:23 */
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+
+// XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org>
+// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Int8_t = X__int8_t /* _stdint.h:36:19 */
+
+type Int16_t = X__int16_t /* _stdint.h:41:20 */
+
+type Int32_t = X__int32_t /* _stdint.h:46:20 */
+
+type Int64_t = X__int64_t /* _stdint.h:51:20 */
+
+type Uint8_t = X__uint8_t /* _stdint.h:56:20 */
+
+type Uint16_t = X__uint16_t /* _stdint.h:61:21 */
+
+type Uint32_t = X__uint32_t /* _stdint.h:66:21 */
+
+type Uint64_t = X__uint64_t /* _stdint.h:71:21 */
+
+type Intptr_t = X__intptr_t /* _stdint.h:76:21 */
+type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */
+type Intmax_t = X__intmax_t /* _stdint.h:84:21 */
+type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */
+
+type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated)
+type U_int16_t = X__uint16_t /* types.h:68:20 */
+type U_int32_t = X__uint32_t /* types.h:69:20 */
+type U_int64_t = X__uint64_t /* types.h:70:20 */
+
+type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated)
+type Quad_t = X__int64_t /* types.h:73:19 */
+type Qaddr_t = uintptr /* types.h:74:16 */
+
+type Caddr_t = uintptr /* types.h:76:14 */ // core address
+type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const
+
+type Blksize_t = X__blksize_t /* types.h:80:21 */
+
+type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */
+type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */
+type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */
+
+type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */
+
+type Clock_t = X__clock_t /* types.h:94:19 */
+
+type Clockid_t = X__clockid_t /* types.h:99:21 */
+
+type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value
+type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address
+
+type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev
+
+type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags
+
+type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */
+
+type Gid_t = X__gid_t /* types.h:125:18 */ // group id
+
+type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address
+
+type In_port_t = X__uint16_t /* types.h:135:20 */
+
+type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t
+
+type Ino_t = X__ino_t /* types.h:145:18 */ // inode number
+
+type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC)
+
+type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP)
+
+type Mode_t = X__mode_t /* types.h:160:18 */ // permissions
+
+type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions
+
+type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count
+
+type Off_t = X__off_t /* types.h:175:18 */ // file offset
+
+type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias)
+
+type Pid_t = X__pid_t /* types.h:185:18 */ // process id
+
+type Register_t = X__register_t /* types.h:189:22 */
+
+type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit
+
+type Sbintime_t = X__int64_t /* types.h:196:19 */
+
+type Segsz_t = X__segsz_t /* types.h:198:19 */
+
+type Ssize_t = X__ssize_t /* types.h:206:19 */
+
+type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed)
+
+type Time_t = X__time_t /* types.h:216:18 */
+
+type Timer_t = X__timer_t /* types.h:221:19 */
+
+type Mqd_t = X__mqd_t /* types.h:226:17 */
+
+type U_register_t = X__u_register_t /* types.h:230:24 */
+
+type Uid_t = X__uid_t /* types.h:233:18 */ // user id
+
+type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned)
+
+type Cap_ioctl_t = uint64 /* types.h:244:23 */
+
+// Types suitable for exporting physical addresses, virtual addresses
+// (pointers), and memory object sizes from the kernel independent of native
+// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and
+// size_t in structs which contain such types that are shared with userspace.
+type Kpaddr_t = X__uint64_t /* types.h:260:20 */
+type Kvaddr_t = X__uint64_t /* types.h:261:20 */
+type Ksize_t = X__uint64_t /* types.h:262:20 */
+type Kssize_t = X__int64_t /* types.h:263:19 */
+
+type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */
+type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */
+type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */
+type Vm_pindex_t = X__uint64_t /* types.h:268:20 */
+type Vm_size_t = X__vm_size_t /* types.h:269:21 */
+
+type Rman_res_t = X__rman_res_t /* types.h:271:25 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// sigset_t macros.
+
+type X__sigset_t = X__sigset /* _sigset.h:55:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// Structure returned by gettimeofday(2) system call, and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+} /* _timeval.h:49:1 */
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* _timespec.h:46: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
+ }
+} /* timespec.h:60:1 */
+
+type X__fd_mask = uint64 /* select.h:44:23 */
+type Fd_mask = X__fd_mask /* select.h:46:19 */
+
+type Sigset_t = X__sigset_t /* select.h:51:20 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set1 = struct{ F__fds_bits [16]X__fd_mask } /* select.h:73:9 */
+
+// Select uses bit masks of file descriptors in longs. These macros
+// manipulate such bit fields (the filesystem macros use chars).
+// FD_SETSIZE may be defined by the user, but the default here should
+// be enough for most uses.
+
+type Fd_set = Fd_set1 /* select.h:75:3 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Length of a node address (an IEEE 802 address).
+
+// See also:
+// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt
+// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm
+//
+// A DCE 1.1 compatible source representation of UUIDs.
+type Uuid = struct {
+ Ftime_low Uint32_t
+ Ftime_mid Uint16_t
+ Ftime_hi_and_version Uint16_t
+ Fclock_seq_hi_and_reserved Uint8_t
+ Fclock_seq_low Uint8_t
+ Fnode [6]Uint8_t
+} /* uuid.h:46:1 */
+
+// XXX namespace pollution?
+type Uuid_t = Uuid /* uuid.h:93:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go b/vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go
new file mode 100644
index 00000000..f81267b7
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go
@@ -0,0 +1,1454 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_netbsd_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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_SYS_UUID_H_ = 0
+ X_UUID_H_ = 0
+ X_UUID_NODE_LEN = 6
+ X_UUID_STR_LEN = 38
+ X_X86_64_BSWAP_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ X_X86_64_TYPES_H_ = 0
+ Uuid_s_bad_version = 1
+ Uuid_s_invalid_string_uuid = 2
+ Uuid_s_no_memory = 3
+ Uuid_s_ok = 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 */
+
+// $NetBSD: uuid.h,v 1.6 2014/10/04 11:15:44 riastradh Exp $
+
+// Copyright (c) 2002 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD: /repoman/r/ncvs/src/sys/sys/uuid.h,v 1.3 2003/05/31 16:47:07 phk Exp $
+
+// $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
+
+// Length of a node address (an IEEE 802 address).
+
+// Length of a printed UUID.
+
+// See also:
+// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt
+// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm
+//
+// A DCE 1.1 compatible source representation of UUIDs.
+type Uuid = struct {
+ Ftime_low Uint32_t
+ Ftime_mid Uint16_t
+ Ftime_hi_and_version Uint16_t
+ Fclock_seq_hi_and_reserved Uint8_t
+ Fclock_seq_low Uint8_t
+ Fnode [6]Uint8_t
+} /* uuid.h:49:1 */
+
+type Uuid_t = Uuid /* uuid.h:73:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go b/vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go
new file mode 100644
index 00000000..67c3d6ad
--- /dev/null
+++ b/vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go
@@ -0,0 +1,741 @@
+// Code generated by 'ccgo uuid/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 uuid/uuid_openbsd_amd64.go -pkgname uuid', DO NOT EDIT.
+
+package uuid
+
+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
+ LITTLE_ENDIAN = 1234
+ PDP_ENDIAN = 3412
+ UUID_BUF_LEN = 38
+ UUID_STR_LEN = 36
+ X_BIG_ENDIAN = 4321
+ X_BYTE_ORDER = 1234
+ X_CLOCKID_T_DEFINED_ = 0
+ X_CLOCK_T_DEFINED_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_INT16_T_DEFINED_ = 0
+ X_INT32_T_DEFINED_ = 0
+ X_INT64_T_DEFINED_ = 0
+ X_INT8_T_DEFINED_ = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE_ENDIAN_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_OFF_T_DEFINED_ = 0
+ X_PDP_ENDIAN = 3412
+ X_PID_T_DEFINED_ = 0
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_RET_PROTECTOR = 1
+ X_SIZE_T_DEFINED_ = 0
+ X_SSIZE_T_DEFINED_ = 0
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_SYS_UUID_H_ = 0
+ X_SYS__ENDIAN_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_TIMER_T_DEFINED_ = 0
+ X_TIME_T_DEFINED_ = 0
+ X_UINT16_T_DEFINED_ = 0
+ X_UINT32_T_DEFINED_ = 0
+ X_UINT64_T_DEFINED_ = 0
+ X_UINT8_T_DEFINED_ = 0
+ X_UUID_BUF_LEN = 38
+ X_UUID_H_ = 0
+ X_UUID_NODE_LEN = 6
+ Unix = 1
+ Uuid_s_bad_version = 1
+ Uuid_s_invalid_string_uuid = 2
+ Uuid_s_no_memory = 3
+ Uuid_s_ok = 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 */
+
+// $OpenBSD: uuid.h,v 1.1 2014/08/31 09:36:36 miod Exp $
+// $NetBSD: uuid.h,v 1.2 2008/04/23 07:52:32 plunky Exp $
+
+// Copyright (c) 2002 Marcel Moolenaar
+// Copyright (c) 2002 Hiten Mahesh Pandya
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD: src/include/uuid.h,v 1.2 2002/11/05 10:55:16 jmallett Exp $
+
+// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $
+// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $
+
+// -
+// Copyright (c) 1982, 1986, 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.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Public definitions for little- and big-endian systems.
+// This file should be included as <endian.h> in userspace and as
+// <sys/endian.h> in the kernel.
+//
+// System headers that need endian information but that can't or don't
+// want to export the public names here should include <sys/_endian.h>
+// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc.
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $
+
+// -
+// Copyright (c) 1997 Niklas Hallqvist. 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+// Internal endianness macros. This pulls in <machine/endian.h> to
+// get the correct setting direction for the platform and sets internal
+// ('__' prefix) macros appropriately.
+
+// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O
+type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers
+type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id
+type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number
+type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number
+type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count
+type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count
+type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id
+type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid
+type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address
+type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type
+type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number
+type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC)
+type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions
+type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id
+type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit
+type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type
+type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size
+type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls
+type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed)
+type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset
+type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time
+type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers
+type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id
+type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds
+
+// 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__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:76:3 */
+
+// Tell sys/endian.h we have MD variants of the swap macros.
+
+// Note that these macros evaluate their arguments several times.
+
+// Public names
+
+// These are specified to be function-like macros to match the spec
+
+// POSIX names
+
+// original BSD names
+
+// these were exposed here before
+
+// ancient stuff
+
+type U_char = uint8 /* types.h:51:23 */
+type U_short = uint16 /* types.h:52:24 */
+type U_int = uint32 /* types.h:53:22 */
+type U_long = uint64 /* types.h:54:23 */
+
+type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility
+
+type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id
+type Register_t = X__register_t /* types.h:62:22 */ // register-sized type
+
+// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
+// but the rest of the includes are not ready for that yet.
+
+type Int8_t = X__int8_t /* types.h:75:19 */
+
+type Uint8_t = X__uint8_t /* types.h:80:20 */
+
+type Int16_t = X__int16_t /* types.h:85:20 */
+
+type Uint16_t = X__uint16_t /* types.h:90:21 */
+
+type Int32_t = X__int32_t /* types.h:95:20 */
+
+type Uint32_t = X__uint32_t /* types.h:100:21 */
+
+type Int64_t = X__int64_t /* types.h:105:20 */
+
+type Uint64_t = X__uint64_t /* types.h:110:21 */
+
+// BSD-style unsigned bits types
+type U_int8_t = X__uint8_t /* types.h:114:19 */
+type U_int16_t = X__uint16_t /* types.h:115:20 */
+type U_int32_t = X__uint32_t /* types.h:116:20 */
+type U_int64_t = X__uint64_t /* types.h:117:20 */
+
+// quads, deprecated in favor of 64 bit int types
+type Quad_t = X__int64_t /* types.h:120:19 */
+type U_quad_t = X__uint64_t /* types.h:121:20 */
+
+// VM system types
+type Vaddr_t = X__vaddr_t /* types.h:125:19 */
+type Paddr_t = X__paddr_t /* types.h:126:19 */
+type Vsize_t = X__vsize_t /* types.h:127:19 */
+type Psize_t = X__psize_t /* types.h:128:19 */
+
+// Standard system types
+type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file
+type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O
+type Caddr_t = uintptr /* types.h:134:14 */ // core address
+type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address
+type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address
+type Dev_t = X__dev_t /* types.h:137:18 */ // device number
+type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number
+type Gid_t = X__gid_t /* types.h:139:18 */ // group id
+type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid
+type Ino_t = X__ino_t /* types.h:141:18 */ // inode number
+type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC)
+type Mode_t = X__mode_t /* types.h:143:18 */ // permissions
+type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count
+type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit
+type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size
+type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset
+type Uid_t = X__uid_t /* types.h:148:18 */ // user id
+type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds
+type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed)
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count
+
+// The following types may be defined in multiple header files.
+type Clock_t = X__clock_t /* types.h:159:19 */
+
+type Clockid_t = X__clockid_t /* types.h:164:21 */
+
+type Pid_t = X__pid_t /* types.h:169:18 */
+
+type Ssize_t = X__ssize_t /* types.h:179:19 */
+
+type Time_t = X__time_t /* types.h:184:18 */
+
+type Timer_t = X__timer_t /* types.h:189:19 */
+
+type Off_t = X__off_t /* types.h:194:18 */
+
+// Major, minor numbers, dev_t's.
+
+// $OpenBSD: uuid.h,v 1.3 2014/08/31 09:36:39 miod Exp $
+// $NetBSD: uuid.h,v 1.5 2008/11/18 14:01:03 joerg Exp $
+
+// Copyright (c) 2002 Marcel Moolenaar
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+//
+// $FreeBSD: /repoman/r/ncvs/src/sys/sys/uuid.h,v 1.3 2003/05/31 16:47:07 phk Exp $
+
+// Length of a node address (an IEEE 802 address).
+
+// Length of a printed UUID.
+
+// See also:
+// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt
+// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm
+//
+// A DCE 1.1 compatible source representation of UUIDs.
+type Uuid = struct {
+ Ftime_low Uint32_t
+ Ftime_mid Uint16_t
+ Ftime_hi_and_version Uint16_t
+ Fclock_seq_hi_and_reserved Uint8_t
+ Fclock_seq_low Uint8_t
+ Fnode [6]Uint8_t
+} /* uuid.h:48:1 */
+
+type Uuid_t = Uuid /* uuid.h:71:21 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/watch.go b/vendor/modernc.org/libc/watch.go
new file mode 100644
index 00000000..043957cd
--- /dev/null
+++ b/vendor/modernc.org/libc/watch.go
@@ -0,0 +1,240 @@
+// Copyright 2021 The Libc Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package libc // import "modernc.org/libc"
+
+import (
+ "fmt"
+ "math"
+ "os"
+ "sync"
+ "unsafe"
+)
+
+var (
+ watches = map[uintptr]watch{}
+ watchesMu sync.Mutex
+)
+
+type watch interface {
+ msg() string
+}
+
+type watcher string
+
+func (w watcher) msg() string {
+ if w == "" {
+ return ""
+ }
+
+ return fmt.Sprintf(": %s", w)
+}
+
+type watchInt8 struct {
+ val int8
+ watcher
+}
+
+func WatchInt8(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchInt8{*(*int8)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchUint8 struct {
+ val uint8
+ watcher
+}
+
+func WatchUint8(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchUint8{*(*uint8)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchInt16 struct {
+ val int16
+ watcher
+}
+
+func WatchInt16(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchInt16{*(*int16)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchUint16 struct {
+ val uint16
+ watcher
+}
+
+func WatchUint16(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchUint16{*(*uint16)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchInt32 struct {
+ val int32
+ watcher
+}
+
+func WatchInt32(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchInt32{*(*int32)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchUint32 struct {
+ val uint32
+ watcher
+}
+
+func WatchUint32(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchUint32{*(*uint32)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchInt64 struct {
+ val int64
+ watcher
+}
+
+func WatchInt64(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchInt64{*(*int64)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchUint64 struct {
+ val uint64
+ watcher
+}
+
+func WatchUint64(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchUint64{*(*uint64)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchFloat32 struct {
+ val float32
+ watcher
+}
+
+func WatchFloat32(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchFloat32{*(*float32)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchFloat64 struct {
+ val float64
+ watcher
+}
+
+func WatchFloat64(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchFloat64{*(*float64)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+type watchPtr struct {
+ val uintptr
+ watcher
+}
+
+func WatchPtr(p uintptr, msg string) {
+ watchesMu.Lock()
+ watches[p] = &watchPtr{*(*uintptr)(unsafe.Pointer(p)), watcher(msg)}
+ watchesMu.Unlock()
+}
+
+func Watch() {
+ watchesMu.Lock()
+ flush := false
+ for p, v := range watches {
+ switch x := v.(type) {
+ case *watchInt8:
+ if val := *(*int8)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: int8@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchUint8:
+ if val := *(*uint8)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: uint8@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchInt16:
+ if val := *(*int16)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: int16@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchUint16:
+ if val := *(*uint16)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: uint16@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchInt32:
+ if val := *(*int32)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: int32@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchUint32:
+ if val := *(*uint32)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: uint32@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchInt64:
+ if val := *(*int64)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: int64@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchUint64:
+ if val := *(*uint64)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: uint64@%#x was %d, new %d%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ case *watchFloat32:
+ if val := *(*float32)(unsafe.Pointer(p)); math.Float32bits(val) != math.Float32bits(x.val) {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: float32@%#x was %v(%#x), new %v(%#x)%s\n", origin(2), p, x.val, math.Float32bits(x.val), val, math.Float32bits(val), x.msg())
+ x.val = val
+ }
+ case *watchFloat64:
+ if val := *(*float64)(unsafe.Pointer(p)); math.Float64bits(val) != math.Float64bits(x.val) {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: float64@%#x was %v(%#x), new %v(%#x)%s\n", origin(2), p, x.val, math.Float64bits(x.val), val, math.Float64bits(val), x.msg())
+ x.val = val
+ }
+ case *watchPtr:
+ if val := *(*uintptr)(unsafe.Pointer(p)); val != x.val {
+ flush = true
+ fmt.Fprintf(os.Stderr, "%v: ptr@%#x was %#x, new %#x%s\n", origin(2), p, x.val, val, x.msg())
+ x.val = val
+ }
+ default:
+ panic(todo("%T", x))
+ }
+ }
+ if flush {
+ os.Stderr.Sync()
+ }
+ watchesMu.Unlock()
+}
+
+func WatchDelete(p uintptr) {
+ watchesMu.Lock()
+ delete(watches, p)
+ watchesMu.Unlock()
+}
diff --git a/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go b/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go
new file mode 100644
index 00000000..26b59f1b
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go
@@ -0,0 +1,7 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_darwin_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{
+ "__darwin_check_fd_set_overflow": {},
+}
diff --git a/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go b/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go
new file mode 100644
index 00000000..e79c076d
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_darwin_arm64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_freebsd_386.go b/vendor/modernc.org/libc/wctype/capi_freebsd_386.go
new file mode 100644
index 00000000..e972516d
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_freebsd_386.go
@@ -0,0 +1,29 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_freebsd_386.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{
+ "__istype_l": {},
+ "__maskrune_l": {},
+ "__wcwidth_l": {},
+ "iswalnum_l": {},
+ "iswalpha_l": {},
+ "iswblank_l": {},
+ "iswcntrl_l": {},
+ "iswdigit_l": {},
+ "iswgraph_l": {},
+ "iswhexnumber_l": {},
+ "iswideogram_l": {},
+ "iswlower_l": {},
+ "iswnumber_l": {},
+ "iswphonogram_l": {},
+ "iswprint_l": {},
+ "iswpunct_l": {},
+ "iswrune_l": {},
+ "iswspace_l": {},
+ "iswspecial_l": {},
+ "iswupper_l": {},
+ "iswxdigit_l": {},
+ "towlower_l": {},
+ "towupper_l": {},
+}
diff --git a/vendor/modernc.org/libc/wctype/capi_freebsd_amd64.go b/vendor/modernc.org/libc/wctype/capi_freebsd_amd64.go
new file mode 100644
index 00000000..66e0cff3
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_freebsd_amd64.go
@@ -0,0 +1,29 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_freebsd_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{
+ "__istype_l": {},
+ "__maskrune_l": {},
+ "__wcwidth_l": {},
+ "iswalnum_l": {},
+ "iswalpha_l": {},
+ "iswblank_l": {},
+ "iswcntrl_l": {},
+ "iswdigit_l": {},
+ "iswgraph_l": {},
+ "iswhexnumber_l": {},
+ "iswideogram_l": {},
+ "iswlower_l": {},
+ "iswnumber_l": {},
+ "iswphonogram_l": {},
+ "iswprint_l": {},
+ "iswpunct_l": {},
+ "iswrune_l": {},
+ "iswspace_l": {},
+ "iswspecial_l": {},
+ "iswupper_l": {},
+ "iswxdigit_l": {},
+ "towlower_l": {},
+ "towupper_l": {},
+}
diff --git a/vendor/modernc.org/libc/wctype/capi_linux_386.go b/vendor/modernc.org/libc/wctype/capi_linux_386.go
new file mode 100644
index 00000000..800f8200
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_linux_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_386.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_linux_amd64.go b/vendor/modernc.org/libc/wctype/capi_linux_amd64.go
new file mode 100644
index 00000000..d7a2db06
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_linux_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_linux_arm.go b/vendor/modernc.org/libc/wctype/capi_linux_arm.go
new file mode 100644
index 00000000..e04dcd29
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_linux_arm.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_arm.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_linux_arm64.go b/vendor/modernc.org/libc/wctype/capi_linux_arm64.go
new file mode 100644
index 00000000..17a10a4b
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_linux_arm64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_arm64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_linux_s390x.go b/vendor/modernc.org/libc/wctype/capi_linux_s390x.go
new file mode 100644
index 00000000..a8bf0d38
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_linux_s390x.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_s390x.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_netbsd_amd64.go b/vendor/modernc.org/libc/wctype/capi_netbsd_amd64.go
new file mode 100644
index 00000000..0bee8985
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_netbsd_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go b/vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go
new file mode 100644
index 00000000..174ee113
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_openbsd_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_windows_386.go b/vendor/modernc.org/libc/wctype/capi_windows_386.go
new file mode 100644
index 00000000..a522b190
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_windows_386.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_windows_386.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/capi_windows_amd64.go b/vendor/modernc.org/libc/wctype/capi_windows_amd64.go
new file mode 100644
index 00000000..6d11ff4a
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/capi_windows_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo wctype\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 wctype\wctype_windows_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go b/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go
new file mode 100644
index 00000000..7be00384
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go
@@ -0,0 +1,1407 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_darwin_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_I386__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CACHED_RUNES = 256
+ X_CDEFS_H_ = 0
+ X_CRMASK = -256
+ X_CTYPE_A = 0x00000100
+ X_CTYPE_B = 0x00020000
+ X_CTYPE_C = 0x00000200
+ X_CTYPE_D = 0x00000400
+ X_CTYPE_G = 0x00000800
+ X_CTYPE_H_ = 0
+ X_CTYPE_I = 0x00080000
+ X_CTYPE_L = 0x00001000
+ X_CTYPE_P = 0x00002000
+ X_CTYPE_Q = 0x00200000
+ X_CTYPE_R = 0x00040000
+ X_CTYPE_S = 0x00004000
+ X_CTYPE_SW0 = 0x20000000
+ X_CTYPE_SW1 = 0x40000000
+ X_CTYPE_SW2 = 0x80000000
+ X_CTYPE_SW3 = 0xc0000000
+ X_CTYPE_SWM = 0xe0000000
+ X_CTYPE_SWS = 30
+ X_CTYPE_T = 0x00100000
+ X_CTYPE_U = 0x00008000
+ X_CTYPE_X = 0x00010000
+ X_CT_RUNE_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_RUNETYPE_H_ = 0
+ X_RUNE_MAGIC_A = "RuneMagA"
+ X_RUNE_T = 0
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_WCHAR_T = 0
+ X_WCTRANS_T = 0
+ X_WCTYPE_H_ = 0
+ X_WCTYPE_T = 0
+ X_WINT_T = 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 */
+
+var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */
+
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
+// $NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $
+// $FreeBSD: /repoman/r/ncvs/src/include/wctype.h,v 1.10 2002/08/21 16:19:55 mike Exp $
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function of variable.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit)
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:37:33 */
+type X__uint8_t = uint8 /* _types.h:41:33 */
+type X__int16_t = int16 /* _types.h:42:33 */
+type X__uint16_t = uint16 /* _types.h:43:33 */
+type X__int32_t = int32 /* _types.h:44:33 */
+type X__uint32_t = uint32 /* _types.h:45:33 */
+type X__int64_t = int64 /* _types.h:46:33 */
+type X__uint64_t = uint64 /* _types.h:47:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:49:33 */
+type X__darwin_natural_t = uint32 /* _types.h:50:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+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 {
+ 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
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:120:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Wctrans_t = X__darwin_wctrans_t /* _wctrans_t.h:32:28 */
+
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+
+// Common header for wctype.h and wchar.h
+//
+// Contains everything required by wctype.h except:
+//
+// #include <_types/_wctrans_t.h>
+// int iswblank(wint_t);
+// wint_t towctrans(wint_t, wctrans_t);
+// wctrans_t wctrans(const char *);
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+
+// Common header for _wctype.h and xlocale/__wctype.h
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Wint_t = X__darwin_wint_t /* _wint_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Wctype_t = X__darwin_wctype_t /* _wctype_t.h:32:27 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t /* _ct_rune_t.h:32:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t /* _rune_t.h:31:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// The lower 8 bits of runetype[] contain the digit value of the rune.
+type X_RuneEntry = struct {
+ F__min X__darwin_rune_t
+ F__max X__darwin_rune_t
+ F__map X__darwin_rune_t
+ F__ccgo_pad1 [4]byte
+ F__types uintptr
+} /* runetype.h:65:3 */
+
+type X_RuneRange = struct {
+ F__nranges int32
+ F__ccgo_pad1 [4]byte
+ F__ranges uintptr
+} /* runetype.h:70:3 */
+
+type X_RuneCharClass = struct {
+ F__name [14]int8
+ F__ccgo_pad1 [2]byte
+ F__mask X__uint32_t
+} /* runetype.h:75:3 */
+
+type X_RuneLocale = struct {
+ F__magic [8]int8
+ F__encoding [32]int8
+ F__sgetrune uintptr
+ F__sputrune uintptr
+ F__invalid_rune X__darwin_rune_t
+ F__runetype [256]X__uint32_t
+ F__maplower [256]X__darwin_rune_t
+ F__mapupper [256]X__darwin_rune_t
+ F__ccgo_pad1 [4]byte
+ F__runetype_ext X_RuneRange
+ F__maplower_ext X_RuneRange
+ F__mapupper_ext X_RuneRange
+ F__variable uintptr
+ F__variable_len int32
+ F__ncharclasses int32
+ F__charclasses uintptr
+} /* runetype.h:106:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go b/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go
new file mode 100644
index 00000000..8ed193fe
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go
@@ -0,0 +1,1393 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_darwin_arm64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_BSD_ARM__TYPES_H_ = 0
+ X_BSD_MACHINE__TYPES_H_ = 0
+ X_CACHED_RUNES = 256
+ X_CDEFS_H_ = 0
+ X_CRMASK = -256
+ X_CTYPE_A = 0x00000100
+ X_CTYPE_B = 0x00020000
+ X_CTYPE_C = 0x00000200
+ X_CTYPE_D = 0x00000400
+ X_CTYPE_G = 0x00000800
+ X_CTYPE_H_ = 0
+ X_CTYPE_I = 0x00080000
+ X_CTYPE_L = 0x00001000
+ X_CTYPE_P = 0x00002000
+ X_CTYPE_Q = 0x00200000
+ X_CTYPE_R = 0x00040000
+ X_CTYPE_S = 0x00004000
+ X_CTYPE_SW0 = 0x20000000
+ X_CTYPE_SW1 = 0x40000000
+ X_CTYPE_SW2 = 0x80000000
+ X_CTYPE_SW3 = 0xc0000000
+ X_CTYPE_SWM = 0xe0000000
+ X_CTYPE_SWS = 30
+ X_CTYPE_T = 0x00100000
+ X_CTYPE_U = 0x00008000
+ X_CTYPE_X = 0x00010000
+ X_CT_RUNE_T = 0
+ X_DARWIN_FEATURE_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1
+ X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
+ X_DARWIN_FEATURE_ONLY_VERS_1050 = 1
+ X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3
+ X_FILE_OFFSET_BITS = 64
+ X_FORTIFY_SOURCE = 2
+ X_LP64 = 1
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_RUNETYPE_H_ = 0
+ X_RUNE_MAGIC_A = "RuneMagA"
+ X_RUNE_T = 0
+ X_SIZE_T = 0
+ X_SYS__PTHREAD_TYPES_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_WCHAR_T = 0
+ X_WCTRANS_T = 0
+ X_WCTYPE_H_ = 0
+ X_WCTYPE_T = 0
+ X_WINT_T = 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 */
+
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
+// $NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $
+// $FreeBSD: /repoman/r/ncvs/src/include/wctype.h,v 1.10 2002/08/21 16:19:55 mike Exp $
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// This SDK is designed to work with clang and specific versions of
+// gcc >= 4.0 with Apple's patch sets
+
+// Compatibility with compilers and environments that don't support compiler
+// feature checking function-like macros.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. __CONCAT can also concatenate double-quoted
+// strings produced by the __STRING macro, but this only works with ANSI C.
+
+// __pure2 can be used for functions that are only a function of their scalar
+// arguments (meaning they can't dereference pointers).
+//
+// __stateful_pure can be used for functions that have no side effects,
+// but depend on the state of the memory.
+
+// __unused denotes variables and functions that may not be used, preventing
+// the compiler from warning about it if not used.
+
+// __used forces variables and functions to be included even if it appears
+// to the compiler that they are not used (and would thust be discarded).
+
+// __cold marks code used for debugging or that is rarely taken
+// and tells the compiler to optimize for size and outline code.
+
+// __exported denotes symbols that should be exported even when symbols
+// are hidden by default.
+// __exported_push/_exported_pop are pragmas used to delimit a range of
+// symbols that should be exported even when symbols are hidden by default.
+
+// __deprecated causes the compiler to produce a warning when encountering
+// code using the deprecated functionality.
+// __deprecated_msg() does the same, and compilers that support it will print
+// a message along with the deprecation warning.
+// This may require turning on such warning with the -Wdeprecated flag.
+// __deprecated_enum_msg() should be used on enums, and compilers that support
+// it will print the deprecation warning.
+// __kpi_deprecated() specifically indicates deprecation of kernel programming
+// interfaces in Kernel.framework used by KEXTs.
+
+// __unavailable causes the compiler to error out when encountering
+// code using the tagged function
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// We use `__restrict' as a way to define the `restrict' type qualifier
+// without disturbing older software that is unaware of C99 keywords.
+
+// Compatibility with compilers and environments that don't support the
+// nullability feature.
+
+// __disable_tail_calls causes the compiler to not perform tail call
+// optimization inside the marked function.
+
+// __not_tail_called causes the compiler to prevent tail call optimization
+// on statically bound calls to the function. It has no effect on indirect
+// calls. Virtual functions, objective-c methods, and functions marked as
+// "always_inline" cannot be marked as __not_tail_called.
+
+// __result_use_check warns callers of a function that not using the function
+// return value is a bug, i.e. dismissing malloc() return value results in a
+// memory leak.
+
+// __swift_unavailable causes the compiler to mark a symbol as specifically
+// unavailable in Swift, regardless of any other availability in C.
+
+// __abortlike is the attribute to put on functions like abort() that are
+// typically used to mark assertions. These optimize the codegen
+// for outlining while still maintaining debugability.
+
+// Declaring inline functions within headers is error-prone due to differences
+// across various versions of the C language and extensions. __header_inline
+// can be used to declare inline functions within system headers. In cases
+// where you want to force inlining instead of letting the compiler make
+// the decision, you can use __header_always_inline.
+//
+// Be aware that using inline for functions which compilers may also provide
+// builtins can behave differently under various compilers. If you intend to
+// provide an inline version of such a function, you may want to use a macro
+// instead.
+//
+// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+// support c99 inline in some cases:
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+
+// Compiler-dependent macros that bracket portions of code where the
+// "-Wunreachable-code" warning should be ignored. Please use sparingly.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly. Functions declared
+// with these attributes will cause compilation warnings if there is a
+// mismatch between the format string and subsequent function parameter
+// types.
+
+// Source compatibility only, ID string not emitted in object file
+
+// __alloc_size can be used to label function arguments that represent the
+// size of memory that the function allocates and returns. The one-argument
+// form labels a single argument that gives the allocation size (where the
+// arguments are numbered from 1):
+//
+// void *malloc(size_t __size) __alloc_size(1);
+//
+// The two-argument form handles the case where the size is calculated as the
+// product of two arguments:
+//
+// void *calloc(size_t __count, size_t __size) __alloc_size(1,2);
+
+// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+//
+// DEFAULT By default newly complied code will get POSIX APIs plus
+// Apple API extensions in scope.
+//
+// Most users will use this compilation environment to avoid
+// behavioral differences between 32 and 64 bit code.
+//
+// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+// API extensions in scope.
+//
+// This is generally equivalent to the Tiger release compilation
+// environment, except that it cannot be applied to 64 bit code;
+// its use is discouraged.
+//
+// We expect this environment to be deprecated in the future.
+//
+// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+// available APIs to exactly the set of APIs defined by the
+// corresponding standard, based on the value defined.
+//
+// A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+// A correct, portable definition for _XOPEN_SOURCE is 600L.
+//
+// Apple API extensions are not visible in this environment,
+// which can cause Apple specific code to fail to compile,
+// or behave incorrectly if prototypes are not in scope or
+// warnings about missing prototypes are not enabled or ignored.
+//
+// In any compilation environment, for correct symbol resolution to occur,
+// function prototypes must be in scope. It is recommended that all Apple
+// tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+// compiler flags to their projects to be warned when a function is being
+// used without a prototype in scope.
+
+// These settings are particular to each product.
+// Platform: MacOSX
+
+// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+// legacy code to use the old symbol, thus maintaining binary compatibility
+// while new code can use a standards compliant version of the same function.
+//
+// __DARWIN_ALIAS is used by itself if the function signature has not
+// changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+// if the signature has changed. Because the __LP64__ environment
+// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+// defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+//
+// As a special case, when XCode is used to target a specific version of the
+// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+// will be defined by the compiler, with the digits representing major version
+// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting
+// pre-10.5, and it is the default compilation environment, revert the
+// compilation environment to pre-__DARWIN_UNIX03.
+
+// symbol suffixes used for symbol versioning
+
+// symbol versioning macros
+
+// symbol release macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included. This permits us to convert values for feature
+// testing, as necessary, using only _POSIX_C_SOURCE.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1L 1003.1-1990
+// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+
+// POSIX C deprecation macros
+// Copyright (c) 2010 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Set a single macro which will always be defined and can be used to determine
+// the appropriate namespace. For POSIX, these values will correspond to
+// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding
+// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+
+// If the developer has neither requested a strict language mode nor a version
+// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+// of __DARWIN_C_FULL.
+
+// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+// c99 still want long longs. While not perfect, we allow long longs for
+// g++.
+
+// ****************************************
+//
+// Public darwin-specific feature macros
+//
+
+// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+// structures modified for 64-bit inodes (like struct stat) will be used.
+
+// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+// be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+// (and non-zero). There is no struct stat64 either, as the regular
+// struct stat will already be the 64-bit version.
+
+// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+// in 10.5 exists; no pre-10.5 variants are available.
+
+// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+// are available (the legacy BSD APIs are not available)
+
+// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+// and specifies the conformance level (3 is SUSv3)
+
+// This macro casts away the qualifier from the variable
+//
+// Note: use at your own risk, removing qualifiers can result in
+// catastrophic run-time failures.
+
+// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+// used from other compilation units, but not other libraries or executables.
+
+// Architecture validation for current SDK
+
+// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+//
+// This provides more advanced type checking on compilers supporting
+// the proper extensions, even in C.
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+
+// This header file contains integer types. It's intended to also contain
+// flotaing point and other arithmetic types, as needed, later.
+
+type X__int8_t = int8 /* _types.h:15:33 */
+type X__uint8_t = uint8 /* _types.h:19:33 */
+type X__int16_t = int16 /* _types.h:20:33 */
+type X__uint16_t = uint16 /* _types.h:21:33 */
+type X__int32_t = int32 /* _types.h:22:33 */
+type X__uint32_t = uint32 /* _types.h:23:33 */
+type X__int64_t = int64 /* _types.h:24:33 */
+type X__uint64_t = uint64 /* _types.h:25:33 */
+
+type X__darwin_intptr_t = int64 /* _types.h:27:33 */
+type X__darwin_natural_t = uint32 /* _types.h:28:33 */
+
+// The rune type below is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it
+// here, you lose a bit of ANSI conformance, but your programs will still
+// work.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and
+// rune_t must be the same type. Also wint_t must be no narrower than
+// wchar_t, and should also be able to hold all members of the largest
+// character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+
+type X__darwin_ct_rune_t = int32 /* _types.h:48: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 {
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
+} /* _types.h:57:3 */
+
+type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t
+
+type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2
+
+type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof()
+
+type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list
+
+type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t
+
+type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t
+
+type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t
+
+type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock()
+type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh)
+type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error
+type X__darwin_time_t = int64 /* _types.h:98:33 */ // time()
+
+// Type definitions; takes common type definitions that must be used
+// in multiple header files due to [XSI], removes them from the system
+// space, and puts them in the implementation space.
+
+type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks
+type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size
+type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t
+type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs
+type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs
+type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs
+type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t
+type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes
+type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes
+type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach
+type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach
+type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes
+type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes
+type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs
+type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set
+type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds
+type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs
+type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds
+type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */
+type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */
+
+// Copyright (c) 2003-2013 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// pthread opaque structures
+
+type X__darwin_pthread_handler_rec = struct {
+ F__routine uintptr
+ F__arg uintptr
+ F__next uintptr
+} /* _pthread_types.h:57:1 */
+
+type X_opaque_pthread_attr_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:63:1 */
+
+type X_opaque_pthread_cond_t = struct {
+ F__sig int64
+ F__opaque [40]int8
+} /* _pthread_types.h:68:1 */
+
+type X_opaque_pthread_condattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:73:1 */
+
+type X_opaque_pthread_mutex_t = struct {
+ F__sig int64
+ F__opaque [56]int8
+} /* _pthread_types.h:78:1 */
+
+type X_opaque_pthread_mutexattr_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:83:1 */
+
+type X_opaque_pthread_once_t = struct {
+ F__sig int64
+ F__opaque [8]int8
+} /* _pthread_types.h:88:1 */
+
+type X_opaque_pthread_rwlock_t = struct {
+ F__sig int64
+ F__opaque [192]int8
+} /* _pthread_types.h:93:1 */
+
+type X_opaque_pthread_rwlockattr_t = struct {
+ F__sig int64
+ F__opaque [16]int8
+} /* _pthread_types.h:98:1 */
+
+type X_opaque_pthread_t = struct {
+ F__sig int64
+ F__cleanup_stack uintptr
+ F__opaque [8176]int8
+} /* _pthread_types.h:103:1 */
+
+type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */
+type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */
+type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */
+type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */
+type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */
+type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */
+type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */
+type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */
+type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */
+type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+type X__darwin_nl_item = int32 /* _types.h:40:14 */
+type X__darwin_wctrans_t = int32 /* _types.h:41:14 */
+type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Wctrans_t = X__darwin_wctrans_t /* _wctrans_t.h:32:28 */
+
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+
+// Common header for wctype.h and wchar.h
+//
+// Contains everything required by wctype.h except:
+//
+// #include <_types/_wctrans_t.h>
+// int iswblank(wint_t);
+// wint_t towctrans(wint_t, wctrans_t);
+// wctrans_t wctrans(const char *);
+
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+
+// Common header for _wctype.h and xlocale/__wctype.h
+
+// Copyright (c) 2000-2018 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright 1995 NeXT Computer, Inc. All rights reserved.
+// 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Wint_t = X__darwin_wint_t /* _wint_t.h:32:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.
+//
+// @APPLE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this
+// file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_LICENSE_HEADER_END@
+
+type Wctype_t = X__darwin_wctype_t /* _wctype_t.h:32:27 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Ct_rune_t = X__darwin_ct_rune_t /* _ct_rune_t.h:32:28 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+// Copyright (c) 2003-2007 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+type Rune_t = X__darwin_rune_t /* _rune_t.h:31:25 */
+// Copyright (c) 2012 Apple Inc. All rights reserved.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+//
+// This file contains Original Code and/or Modifications of Original Code
+// as defined in and that are subject to the Apple Public Source License
+// Version 2.0 (the 'License'). You may not use this file except in
+// compliance with the License. The rights granted to you under the License
+// may not be used to create, or enable the creation or redistribution of,
+// unlawful or unlicensed copies of an Apple operating system, or to
+// circumvent, violate, or enable the circumvention or violation of, any
+// terms of an Apple operating system software license agreement.
+//
+// Please obtain a copy of the License at
+// http://www.opensource.apple.com/apsl/ and read it before using this file.
+//
+// The Original Code and all software distributed under the License are
+// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+// Please see the License for the specific language governing rights and
+// limitations under the License.
+//
+// @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+
+// The lower 8 bits of runetype[] contain the digit value of the rune.
+type X_RuneEntry = struct {
+ F__min X__darwin_rune_t
+ F__max X__darwin_rune_t
+ F__map X__darwin_rune_t
+ F__ccgo_pad1 [4]byte
+ F__types uintptr
+} /* runetype.h:65:3 */
+
+type X_RuneRange = struct {
+ F__nranges int32
+ F__ccgo_pad1 [4]byte
+ F__ranges uintptr
+} /* runetype.h:70:3 */
+
+type X_RuneCharClass = struct {
+ F__name [14]int8
+ F__ccgo_pad1 [2]byte
+ F__mask X__uint32_t
+} /* runetype.h:75:3 */
+
+type X_RuneLocale = struct {
+ F__magic [8]int8
+ F__encoding [32]int8
+ F__sgetrune uintptr
+ F__sputrune uintptr
+ F__invalid_rune X__darwin_rune_t
+ F__runetype [256]X__uint32_t
+ F__maplower [256]X__darwin_rune_t
+ F__mapupper [256]X__darwin_rune_t
+ F__ccgo_pad1 [4]byte
+ F__runetype_ext X_RuneRange
+ F__maplower_ext X_RuneRange
+ F__mapupper_ext X_RuneRange
+ F__variable uintptr
+ F__variable_len int32
+ F__ncharclasses int32
+ F__charclasses uintptr
+} /* runetype.h:106:3 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_freebsd_386.go b/vendor/modernc.org/libc/wctype/wctype_freebsd_386.go
new file mode 100644
index 00000000..899bfbc4
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_freebsd_386.go
@@ -0,0 +1,787 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_freebsd_386.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_CACHED_RUNES = 256
+ X_CRMASK = -256
+ X_CTYPE_A = 0x00000100
+ X_CTYPE_B = 0x00020000
+ X_CTYPE_C = 0x00000200
+ X_CTYPE_D = 0x00000400
+ X_CTYPE_G = 0x00000800
+ X_CTYPE_I = 0x00080000
+ X_CTYPE_L = 0x00001000
+ X_CTYPE_N = 0x00400000
+ X_CTYPE_P = 0x00002000
+ X_CTYPE_Q = 0x00200000
+ X_CTYPE_R = 0x00040000
+ X_CTYPE_S = 0x00004000
+ X_CTYPE_SW0 = 0x20000000
+ X_CTYPE_SW1 = 0x40000000
+ X_CTYPE_SW2 = 0x80000000
+ X_CTYPE_SW3 = 0xc0000000
+ X_CTYPE_SWM = 0xe0000000
+ X_CTYPE_SWS = 30
+ X_CTYPE_T = 0x00100000
+ X_CTYPE_U = 0x00008000
+ X_CTYPE_X = 0x00010000
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_LOCALE_T_DEFINED = 0
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_RUNETYPE_H_ = 0
+ X_RUNE_MAGIC_1 = "RuneMagi"
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_WCTRANS_T = 0
+ X_WCTYPE_H_ = 0
+ X_WCTYPE_T = 0
+ X_WINT_T_DECLARED = 0
+ X_XLOCALE_RUN_FUNCTIONS_DEFINED = 1
+ X_XLOCALE_WCTYPE_H = 0
+ I386 = 1
+ Unix = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause
+//
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
+// $NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, e.g., by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// Alignment builtins for better type checking and improved code generation.
+// Provide fallback versions for other compilers (GCC/Clang < 10):
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+
+type X__int64_t = int64 /* _types.h:66:20 */
+
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// Standard type definitions.
+type X__clock_t = uint32 /* _types.h:84:23 */
+type X__critical_t = X__int32_t /* _types.h:85:19 */
+type X__double_t = float64 /* _types.h:87:21 */
+type X__float_t = float64 /* _types.h:88:21 */
+type X__intfptr_t = X__int32_t /* _types.h:90:19 */
+type X__intptr_t = X__int32_t /* _types.h:91:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */
+type X__register_t = X__int32_t /* _types.h:113:19 */
+type X__segsz_t = X__int32_t /* _types.h:114:19 */
+type X__size_t = X__uint32_t /* _types.h:115:20 */
+type X__ssize_t = X__int32_t /* _types.h:116:19 */
+type X__time_t = X__int32_t /* _types.h:117:19 */
+type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */
+type X__uintptr_t = X__uint32_t /* _types.h:119:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint32_t /* _types.h:136:20 */
+type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */
+type X__vm_size_t = X__uint32_t /* _types.h:139:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ F__ccgo_pad1 [0]uint32
+ F__mbstate8 [128]int8
+} /* _types.h:124:3 */
+
+type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */
+
+// Use inline functions if we are allowed to and the compiler supports them.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Paul Borman at Krystal Technologies.
+//
+// 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.
+//
+// @(#)runetype.h 8.1 (Berkeley) 6/2/93
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// The lower 8 bits of runetype[] contain the digit value of the rune.
+type X_RuneEntry = struct {
+ F__min X__rune_t
+ F__max X__rune_t
+ F__map X__rune_t
+ F__types uintptr
+} /* runetype.h:55:3 */
+
+type X_RuneRange = struct {
+ F__nranges int32
+ F__ranges uintptr
+} /* runetype.h:60:3 */
+
+type X_RuneLocale = struct {
+ F__magic [8]int8
+ F__encoding [32]int8
+ F__sgetrune uintptr
+ F__sputrune uintptr
+ F__invalid_rune X__rune_t
+ F__runetype [256]uint32
+ F__maplower [256]X__rune_t
+ F__mapupper [256]X__rune_t
+ F__runetype_ext X_RuneRange
+ F__maplower_ext X_RuneRange
+ F__mapupper_ext X_RuneRange
+ F__variable uintptr
+ F__variable_len int32
+} /* runetype.h:85:3 */
+
+type Wctrans_t = int32 /* wctype.h:42:13 */
+
+type Wctype_t = uint32 /* wctype.h:47:23 */
+
+type Wint_t = X__wint_t /* wctype.h:52:18 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _ctype.h:46:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_freebsd_amd64.go b/vendor/modernc.org/libc/wctype/wctype_freebsd_amd64.go
new file mode 100644
index 00000000..b4bf6b08
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_freebsd_amd64.go
@@ -0,0 +1,796 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_freebsd_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_CACHED_RUNES = 256
+ X_CRMASK = -256
+ X_CTYPE_A = 0x00000100
+ X_CTYPE_B = 0x00020000
+ X_CTYPE_C = 0x00000200
+ X_CTYPE_D = 0x00000400
+ X_CTYPE_G = 0x00000800
+ X_CTYPE_I = 0x00080000
+ X_CTYPE_L = 0x00001000
+ X_CTYPE_N = 0x00400000
+ X_CTYPE_P = 0x00002000
+ X_CTYPE_Q = 0x00200000
+ X_CTYPE_R = 0x00040000
+ X_CTYPE_S = 0x00004000
+ X_CTYPE_SW0 = 0x20000000
+ X_CTYPE_SW1 = 0x40000000
+ X_CTYPE_SW2 = 0x80000000
+ X_CTYPE_SW3 = 0xc0000000
+ X_CTYPE_SWM = 0xe0000000
+ X_CTYPE_SWS = 30
+ X_CTYPE_T = 0x00100000
+ X_CTYPE_U = 0x00008000
+ X_CTYPE_X = 0x00010000
+ X_FILE_OFFSET_BITS = 64
+ X_LOCALE_T_DEFINED = 0
+ X_LP64 = 1
+ X_MACHINE__LIMITS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_Nonnull = 0
+ X_Null_unspecified = 0
+ X_Nullable = 0
+ X_RUNETYPE_H_ = 0
+ X_RUNE_MAGIC_1 = "RuneMagi"
+ X_SYS_CDEFS_H_ = 0
+ X_SYS__TYPES_H_ = 0
+ X_WCTRANS_T = 0
+ X_WCTYPE_H_ = 0
+ X_WCTYPE_T = 0
+ X_WINT_T_DECLARED = 0
+ X_XLOCALE_RUN_FUNCTIONS_DEFINED = 1
+ X_XLOCALE_WCTYPE_H = 0
+ Unix = 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 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause
+//
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
+// $NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// Testing against Clang-specific extensions.
+
+// This code has been put in place to help reduce the addition of
+// compiler specific defines in FreeBSD code. It helps to aid in
+// having a compiler-agnostic source tree.
+
+// Compiler memory barriers, specific to gcc and clang.
+
+// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
+// mode -- there must be no spaces between its arguments, and for nested
+// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
+// concatenate double-quoted strings produced by the __STRING macro, but
+// this only works with ANSI C.
+//
+// __XSTRING is like __STRING, but it expands any macros in its argument
+// first. It is only available with ANSI C.
+
+// Compiler-dependent macros to help declare dead (non-returning) and
+// pure (no side effects) functions, and unused variables. They are
+// null except for versions of gcc that are known to support the features
+// properly (old versions of gcc-2 supported the dead and pure features
+// in a different (wrong) way). If we do not provide an implementation
+// for a given compiler, let the compile fail if it is told to use
+// a feature that we cannot live without.
+
+// Keywords added in C11.
+
+// Emulation of C11 _Generic(). Unlike the previously defined C11
+// keywords, it is not possible to implement this using exactly the same
+// syntax. Therefore implement something similar under the name
+// __generic(). Unlike _Generic(), this macro can only distinguish
+// between a single type, so it requires nested invocations to
+// distinguish multiple cases.
+
+// C99 Static array indices in function parameter declarations. Syntax such as:
+// void bar(int myArray[static 10]);
+// is allowed in C99 but not in C++. Define __min_size appropriately so
+// headers using it can be compiled in either language. Use like this:
+// void bar(int myArray[__min_size(10)]);
+
+// XXX: should use `#if __STDC_VERSION__ < 199901'.
+
+// C++11 exposes a load of C99 stuff
+
+// GCC 2.95 provides `__restrict' as an extension to C90 to support the
+// C99-specific `restrict' type qualifier. We happen to use `__restrict' as
+// a way to define the `restrict' type qualifier without disturbing older
+// software that is unaware of C99 keywords.
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
+// require it.
+
+// Given the pointer x to the member m of the struct s, return
+// a pointer to the containing structure. When using GCC, we first
+// assign pointer x to a local variable, to check that its type is
+// compatible with member m.
+
+// Compiler-dependent macros to declare that functions take printf-like
+// or scanf-like arguments. They are null except for versions of gcc
+// that are known to support the features properly (old versions of gcc-2
+// didn't permit keeping the keywords out of the application namespace).
+
+// Compiler-dependent macros that rely on FreeBSD-specific extensions.
+
+// Embed the rcs id of a source file in the resulting library. Note that in
+// more recent ELF binutils, we use .ident allowing the ID to be stripped.
+// Usage:
+// __FBSDID("$FreeBSD$");
+
+// -
+// The following definitions are an extension of the behavior originally
+// implemented in <sys/_posix.h>, but with a different level of granularity.
+// POSIX.1 requires that the macros we test be defined before any standard
+// header file is included.
+//
+// Here's a quick run-down of the versions:
+// defined(_POSIX_SOURCE) 1003.1-1988
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option
+// _POSIX_C_SOURCE == 199309 1003.1b-1993
+// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1: 1996
+// _POSIX_C_SOURCE == 200112 1003.1-2001
+// _POSIX_C_SOURCE == 200809 1003.1-2008
+//
+// In addition, the X/Open Portability Guide, which is now the Single UNIX
+// Specification, defines a feature-test macro which indicates the version of
+// that specification, and which subsumes _POSIX_C_SOURCE.
+//
+// Our macros begin with two underscores to avoid namespace screwage.
+
+// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1.
+
+// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2.
+
+// Deal with various X/Open Portability Guides and Single UNIX Spec.
+
+// Deal with all versions of POSIX. The ordering relative to the tests above is
+// important.
+// -
+// Deal with _ANSI_SOURCE:
+// If it is defined, and no other compilation environment is explicitly
+// requested, then define our internal feature-test macros to zero. This
+// makes no difference to the preprocessor (undefined symbols in preprocessing
+// expressions are defined to have value zero), but makes it more convenient for
+// a test program to print out the values.
+//
+// If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+// _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+// environment (and in fact we will never get here).
+
+// User override __EXT1_VISIBLE
+
+// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h
+// translates them to __ARM_ARCH and the modern feature symbols defined by ARM.
+
+// Nullability qualifiers: currently only supported by Clang.
+
+// Type Safety Checking
+//
+// Clang provides additional attributes to enable checking type safety
+// properties that cannot be enforced by the C type system.
+
+// Lock annotations.
+//
+// Clang provides support for doing basic thread-safety tests at
+// compile-time, by marking which locks will/should be held when
+// entering/leaving a functions.
+//
+// Furthermore, it is also possible to annotate variables and structure
+// members to enforce that they are only accessed when certain locks are
+// held.
+
+// Structure implements a lock.
+
+// Function acquires an exclusive or shared lock.
+
+// Function attempts to acquire an exclusive or shared lock.
+
+// Function releases a lock.
+
+// Function asserts that an exclusive or shared lock is held.
+
+// Function requires that an exclusive or shared lock is or is not held.
+
+// Function should not be analyzed.
+
+// Function or variable should not be sanitized, i.e. by AddressSanitizer.
+// GCC has the nosanitize attribute, but as a function attribute only, and
+// warns on use as a variable attribute.
+
+// Guard variables and structure members by lock.
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-4-Clause
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// Copyright (c) 1990, 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. All advertising materials mentioning features or use of this software
+// must display the following acknowledgement:
+// This product includes software developed by the University of
+// California, Berkeley and its contributors.
+// 4. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94
+// From: @(#)types.h 8.3 (Berkeley) 1/5/94
+// $FreeBSD$
+
+// -
+// This file is in the public domain.
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1988, 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.
+//
+// @(#)limits.h 8.3 (Berkeley) 1/4/94
+// $FreeBSD$
+
+// According to ANSI (section 2.2.4.2), the values below must be usable by
+// #if preprocessing directives. Additionally, the expression must have the
+// same type as would an expression that is an object of the corresponding
+// type converted according to the integral promotions. The subtraction for
+// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an
+// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+
+// max value for an unsigned long long
+
+// Quads and longs are the same on the amd64. Ensure they stay in sync.
+
+// Minimum signal stack size.
+
+// Basic types upon which most other types are built.
+type X__int8_t = int8 /* _types.h:55:22 */
+type X__uint8_t = uint8 /* _types.h:56:24 */
+type X__int16_t = int16 /* _types.h:57:17 */
+type X__uint16_t = uint16 /* _types.h:58:25 */
+type X__int32_t = int32 /* _types.h:59:15 */
+type X__uint32_t = uint32 /* _types.h:60:23 */
+type X__int64_t = int64 /* _types.h:62:16 */
+type X__uint64_t = uint64 /* _types.h:63:24 */
+
+// Standard type definitions.
+type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()...
+type X__critical_t = X__int64_t /* _types.h:76:19 */
+type X__double_t = float64 /* _types.h:78:17 */
+type X__float_t = float32 /* _types.h:79:16 */
+type X__intfptr_t = X__int64_t /* _types.h:81:19 */
+type X__intptr_t = X__int64_t /* _types.h:82:19 */
+type X__intmax_t = X__int64_t /* _types.h:93:19 */
+type X__int_fast8_t = X__int32_t /* _types.h:94:19 */
+type X__int_fast16_t = X__int32_t /* _types.h:95:19 */
+type X__int_fast32_t = X__int32_t /* _types.h:96:19 */
+type X__int_fast64_t = X__int64_t /* _types.h:97:19 */
+type X__int_least8_t = X__int8_t /* _types.h:98:18 */
+type X__int_least16_t = X__int16_t /* _types.h:99:19 */
+type X__int_least32_t = X__int32_t /* _types.h:100:19 */
+type X__int_least64_t = X__int64_t /* _types.h:101:19 */
+type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2
+type X__register_t = X__int64_t /* _types.h:104:19 */
+type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages)
+type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof()
+type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error
+type X__time_t = X__int64_t /* _types.h:108:19 */ // time()...
+type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */
+type X__uintptr_t = X__uint64_t /* _types.h:110:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:121:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */
+type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */
+type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */
+type X__u_register_t = X__uint64_t /* _types.h:131:20 */
+type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */
+type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */
+type X__vm_size_t = X__uint64_t /* _types.h:134:20 */
+type X___wchar_t = int32 /* _types.h:141:14 */
+
+// Standard type definitions.
+type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size
+type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count
+type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()...
+type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags
+type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */
+type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */
+type X__gid_t = X__uint32_t /* _types.h:46:20 */
+type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t
+type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number
+type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC)
+type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP)
+type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions
+type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions
+type X__nl_item = int32 /* _types.h:53:14 */
+type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count
+type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset
+type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias)
+type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group]
+type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally
+// signed, because of legacy code
+// that uses -1 for RLIM_INFINITY
+type X__sa_family_t = X__uint8_t /* _types.h:61:19 */
+type X__socklen_t = X__uint32_t /* _types.h:62:20 */
+type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed)
+type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()...
+type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()...
+type X__uid_t = X__uint32_t /* _types.h:66:20 */
+type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned)
+type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset.
+type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset.
+type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier.
+type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc
+
+// Unusual type definitions.
+// rune_t is declared to be an ``int'' instead of the more natural
+// ``unsigned long'' or ``long''. Two things are happening here. It is not
+// unsigned so that EOF (-1) can be naturally assigned to it and used. Also,
+// it looks like 10646 will be a 31 bit standard. This means that if your
+// ints cannot hold 32 bits, you will be in trouble. The reason an int was
+// chosen over a long is that the is*() and to*() routines take ints (says
+// ANSI C), but they use __ct_rune_t instead of int.
+//
+// NOTE: rune_t is not covered by ANSI nor other standards, and should not
+// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and
+// rune_t must be the same type. Also, wint_t should be able to hold all
+// members of the largest character set plus one extra value (WEOF), and
+// must be at least 16 bits.
+type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs
+type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above)
+type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above)
+
+// Clang already provides these types as built-ins, but only in C++ mode.
+type X__char16_t = X__uint_least16_t /* _types.h:97:26 */
+type X__char32_t = X__uint_least32_t /* _types.h:98:26 */
+// In C++11, char16_t and char32_t are built-in types.
+
+type X__max_align_t = struct {
+ F__max_align1 int64
+ F__max_align2 float64
+} /* _types.h:111:3 */
+
+type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number
+
+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 {
+ 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 */
+
+// Types for varargs. These are all provided by builtin types these
+// days, so centralize their definition.
+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 */
+
+// Use inline functions if we are allowed to and the compiler supports them.
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// Copyright (c) 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Paul Borman at Krystal Technologies.
+//
+// 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.
+//
+// @(#)runetype.h 8.1 (Berkeley) 6/2/93
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-3-Clause
+//
+// 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
+// $FreeBSD$
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+// The lower 8 bits of runetype[] contain the digit value of the rune.
+type X_RuneEntry = struct {
+ F__min X__rune_t
+ F__max X__rune_t
+ F__map X__rune_t
+ F__ccgo_pad1 [4]byte
+ F__types uintptr
+} /* runetype.h:55:3 */
+
+type X_RuneRange = struct {
+ F__nranges int32
+ F__ccgo_pad1 [4]byte
+ F__ranges uintptr
+} /* runetype.h:60:3 */
+
+type X_RuneLocale = struct {
+ F__magic [8]int8
+ F__encoding [32]int8
+ F__sgetrune uintptr
+ F__sputrune uintptr
+ F__invalid_rune X__rune_t
+ F__ccgo_pad1 [4]byte
+ F__runetype [256]uint64
+ F__maplower [256]X__rune_t
+ F__mapupper [256]X__rune_t
+ F__runetype_ext X_RuneRange
+ F__maplower_ext X_RuneRange
+ F__mapupper_ext X_RuneRange
+ F__variable uintptr
+ F__variable_len int32
+ F__ccgo_pad2 [4]byte
+} /* runetype.h:85:3 */
+
+type Wctrans_t = int32 /* wctype.h:42:13 */
+
+type Wctype_t = uint64 /* wctype.h:47:23 */
+
+type Wint_t = X__wint_t /* wctype.h:52:18 */
+
+// -
+// SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+//
+// Copyright (c) 2011 The FreeBSD Foundation
+// All rights reserved.
+//
+// This software was developed by David Chisnall under sponsorship from
+// the FreeBSD Foundation.
+//
+// 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 AUTHOR 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 AUTHOR 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.
+//
+// $FreeBSD$
+
+type Locale_t = uintptr /* _ctype.h:46:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_linux_386.go b/vendor/modernc.org/libc/wctype/wctype_linux_386.go
new file mode 100644
index 00000000..574e2a3c
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_linux_386.go
@@ -0,0 +1,931 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_386.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ WEOF = 4294967295
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_WCTYPE_WCHAR_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_WCTYPE_H = 1
+ X_WINT_T = 1
+ I386 = 1
+ Linux = 1
+ Unix = 1
+)
+
+// The characteristics are stored always in network byte order (big
+// endian). We define the bit value interpretations here dependent on the
+// machine's byte order.
+
+// 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.
+
+const ( /* wctype-wchar.h:56:1: */
+ X__ISwupper = 0 // UPPERCASE.
+ X__ISwlower = 1 // lowercase.
+ X__ISwalpha = 2 // Alphabetic.
+ X__ISwdigit = 3 // Numeric.
+ X__ISwxdigit = 4 // Hexadecimal numeric.
+ X__ISwspace = 5 // Whitespace.
+ X__ISwprint = 6 // Printing.
+ X__ISwgraph = 7 // Graphical.
+ X__ISwblank = 8 // Blank (usually SPC and TAB).
+ X__ISwcntrl = 9 // Control character.
+ X__ISwpunct = 10 // Punctuation.
+ X__ISwalnum = 11 // Alphanumeric.
+
+ X_ISwupper = 16777216 // UPPERCASE.
+ X_ISwlower = 33554432 // lowercase.
+ X_ISwalpha = 67108864 // Alphabetic.
+ X_ISwdigit = 134217728 // Numeric.
+ X_ISwxdigit = 268435456 // Hexadecimal numeric.
+ X_ISwspace = 536870912 // Whitespace.
+ X_ISwprint = 1073741824 // Printing.
+ X_ISwgraph = -2147483648 // Graphical.
+ X_ISwblank = 65536 // Blank (usually SPC and TAB).
+ X_ISwcntrl = 131072 // Control character.
+ X_ISwpunct = 262144 // Punctuation.
+ X_ISwalnum = 524288
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Number of descriptors that can fit in an `fd_set'.
+
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-2020 Free Software Foundation, Inc.
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Some versions of stddef.h provide wint_t, even though neither the
+// C nor C++ standards, nor POSIX, specifies this. We assume that
+// stddef.h will define the macro _WINT_T if and only if it provides
+// wint_t, and conversely, that it will avoid providing wint_t if
+// _WINT_T is already defined.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+type Wint_t = uint32 /* wint_t.h:20:23 */
+
+// Constant expression of type `wint_t' whose value does not correspond
+// to any member of the extended character set.
+
+// Some definitions from this header also appear in <wchar.h> in
+// Unix98 mode.
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The definitions in this header are specified to appear in <wctype.h>
+// in ISO C99, but in <wchar.h> in Unix98. _GNU_SOURCE follows C99.
+
+// Scalar type that can hold values which represent locale-specific
+// character classifications.
+type Wctype_t = uint32 /* wctype-wchar.h:38:27 */
+
+// Extensible wide-character mapping functions: 7.15.3.2.
+
+// Scalar type that can hold values which represent locale-specific
+// character mappings.
+type Wctrans_t = uintptr /* wctype.h:48:25 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_linux_amd64.go b/vendor/modernc.org/libc/wctype/wctype_linux_amd64.go
new file mode 100644
index 00000000..35d7ee90
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_linux_amd64.go
@@ -0,0 +1,949 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ WEOF = 4294967295
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_WCTYPE_WCHAR_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_WCTYPE_H = 1
+ X_WINT_T = 1
+ Linux = 1
+ Unix = 1
+)
+
+// The characteristics are stored always in network byte order (big
+// endian). We define the bit value interpretations here dependent on the
+// machine's byte order.
+
+// 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.
+
+const ( /* wctype-wchar.h:56:1: */
+ X__ISwupper = 0 // UPPERCASE.
+ X__ISwlower = 1 // lowercase.
+ X__ISwalpha = 2 // Alphabetic.
+ X__ISwdigit = 3 // Numeric.
+ X__ISwxdigit = 4 // Hexadecimal numeric.
+ X__ISwspace = 5 // Whitespace.
+ X__ISwprint = 6 // Printing.
+ X__ISwgraph = 7 // Graphical.
+ X__ISwblank = 8 // Blank (usually SPC and TAB).
+ X__ISwcntrl = 9 // Control character.
+ X__ISwpunct = 10 // Punctuation.
+ X__ISwalnum = 11 // Alphanumeric.
+
+ X_ISwupper = 16777216 // UPPERCASE.
+ X_ISwlower = 33554432 // lowercase.
+ X_ISwalpha = 67108864 // Alphabetic.
+ X_ISwdigit = 134217728 // Numeric.
+ X_ISwxdigit = 268435456 // Hexadecimal numeric.
+ X_ISwspace = 536870912 // Whitespace.
+ X_ISwprint = 1073741824 // Printing.
+ X_ISwgraph = -2147483648 // Graphical.
+ X_ISwblank = 65536 // Blank (usually SPC and TAB).
+ X_ISwcntrl = 131072 // Control character.
+ X_ISwpunct = 262144 // Punctuation.
+ X_ISwalnum = 524288
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+// Copyright (C) 2012-2020 Free Software Foundation, Inc.
+// 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/>.
+
+// See <bits/types.h> for the meaning of these macros. This file exists so
+// that <bits/types.h> need not vary across different GNU platforms.
+
+// X32 kernel interface is 64-bit.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Some versions of stddef.h provide wint_t, even though neither the
+// C nor C++ standards, nor POSIX, specifies this. We assume that
+// stddef.h will define the macro _WINT_T if and only if it provides
+// wint_t, and conversely, that it will avoid providing wint_t if
+// _WINT_T is already defined.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+type Wint_t = uint32 /* wint_t.h:20:23 */
+
+// Constant expression of type `wint_t' whose value does not correspond
+// to any member of the extended character set.
+
+// Some definitions from this header also appear in <wchar.h> in
+// Unix98 mode.
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The definitions in this header are specified to appear in <wctype.h>
+// in ISO C99, but in <wchar.h> in Unix98. _GNU_SOURCE follows C99.
+
+// Scalar type that can hold values which represent locale-specific
+// character classifications.
+type Wctype_t = uint64 /* wctype-wchar.h:38:27 */
+
+// Extensible wide-character mapping functions: 7.15.3.2.
+
+// Scalar type that can hold values which represent locale-specific
+// character mappings.
+type Wctrans_t = uintptr /* wctype.h:48:25 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_linux_arm.go b/vendor/modernc.org/libc/wctype/wctype_linux_arm.go
new file mode 100644
index 00000000..4b1d88a1
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_linux_arm.go
@@ -0,0 +1,990 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_arm.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ WEOF = 4294967295
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_WCTYPE_WCHAR_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_WCTYPE_H = 1
+ X_WINT_T = 1
+ Linux = 1
+ Unix = 1
+)
+
+// The characteristics are stored always in network byte order (big
+// endian). We define the bit value interpretations here dependent on the
+// machine's byte order.
+
+// 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.
+
+const ( /* wctype-wchar.h:56:1: */
+ X__ISwupper = 0 // UPPERCASE.
+ X__ISwlower = 1 // lowercase.
+ X__ISwalpha = 2 // Alphabetic.
+ X__ISwdigit = 3 // Numeric.
+ X__ISwxdigit = 4 // Hexadecimal numeric.
+ X__ISwspace = 5 // Whitespace.
+ X__ISwprint = 6 // Printing.
+ X__ISwgraph = 7 // Graphical.
+ X__ISwblank = 8 // Blank (usually SPC and TAB).
+ X__ISwcntrl = 9 // Control character.
+ X__ISwpunct = 10 // Punctuation.
+ X__ISwalnum = 11 // Alphanumeric.
+
+ X_ISwupper = 16777216 // UPPERCASE.
+ X_ISwlower = 33554432 // lowercase.
+ X_ISwalpha = 67108864 // Alphabetic.
+ X_ISwdigit = 134217728 // Numeric.
+ X_ISwxdigit = 268435456 // Hexadecimal numeric.
+ X_ISwspace = 536870912 // Whitespace.
+ X_ISwprint = 1073741824 // Printing.
+ X_ISwgraph = -2147483648 // Graphical.
+ X_ISwblank = 65536 // Blank (usually SPC and TAB).
+ X_ISwcntrl = 131072 // Control character.
+ X_ISwpunct = 262144 // Punctuation.
+ X_ISwalnum = 524288
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+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) 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// a NUL-terminated string.
+
+// 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
+// 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/>.
+
+// Properties of long double type.
+// 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 published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This header is included by <sys/cdefs.h>.
+//
+// If long double is ABI-compatible with double, it should define
+// __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
+// __NO_LONG_DOUBLE_MATH undefined.
+//
+// If this build of the GNU C Library supports both long double
+// ABI-compatible with double and some other long double format not
+// ABI-compatible with double, it should define
+// __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
+// __LONG_DOUBLE_MATH_OPTIONAL undefined.
+//
+// If __NO_LONG_DOUBLE_MATH is already defined, this header must not
+// define anything; this is needed to work with the definition of
+// __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
+
+// In the default version of this header, long double is
+// ABI-compatible with double.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// 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-2020 Free Software 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/>.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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: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: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: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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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 */
+
+// Some versions of stddef.h provide wint_t, even though neither the
+// C nor C++ standards, nor POSIX, specifies this. We assume that
+// stddef.h will define the macro _WINT_T if and only if it provides
+// wint_t, and conversely, that it will avoid providing wint_t if
+// _WINT_T is already defined.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+type Wint_t = uint32 /* wint_t.h:20:23 */
+
+// Constant expression of type `wint_t' whose value does not correspond
+// to any member of the extended character set.
+
+// Some definitions from this header also appear in <wchar.h> in
+// Unix98 mode.
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The definitions in this header are specified to appear in <wctype.h>
+// in ISO C99, but in <wchar.h> in Unix98. _GNU_SOURCE follows C99.
+
+// Scalar type that can hold values which represent locale-specific
+// character classifications.
+type Wctype_t = uint32 /* wctype-wchar.h:38:27 */
+
+// Extensible wide-character mapping functions: 7.15.3.2.
+
+// Scalar type that can hold values which represent locale-specific
+// character mappings.
+type Wctrans_t = uintptr /* wctype.h:48:25 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_linux_arm64.go b/vendor/modernc.org/libc/wctype/wctype_linux_arm64.go
new file mode 100644
index 00000000..02f8f8ee
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_linux_arm64.go
@@ -0,0 +1,1017 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_arm64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ WEOF = 4294967295
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_WCTYPE_WCHAR_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_WCTYPE_H = 1
+ X_WINT_T = 1
+ Linux = 1
+ Unix = 1
+)
+
+// The characteristics are stored always in network byte order (big
+// endian). We define the bit value interpretations here dependent on the
+// machine's byte order.
+
+// 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.
+
+const ( /* wctype-wchar.h:56:1: */
+ X__ISwupper = 0 // UPPERCASE.
+ X__ISwlower = 1 // lowercase.
+ X__ISwalpha = 2 // Alphabetic.
+ X__ISwdigit = 3 // Numeric.
+ X__ISwxdigit = 4 // Hexadecimal numeric.
+ X__ISwspace = 5 // Whitespace.
+ X__ISwprint = 6 // Printing.
+ X__ISwgraph = 7 // Graphical.
+ X__ISwblank = 8 // Blank (usually SPC and TAB).
+ X__ISwcntrl = 9 // Control character.
+ X__ISwpunct = 10 // Punctuation.
+ X__ISwalnum = 11 // Alphanumeric.
+
+ X_ISwupper = 16777216 // UPPERCASE.
+ X_ISwlower = 33554432 // lowercase.
+ X_ISwalpha = 67108864 // Alphabetic.
+ X_ISwdigit = 134217728 // Numeric.
+ X_ISwxdigit = 268435456 // Hexadecimal numeric.
+ X_ISwspace = 536870912 // Whitespace.
+ X_ISwprint = 1073741824 // Printing.
+ X_ISwgraph = -2147483648 // Graphical.
+ X_ISwblank = 65536 // Blank (usually SPC and TAB).
+ X_ISwcntrl = 131072 // Control character.
+ X_ISwpunct = 262144 // Punctuation.
+ X_ISwalnum = 524288
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint32 /* <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 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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/>.
+
+// Properties of long double type. ldbl-128 version.
+// 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 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/>.
+
+// long double is distinct from double, so there is nothing to
+// define here.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// 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/>.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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/>.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+// 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.
+//
+// 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/>.
+
+// 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.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Some versions of stddef.h provide wint_t, even though neither the
+// C nor C++ standards, nor POSIX, specifies this. We assume that
+// stddef.h will define the macro _WINT_T if and only if it provides
+// wint_t, and conversely, that it will avoid providing wint_t if
+// _WINT_T is already defined.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+type Wint_t = uint32 /* wint_t.h:20:23 */
+
+// Constant expression of type `wint_t' whose value does not correspond
+// to any member of the extended character set.
+
+// Some definitions from this header also appear in <wchar.h> in
+// Unix98 mode.
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The definitions in this header are specified to appear in <wctype.h>
+// in ISO C99, but in <wchar.h> in Unix98. _GNU_SOURCE follows C99.
+
+// Scalar type that can hold values which represent locale-specific
+// character classifications.
+type Wctype_t = uint64 /* wctype-wchar.h:38:27 */
+
+// Extensible wide-character mapping functions: 7.15.3.2.
+
+// Scalar type that can hold values which represent locale-specific
+// character mappings.
+type Wctrans_t = uintptr /* wctype.h:48:25 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_linux_s390x.go b/vendor/modernc.org/libc/wctype/wctype_linux_s390x.go
new file mode 100644
index 00000000..4b007cb4
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_linux_s390x.go
@@ -0,0 +1,948 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_linux_s390x.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ WEOF = 4294967295
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_BITS_TYPES_LOCALE_T_H = 1
+ X_BITS_TYPES___LOCALE_T_H = 1
+ X_BITS_WCTYPE_WCHAR_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STDC_PREDEF_H = 1
+ X_SYS_CDEFS_H = 1
+ X_WCTYPE_H = 1
+ X_WINT_T = 1
+ Linux = 1
+ Unix = 1
+)
+
+// The characteristics are stored always in network byte order (big
+// endian). We define the bit value interpretations here dependent on the
+// machine's byte order.
+
+// 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.
+
+const ( /* wctype-wchar.h:56:1: */
+ X__ISwupper = 0 // UPPERCASE.
+ X__ISwlower = 1 // lowercase.
+ X__ISwalpha = 2 // Alphabetic.
+ X__ISwdigit = 3 // Numeric.
+ X__ISwxdigit = 4 // Hexadecimal numeric.
+ X__ISwspace = 5 // Whitespace.
+ X__ISwprint = 6 // Printing.
+ X__ISwgraph = 7 // Graphical.
+ X__ISwblank = 8 // Blank (usually SPC and TAB).
+ X__ISwcntrl = 9 // Control character.
+ X__ISwpunct = 10 // Punctuation.
+ X__ISwalnum = 11 // Alphanumeric.
+
+ X_ISwupper = 1 // UPPERCASE.
+ X_ISwlower = 2 // lowercase.
+ X_ISwalpha = 4 // Alphabetic.
+ X_ISwdigit = 8 // Numeric.
+ X_ISwxdigit = 16 // Hexadecimal numeric.
+ X_ISwspace = 32 // Whitespace.
+ X_ISwprint = 64 // Printing.
+ X_ISwgraph = 128 // Graphical.
+ X_ISwblank = 256 // Blank (usually SPC and TAB).
+ X_ISwcntrl = 512 // Control character.
+ X_ISwpunct = 1024 // Punctuation.
+ X_ISwalnum = 2048
+)
+
+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 */
+
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// 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
+// 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/>.
+
+// These are defined by the user (or the compiler)
+// to specify the desired environment:
+//
+// __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__
+// Extensions to ISO C11 from TS 18661-1:2014.
+// __STDC_WANT_IEC_60559_FUNCS_EXT__
+// Extensions to ISO C11 from TS 18661-4:2015.
+// __STDC_WANT_IEC_60559_TYPES_EXT__
+// Extensions to ISO C11 from TS 18661-3:2015.
+//
+// _POSIX_SOURCE IEEE Std 1003.1.
+// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+// if >=199309L, add IEEE Std 1003.1b-1993;
+// if >=199506L, add IEEE Std 1003.1c-1995;
+// if >=200112L, all of IEEE 1003.1-2004
+// if >=200809L, all of IEEE 1003.1-2008
+// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
+// Single Unix conformance is wanted, to 600 for the
+// sixth revision, to 700 for the seventh revision.
+// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
+// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
+// _FILE_OFFSET_BITS=N Select default filesystem interface.
+// _ATFILE_SOURCE Additional *at interfaces.
+// _GNU_SOURCE All of the above, plus GNU extensions.
+// _DEFAULT_SOURCE The default set of features (taking precedence over
+// __STRICT_ANSI__).
+//
+// _FORTIFY_SOURCE Add security hardening to many library functions.
+// Set to 1 or 2; 2 performs stricter checks than 1.
+//
+// _REENTRANT, _THREAD_SAFE
+// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+//
+// The `-ansi' switch to the GNU C compiler, and standards conformance
+// options such as `-std=c99', define __STRICT_ANSI__. If none of
+// these are defined, or if _DEFAULT_SOURCE is defined, the default is
+// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+// 200809L, as well as enabling miscellaneous functions from BSD and
+// SVID. If more than one of these are defined, they accumulate. For
+// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+// give you ISO C, 1003.1, and 1003.2, but nothing else.
+//
+// These are defined by this file and are used by the
+// header files to decide what to declare or define:
+//
+// __GLIBC_USE (F) Define things from feature set F. This is defined
+// to 1 or 0; the subsequent macros are either defined
+// or undefined, and those tests should be moved to
+// __GLIBC_USE.
+// __USE_ISOC11 Define ISO C11 things.
+// __USE_ISOC99 Define ISO C99 things.
+// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
+// __USE_ISOCXX11 Define ISO C++11 things.
+// __USE_POSIX Define IEEE Std 1003.1 things.
+// __USE_POSIX2 Define IEEE Std 1003.2 things.
+// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
+// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
+// __USE_XOPEN Define XPG things.
+// __USE_XOPEN_EXTENDED Define X/Open Unix things.
+// __USE_UNIX98 Define Single Unix V2 things.
+// __USE_XOPEN2K Define XPG6 things.
+// __USE_XOPEN2KXSI Define XPG6 XSI things.
+// __USE_XOPEN2K8 Define XPG7 things.
+// __USE_XOPEN2K8XSI Define XPG7 XSI things.
+// __USE_LARGEFILE Define correct standard I/O things.
+// __USE_LARGEFILE64 Define LFS things with separate names.
+// __USE_FILE_OFFSET64 Define 64bit interface as default.
+// __USE_MISC Define things from 4.3BSD or System V Unix.
+// __USE_ATFILE Define *at interfaces and AT_* constants for them.
+// __USE_GNU Define GNU extensions.
+// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
+//
+// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
+// only for compatibility. All new code should use the other symbols
+// to test for features.
+//
+// All macros listed above as possibly being defined by this file are
+// explicitly undefined if they are not explicitly defined.
+// Feature-test macros that are not defined by the user or compiler
+// but are implied by the other feature-test macros defined (or by the
+// lack of any definitions) are defined by the file.
+//
+// ISO C feature test macros depend on the definition of the macro
+// when an affected header is included, not when the first system
+// header is included, and so they are handled in
+// <bits/libc-header-start.h>, which does not have a multiple include
+// guard. Feature test macros that can be handled from the first
+// system header included are handled here.
+
+// Undefine everything, so we get a clean slate.
+
+// Suppress kernel-name space pollution unless user expressedly asks
+// for it.
+
+// Convenience macro to test the version of gcc.
+// Use like this:
+// #if __GNUC_PREREQ (2,8)
+// ... code requiring gcc 2.8 or later ...
+// #endif
+// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+// added in 2.0.
+
+// Similarly for clang. Features added to GCC after version 4.2 may
+// or may not also be available in clang, and clang's definitions of
+// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
+// features can be queried via __has_extension/__has_feature.
+
+// Whether to use feature set F.
+
+// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
+// issue a warning; the expectation is that the source is being
+// transitioned to use the new macro.
+
+// If _GNU_SOURCE was defined by the user, turn on all the other features.
+
+// 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.
+
+// This is to enable the ISO C90 Amendment 1:1995 extension.
+
+// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+// is defined, use POSIX.1-2008 (or another version depending on
+// _XOPEN_SOURCE).
+
+// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+// defined in all multithreaded code. GNU libc has not required this
+// for many years. We now treat them as compatibility synonyms for
+// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+// comprehensive support for multithreaded code. Using them never
+// lowers the selected level of POSIX conformance, only raises it.
+
+// The function 'gets' existed in C89, but is impossible to use
+// safely. It has been removed from ISO C11 and ISO C++14. Note: for
+// compatibility with various implementations of <cstdio>, this test
+// 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-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// This 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
+// on. The use of this variable is deprecated. Use __GLIBC__ and
+// __GLIBC_MINOR__ now (see below) when you want to test for a specific
+// GNU C library version and use the values in <gnu/lib-names.h> to get
+// the sonames of the shared libraries.
+
+// Major and minor version number of the GNU C library package. Use
+// these macros to test for features in specific releases.
+
+// This is here only because every header file already includes this one.
+// Copyright (C) 1992-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+//
+// The GNU C Library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// The GNU C Library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with the GNU C Library; if not, see
+// <https://www.gnu.org/licenses/>.
+
+// We are almost always included from features.h.
+
+// The GNU libc does not support any K&R compilers or the traditional mode
+// of ISO C compilers anymore. Check for some of the combinations not
+// anymore supported.
+
+// Some user header file might have defined this before.
+
+// All functions, except those with callbacks or those that
+// synchronize memory, are leaf functions.
+
+// GCC can always grok prototypes. For C++ programs we add throw()
+// to help it optimize the function calls. But this works only with
+// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+// as non-throwing using a function attribute since programs can use
+// the -fexceptions options for C code as well.
+
+// Compilers that are not clang may object to
+// #if defined __clang__ && __has_extension(...)
+// even though they do not need to evaluate the right-hand side of the &&.
+
+// These two macros are not used in glibc anymore. They are kept here
+// only because some other projects expect the macros to be defined.
+
+// For these things, GCC behaves the ANSI way normally,
+// and the non-ANSI way under -traditional.
+
+// This is not a typedef so `const __ptr_t' does the right thing.
+
+// C++ needs to know that types and declarations are C, not C++.
+
+// Fortify support.
+
+// Support for flexible arrays.
+// Headers that should use flexible arrays only if they're "real"
+// (e.g. only if they won't affect sizeof()) should test
+// #if __glibc_c99_flexarr_available.
+
+// __asm__ ("xyz") is used throughout the headers to rename functions
+// at the assembly language level. This is wrapped by the __REDIRECT
+// macro, in order to support compilers that can do this some other
+// way. When compilers don't support asm-names at all, we have to do
+// preprocessor tricks instead (which don't have exactly the right
+// semantics, but it's the best we can do).
+//
+// Example:
+// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
+
+//
+// #elif __SOME_OTHER_COMPILER__
+//
+// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
+
+// GCC has various useful declarations that can be made with the
+// `__attribute__' syntax. All of the ways we use this do fine if
+// they are omitted for compilers that don't understand it.
+
+// At some point during the gcc 2.96 development the `malloc' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Tell the compiler which arguments to an allocation function
+// indicate the size of the allocation.
+
+// At some point during the gcc 2.96 development the `pure' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// This declaration tells the compiler that the value is constant.
+
+// At some point during the gcc 3.1 development the `used' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+
+// Since version 3.2, gcc allows marking deprecated functions.
+
+// Since version 4.5, gcc also allows one to specify the message printed
+// when a deprecated function is used. clang claims to be gcc 4.2, but
+// may also support this feature.
+
+// At some point during the gcc 2.8 development the `format_arg' attribute
+// for functions was introduced. We don't want to use it unconditionally
+// (although this would be possible) since it generates warnings.
+// If several `format_arg' attributes are given for the same function, in
+// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+// all designated arguments are considered.
+
+// At some point during the gcc 2.97 development the `strfmon' format
+// attribute for functions was introduced. We don't want to use it
+// unconditionally (although this would be possible) since it
+// generates warnings.
+
+// The nonull function attribute allows to mark pointer parameters which
+// must not be NULL.
+
+// If fortification mode, we warn about unused results of certain
+// function calls which can lead to problems.
+
+// Forces a function to be always inlined.
+// The Linux kernel defines __always_inline in stddef.h (283d7573), and
+// it conflicts with this definition. Therefore undefine it first to
+// allow either header to be included first.
+
+// Associate error messages with the source location of the call site rather
+// than with the source location inside the function.
+
+// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+// older than 4.3 may define these macros and still not guarantee GNU inlining
+// semantics.
+//
+// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+// 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
+// __extern_always_inline function to some other vararg function.
+
+// It is possible to compile containing GCC extensions even if GCC is
+// run in pedantic mode if the uses are carefully marked using the
+// `__extension__' keyword. But this is not generally available before
+// version 2.8.
+
+// __restrict is known in EGCS 1.2 and above.
+
+// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+// array_name[restrict]
+// GCC 3.1 supports this.
+
+// Describes a char array whose address can safely be passed as the first
+// argument to strncpy and strncat, as the char array is not necessarily
+// 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-2020 Free Software 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 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/>.
+
+// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+// intended for use in preprocessor macros.
+//
+// Note: MESSAGE must be a _single_ string; concatenation of string
+// literals is not supported.
+
+// Generic selection (ISO C11) is a C-only feature, available in GCC
+// since version 4.9. Previous versions do not provide generic
+// selection, even though they might set __STDC_VERSION__ to 201112L,
+// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+// when testing __STDC_VERSION__ for generic selection support.
+// On the other hand, Clang also defines __GNUC__, so a clang-specific
+// check is required to enable the use of generic selection.
+
+// If we don't have __REDIRECT, prototypes will be missing if
+// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
+
+// Decide whether we can define 'extern inline' functions in headers.
+
+// This is here only because every header file already includes this one.
+// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+// that will always return failure (and set errno to ENOSYS).
+// This file is automatically generated.
+// This file selects the right generated file of `__stub_FUNCTION' macros
+// based on the architecture being compiled for.
+
+// Determine the wordsize from the preprocessor defines.
+
+// This file is automatically generated.
+// It defines a symbol `__stub_FUNCTION' for each function
+// in the C library which is a stub, meaning it will fail
+// every time called, usually setting errno to ENOSYS.
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// 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
+// 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.
+
+// 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: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: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: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:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
+
+// Largest integral types.
+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
+// of those macros must use the following macros for underlying types.
+// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
+// variants of each of the following integer types on this machine.
+//
+// 16 -- "natural" 16-bit type (always short)
+// 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, traditionally long long
+// WORD -- natural type of __WORDSIZE bits (int or long)
+// LONGWORD -- type of __WORDSIZE bits, traditionally long
+//
+// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
+// conventional uses of `long' or `long long' type modifiers match the
+// types we define, even when a less-adorned type would be the same size.
+// This matters for (somewhat) portably writing printf/scanf formats for
+// these types, where using the appropriate l or ll format modifiers can
+// make the typedefs and the formats match up across all GNU platforms. If
+// we used `long' when it's 64 bits where `long long' is expected, then the
+// compiler would warn about the formats not matching the argument types,
+// and the programmer changing them to shut up the compiler would break the
+// program's portability.
+//
+// Here we assume what is presently the case in all the GCC configurations
+// we support: long long is always 64 bits, long is always word/address size,
+// and int is always 32 bits.
+
+// No need to mark the typedef with __extension__.
+// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+// 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
+// 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/>.
+
+// 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.
+
+// size_t is unsigned long int on s390 -m31.
+
+// Tell the libc code that off_t and off64_t are actually the same type
+// for all ABI purposes, even if possibly expressed as different base types
+// for C type-checking purposes.
+
+// Same for ino_t and ino64_t.
+
+// 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'.
+
+// 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:168:29 */
+
+// Timer ID returned by `timer_create'.
+type X__timer_t = uintptr /* types.h:171:12 */
+
+// Type to represent block size.
+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:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
+
+// Type to count file system blocks.
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
+
+// Type to count file system nodes.
+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:191:28 */
+
+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:196:33 */
+// Unsigned long type used in system calls.
+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: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:206:25 */
+
+// Duplicate info from sys/socket.h.
+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: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.
+
+// Some versions of stddef.h provide wint_t, even though neither the
+// C nor C++ standards, nor POSIX, specifies this. We assume that
+// stddef.h will define the macro _WINT_T if and only if it provides
+// wint_t, and conversely, that it will avoid providing wint_t if
+// _WINT_T is already defined.
+
+// Integral type unchanged by default argument promotions that can
+// hold any value corresponding to members of the extended character
+// set, as well as at least one value that does not correspond to any
+// member of the extended character set.
+
+type Wint_t = uint32 /* wint_t.h:20:23 */
+
+// Constant expression of type `wint_t' whose value does not correspond
+// to any member of the extended character set.
+
+// Some definitions from this header also appear in <wchar.h> in
+// Unix98 mode.
+// 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
+// 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/>.
+
+// ISO C99 Standard: 7.25
+// Wide character classification and mapping utilities <wctype.h>
+
+// bits/types.h -- definitions of __*_t types underlying *_t types.
+// 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/>.
+
+// Never include this file directly; use <sys/types.h> instead.
+
+// The definitions in this header are specified to appear in <wctype.h>
+// in ISO C99, but in <wchar.h> in Unix98. _GNU_SOURCE follows C99.
+
+// Scalar type that can hold values which represent locale-specific
+// character classifications.
+type Wctype_t = uint64 /* wctype-wchar.h:38:27 */
+
+// Extensible wide-character mapping functions: 7.15.3.2.
+
+// Scalar type that can hold values which represent locale-specific
+// character mappings.
+type Wctrans_t = uintptr /* wctype.h:48:25 */
+
+// POSIX.1-2008 extended locale interface (see locale.h).
+// Definition of locale_t.
+// 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/>.
+
+// Definition of struct __locale_struct and __locale_t.
+// Copyright (C) 1997-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+//
+// 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/>.
+
+// POSIX.1-2008: the locale_t type, representing a locale context
+// (implementation-namespace version). This type should be treated
+// as opaque by applications; some details are exposed for the sake of
+// efficiency in e.g. ctype functions.
+
+type X__locale_struct = struct {
+ F__locales [13]uintptr
+ F__ctype_b uintptr
+ F__ctype_tolower uintptr
+ F__ctype_toupper uintptr
+ F__names [13]uintptr
+} /* __locale_t.h:28:1 */
+
+type X__locale_t = uintptr /* __locale_t.h:42:32 */
+
+type Locale_t = X__locale_t /* locale_t.h:24:20 */
+
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_netbsd_amd64.go b/vendor/modernc.org/libc/wctype/wctype_netbsd_amd64.go
new file mode 100644
index 00000000..6d8e0341
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_netbsd_amd64.go
@@ -0,0 +1,326 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_netbsd_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_AMD64_INT_TYPES_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ 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_WCTYPE_H_ = 0
+ X_X86_64_CDEFS_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: 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.
+
+// $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
+
+// $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 Wint_t = int32 /* wctype.h:39:25 */
+
+type Wctrans_t = X__wctrans_t /* wctype.h:44:25 */
+
+type Wctype_t = X__wctype_t /* wctype.h:49:24 */
+
+type Locale_t = uintptr /* wctype.h:79:25 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go b/vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go
new file mode 100644
index 00000000..b2f4300b
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go
@@ -0,0 +1,356 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_openbsd_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ X_FILE_OFFSET_BITS = 64
+ X_LOCALE_T_DEFINED_ = 0
+ X_LP64 = 1
+ X_MACHINE_CDEFS_H_ = 0
+ X_MACHINE__TYPES_H_ = 0
+ X_MAX_PAGE_SHIFT = 12
+ X_RET_PROTECTOR = 1
+ X_STACKALIGNBYTES = 15
+ X_SYS_CDEFS_H_ = 0
+ X_WCTRANS_T_DEFINED_ = 0
+ X_WCTYPE_H_ = 0
+ X_WCTYPE_T_DEFINED_ = 0
+ X_WINT_T_DEFINED_ = 0
+ Unix = 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 */
+
+// $OpenBSD: wctype.h,v 1.6 2017/09/05 03:16:13 schwarze Exp $
+// $NetBSD: wctype.h,v 1.5 2003/03/02 22:18:11 tshiozak Exp $
+
+// -
+// Copyright (c)1999 Citrus Project,
+// 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.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+//
+// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
+
+// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $
+// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 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.7 (Berkeley) 1/21/94
+
+// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $
+
+// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
+// Public domain.
+
+// Macro to test if we're using a specific version of gcc or later.
+
+// The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+// The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+// in between its arguments. Do not use __CONCAT on double-quoted strings,
+// such as those from the __STRING macro: to concatenate strings just put
+// them next to each other.
+
+// GCC1 and some versions of GCC2 declare dead (non-returning) and
+// pure (no side effects) functions using "volatile" and "const";
+// unfortunately, these then cause warnings under "-ansi -pedantic".
+// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these
+// work for GNU C++ (modulo a slight glitch in the C++ grammar in
+// the distribution version of 2.5.5).
+
+// __returns_twice makes the compiler not assume the function
+// only returns once. This affects registerisation of variables:
+// even local variables need to be in memory across such a call.
+// Example: setjmp()
+
+// __only_inline makes the compiler only use this function definition
+// for inlining; references that can't be inlined will be left as
+// external references instead of generating a local copy. The
+// matching library should include a simple extern definition for
+// the function to handle those references. c.f. ctype.h
+
+// GNU C version 2.96 adds explicit branch prediction so that
+// the CPU back-end can hint the processor and also so that
+// code blocks can be reordered such that the predicted path
+// sees a more linear flow, thus improving cache behavior, etc.
+//
+// The following two macros provide us with a way to utilize this
+// compiler feature. Use __predict_true() if you expect the expression
+// to evaluate to true, and __predict_false() if you expect the
+// expression to evaluate to false.
+//
+// A few notes about usage:
+//
+// * Generally, __predict_false() error condition checks (unless
+// you have some _strong_ reason to do otherwise, in which case
+// document it), and/or __predict_true() `no-error' condition
+// checks, assuming you want to optimize for the no-error case.
+//
+// * Other than that, if you don't know the likelihood of a test
+// succeeding from empirical or other `hard' evidence, don't
+// make predictions.
+//
+// * These are meant to be used in places that are run `a lot'.
+// It is wasteful to make predictions in code that is run
+// seldomly (e.g. at subsystem initialization time) as the
+// basic block reordering that this affects can often generate
+// larger code.
+
+// Delete pseudo-keywords wherever they are not available or needed.
+
+// The __packed macro indicates that a variable or structure members
+// should have the smallest possible alignment, despite any host CPU
+// alignment requirements.
+//
+// The __aligned(x) macro specifies the minimum alignment of a
+// variable or structure.
+//
+// These macros together are useful for describing the layout and
+// alignment of messages exchanged with hardware or other systems.
+
+// "The nice thing about standards is that there are so many to choose from."
+// There are a number of "feature test macros" specified by (different)
+// standards that determine which interfaces and types the header files
+// should expose.
+//
+// Because of inconsistencies in these macros, we define our own
+// set in the private name space that end in _VISIBLE. These are
+// always defined and so headers can test their values easily.
+// Things can get tricky when multiple feature macros are defined.
+// We try to take the union of all the features requested.
+//
+// The following macros are guaranteed to have a value after cdefs.h
+// has been included:
+// __POSIX_VISIBLE
+// __XPG_VISIBLE
+// __ISO_C_VISIBLE
+// __BSD_VISIBLE
+
+// X/Open Portability Guides and Single Unix Specifications.
+// _XOPEN_SOURCE XPG3
+// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
+// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
+// _XOPEN_SOURCE == 500 XPG5
+// _XOPEN_SOURCE == 520 XPG5v2
+// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI
+// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI
+//
+// The XPG spec implies a specific value for _POSIX_C_SOURCE.
+
+// POSIX macros, these checks must follow the XOPEN ones above.
+//
+// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE)
+// _POSIX_C_SOURCE == 1 1003.1-1990
+// _POSIX_C_SOURCE == 2 1003.2-1992
+// _POSIX_C_SOURCE == 199309L 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995,
+// and the omnibus ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L 1003.1-2001
+// _POSIX_C_SOURCE == 200809L 1003.1-2008
+//
+// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though
+// this may be overridden by the _ISOC99_SOURCE macro later.
+
+// _ANSI_SOURCE means to expose ANSI C89 interfaces only.
+// If the user defines it in addition to one of the POSIX or XOPEN
+// macros, assume the POSIX/XOPEN macro(s) should take precedence.
+
+// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus
+// override any of the other macros since they are non-exclusive.
+
+// Finally deal with BSD-specific interfaces that are not covered
+// by any standards. We expose these when none of the POSIX or XPG
+// macros is defined or if the user explicitly asks for them.
+
+// Default values.
+
+// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $
+
+// -
+// Copyright (c) 1990, 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.
+//
+// @(#)types.h 8.3 (Berkeley) 1/5/94
+// @(#)ansi.h 8.2 (Berkeley) 1/4/94
+
+// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
+// value for all data types (int, long, ...). The result is an
+// unsigned long and must be cast to any desired pointer type.
+//
+// _ALIGNED_POINTER is a boolean macro that checks whether an address
+// is valid to fetch data elements of type t from on this architecture.
+// This does not reflect the optimal alignment, just the possibility
+// (within reasonable limits).
+
+// 7.18.1.1 Exact-width integer types
+type X__int8_t = int8 /* _types.h:61:22 */
+type X__uint8_t = uint8 /* _types.h:62:24 */
+type X__int16_t = int16 /* _types.h:63:17 */
+type X__uint16_t = uint16 /* _types.h:64:25 */
+type X__int32_t = int32 /* _types.h:65:15 */
+type X__uint32_t = uint32 /* _types.h:66:23 */
+type X__int64_t = int64 /* _types.h:67:20 */
+type X__uint64_t = uint64 /* _types.h:68:28 */
+
+// 7.18.1.2 Minimum-width integer types
+type X__int_least8_t = X__int8_t /* _types.h:71:19 */
+type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */
+type X__int_least16_t = X__int16_t /* _types.h:73:20 */
+type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */
+type X__int_least32_t = X__int32_t /* _types.h:75:20 */
+type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */
+type X__int_least64_t = X__int64_t /* _types.h:77:20 */
+type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type X__int_fast8_t = X__int32_t /* _types.h:81:20 */
+type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */
+type X__int_fast16_t = X__int32_t /* _types.h:83:20 */
+type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */
+type X__int_fast32_t = X__int32_t /* _types.h:85:20 */
+type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */
+type X__int_fast64_t = X__int64_t /* _types.h:87:20 */
+type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+type X__intptr_t = int64 /* _types.h:103:16 */
+type X__uintptr_t = uint64 /* _types.h:104:24 */
+
+// 7.18.1.5 Greatest-width integer types
+type X__intmax_t = X__int64_t /* _types.h:107:20 */
+type X__uintmax_t = X__uint64_t /* _types.h:108:21 */
+
+// Register size
+type X__register_t = int64 /* _types.h:111:16 */
+
+// VM system types
+type X__vaddr_t = uint64 /* _types.h:114:24 */
+type X__paddr_t = uint64 /* _types.h:115:24 */
+type X__vsize_t = uint64 /* _types.h:116:24 */
+type X__psize_t = uint64 /* _types.h:117:24 */
+
+// Standard system types
+type X__double_t = float64 /* _types.h:120:18 */
+type X__float_t = float32 /* _types.h:121:17 */
+type X__ptrdiff_t = int64 /* _types.h:122:16 */
+type X__size_t = uint64 /* _types.h:123:24 */
+type X__ssize_t = int64 /* _types.h:124:16 */
+type X__va_list = X__builtin_va_list /* _types.h:126:27 */
+
+// Wide character support types
+type X__wchar_t = int32 /* _types.h:133:15 */
+type X__wint_t = int32 /* _types.h:135:15 */
+type X__rune_t = int32 /* _types.h:136:15 */
+type X__wctrans_t = uintptr /* _types.h:137:14 */
+type X__wctype_t = uintptr /* _types.h:138:14 */
+
+type Wint_t = X__wint_t /* wctype.h:40:21 */
+
+type Wctrans_t = X__wctrans_t /* wctype.h:45:21 */
+
+type Wctype_t = X__wctype_t /* wctype.h:50:20 */
+
+type Locale_t = uintptr /* wctype.h:60:14 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_windows_386.go b/vendor/modernc.org/libc/wctype/wctype_windows_386.go
new file mode 100644
index 00000000..56f1502a
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_windows_386.go
@@ -0,0 +1,288 @@
+// Code generated by 'ccgo wctype/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 wctype/wctype_windows_386.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ DUMMYUNIONNAME8 = 0
+ DUMMYUNIONNAME9 = 0
+ MINGW_DDK_H = 0
+ MINGW_HAS_DDK_H = 1
+ MINGW_HAS_SECURE_API = 1
+ MINGW_SDK_INIT = 0
+ UNALIGNED = 0
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ALPHA = 259
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_BLANK = 0x40
+ X_CONST_RETURN = 0
+ X_CONTROL = 0x20
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_CTYPEDATA_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_CRT_WCTYPEDATA_DEFINED = 0
+ X_DIGIT = 0x4
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_HEX = 0x80
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC_WCTYPE = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LEADBYTE = 0x8000
+ X_LOWER = 0x2
+ X_MT = 0
+ X_M_IX86 = 600
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_PUNCT = 0x10
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SPACE = 0x8
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_UPPER = 0x1
+ X_USE_32BIT_TIME_T = 0
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_DEFINED = 0
+ X_WCTYPE_INLINE_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WINT_T = 0
+ X_X86_ = 1
+ I386 = 1
+)
+
+type Ptrdiff_t = int32 /* <builtin>:3:26 */
+
+type Size_t = uint32 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <builtin>:15:24 */
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// For x86 we have always to prefix by underscore.
+
+// Special case nameless struct/union.
+
+// 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.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+// for backward compatibility
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int32 /* corecrt.h:52:13 */
+
+type Rsize_t = Size_t /* corecrt.h:57:16 */
+
+type Intptr_t = int32 /* corecrt.h:69:13 */
+
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
+
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
+
+type Errno_t = int32 /* corecrt.h:118:13 */
+
+type X__time32_t = int32 /* corecrt.h:123:14 */
+
+type X__time64_t = int64 /* corecrt.h:128:35 */
+
+type Time_t = X__time32_t /* corecrt.h:141:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* corecrt.h:435:1 */
+
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* corecrt.h:441:9 */
+
+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
+} /* corecrt.h:435:1 */
+
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
+
+type Wctrans_t = Wchar_t /* wctype.h:174:19 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/wctype/wctype_windows_amd64.go b/vendor/modernc.org/libc/wctype/wctype_windows_amd64.go
new file mode 100644
index 00000000..82f16c76
--- /dev/null
+++ b/vendor/modernc.org/libc/wctype/wctype_windows_amd64.go
@@ -0,0 +1,287 @@
+// Code generated by 'ccgo wctype\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 wctype\wctype_windows_amd64.go -pkgname wctype', DO NOT EDIT.
+
+package wctype
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ DUMMYSTRUCTNAME = 0
+ DUMMYSTRUCTNAME1 = 0
+ DUMMYSTRUCTNAME2 = 0
+ DUMMYSTRUCTNAME3 = 0
+ DUMMYSTRUCTNAME4 = 0
+ DUMMYSTRUCTNAME5 = 0
+ DUMMYUNIONNAME = 0
+ DUMMYUNIONNAME1 = 0
+ DUMMYUNIONNAME2 = 0
+ DUMMYUNIONNAME3 = 0
+ DUMMYUNIONNAME4 = 0
+ DUMMYUNIONNAME5 = 0
+ DUMMYUNIONNAME6 = 0
+ DUMMYUNIONNAME7 = 0
+ 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
+ USE___UUIDOF = 0
+ WIN32 = 1
+ WIN64 = 1
+ WINNT = 1
+ X_AGLOBAL = 0
+ X_ALPHA = 259
+ X_ANONYMOUS_STRUCT = 0
+ X_ANONYMOUS_UNION = 0
+ X_ARGMAX = 100
+ X_BLANK = 0x40
+ X_CONST_RETURN = 0
+ X_CONTROL = 0x20
+ X_CRTNOALIAS = 0
+ X_CRTRESTRICT = 0
+ X_CRT_ALTERNATIVE_IMPORTED = 0
+ X_CRT_CTYPEDATA_DEFINED = 0
+ X_CRT_MANAGED_HEAP_DEPRECATE = 0
+ X_CRT_PACKING = 8
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
+ X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
+ 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_WCTYPEDATA_DEFINED = 0
+ X_DIGIT = 0x4
+ X_DLL = 0
+ X_ERRCODE_DEFINED = 0
+ X_FILE_OFFSET_BITS = 64
+ X_HEX = 0x80
+ X_INC_CRTDEFS = 0
+ X_INC_CRTDEFS_MACRO = 0
+ X_INC_MINGW_SECAPI = 0
+ X_INC_VADEFS = 0
+ X_INC_WCTYPE = 0
+ X_INC__MINGW_H = 0
+ X_INT128_DEFINED = 0
+ X_INTEGRAL_MAX_BITS = 64
+ X_INTPTR_T_DEFINED = 0
+ X_LEADBYTE = 0x8000
+ X_LOWER = 0x2
+ X_MT = 0
+ X_M_AMD64 = 100
+ X_M_X64 = 100
+ X_PGLOBAL = 0
+ X_PTRDIFF_T_ = 0
+ X_PTRDIFF_T_DEFINED = 0
+ X_PUNCT = 0x10
+ X_REENTRANT = 1
+ X_RSIZE_T_DEFINED = 0
+ X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
+ X_SIZE_T_DEFINED = 0
+ X_SPACE = 0x8
+ X_SSIZE_T_DEFINED = 0
+ X_TAGLC_ID_DEFINED = 0
+ X_THREADLOCALEINFO = 0
+ X_TIME32_T_DEFINED = 0
+ X_TIME64_T_DEFINED = 0
+ X_TIME_T_DEFINED = 0
+ X_UINTPTR_T_DEFINED = 0
+ X_UPPER = 0x1
+ X_VA_LIST_DEFINED = 0
+ X_W64 = 0
+ X_WCHAR_T_DEFINED = 0
+ X_WCTYPE_DEFINED = 0
+ X_WCTYPE_INLINE_DEFINED = 0
+ X_WCTYPE_T_DEFINED = 0
+ X_WIN32 = 1
+ X_WIN32_WINNT = 0x502
+ X_WIN64 = 1
+ X_WINT_T = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = uint16 /* <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 */
+
+type Va_list = X__builtin_va_list /* <builtin>:50:27 */
+
+// *
+// 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 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 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 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
+// fix was applied to trunk. This macro gets just increased on trunk. For
+// other branches its value won't be modified.
+
+// mingw.org's version macros: these make gcc to define
+// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
+// and the __mingwthr_key_dtor() function from the MinGW
+// CRT in its private gthr-win32.h header.
+
+// Set VC specific compiler target macros.
+
+// MS does not prefix symbols by underscores for 64-bit.
+// As we have to support older gcc version, which are using underscores
+// as symbol prefix for x64, we have to check here for the user label
+// prefix defined by gcc.
+
+// Special case nameless struct/union.
+
+// MinGW-w64 has some additional C99 printf/scanf feature support.
+// So we add some helper macros to ease recognition of them.
+
+// *
+// 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.
+
+// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
+// Templates won't work in C, will break if secure API is not enabled, disabled
+
+// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
+// fallback on default implementation if we can't know the size of the destination
+
+// Include _cygwin.h if we're building a Cygwin application.
+
+// Target specific macro replacement for type "long". In the Windows API,
+// the type long is always 32 bit, even if the target is 64 bit (LLP64).
+// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
+// sized definitions and declarations, all usage of type long in the Windows
+// headers have to be replaced by the below defined macro __LONG32.
+
+// C/C++ specific language defines.
+
+// Note the extern. This is needed to work around GCC's
+// limitations in handling dllimport attribute.
+
+// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
+// variadiac macro facility, because variadic macros cause syntax
+// errors with --traditional-cpp.
+
+// High byte is the major version, low byte is the minor.
+
+// *
+// 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 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.
+
+type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
+
+type Ssize_t = int64 /* crtdefs.h:45:35 */
+
+type Rsize_t = Size_t /* crtdefs.h:52:16 */
+
+type Intptr_t = int64 /* crtdefs.h:62:35 */
+
+type Uintptr_t = uint64 /* crtdefs.h:75:44 */
+
+type Wint_t = uint16 /* crtdefs.h:106:24 */
+type Wctype_t = uint16 /* crtdefs.h:107:24 */
+
+type Errno_t = int32 /* crtdefs.h:113:13 */
+
+type X__time32_t = int32 /* crtdefs.h:118:14 */
+
+type X__time64_t = int64 /* crtdefs.h:123:35 */
+
+type Time_t = X__time64_t /* crtdefs.h:138:20 */
+
+type Threadlocaleinfostruct = struct {
+ Frefcount int32
+ Flc_codepage uint32
+ Flc_collate_cp uint32
+ Flc_handle [6]uint32
+ Flc_id [6]LC_ID
+ Flc_category [6]struct {
+ Flocale uintptr
+ Fwlocale uintptr
+ Frefcount uintptr
+ Fwrefcount uintptr
+ }
+ Flc_clike int32
+ Fmb_cur_max int32
+ Flconv_intl_refcount uintptr
+ Flconv_num_refcount uintptr
+ Flconv_mon_refcount uintptr
+ Flconv uintptr
+ Fctype1_refcount uintptr
+ Fctype1 uintptr
+ Fpctype uintptr
+ Fpclmap uintptr
+ Fpcumap uintptr
+ Flc_time_curr uintptr
+} /* crtdefs.h:422:1 */
+
+type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
+type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+
+type Localeinfo_struct = struct {
+ Flocinfo Pthreadlocinfo
+ Fmbcinfo Pthreadmbcinfo
+} /* crtdefs.h:428:9 */
+
+type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
+type X_locale_t = uintptr /* crtdefs.h:431:19 */
+
+type TagLC_ID = struct {
+ FwLanguage uint16
+ FwCountry uint16
+ FwCodePage uint16
+} /* crtdefs.h:422:1 */
+
+type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
+type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+
+type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+
+type Wctrans_t = Wchar_t /* wctype.h:174:19 */
+
+var _ int8 /* gen.c:2:13: */